avance command creacion

parent ef96604f
<?php
namespace BackendBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use AppBundle\Model\UsuariosMcafeeMovistarNuevos;
use AppBundle\Model\UsuariosMcafeeMovistarNuevosQuery;
use AppBundle\Model\UsuarioMcafee;
use AppBundle\Model\UsuarioMcafeeQuery;
use AppBundle\Model\McafeeTransaccion;
use AppBundle\Model\McafeeTransaccionQuery;
use AppBundle\Model\McafeeTransaccionPendiente;
use AppBundle\Model\McafeeTransaccionPendienteQuery;
use AppBundle\Model\McafeeUltimoProcesoCreacion;
use AppBundle\Model\McafeeUltimoProcesoCreacionQuery;
use AppBundle\Lib\Utiles;
class McafeeGenerarUsuariosNuevosMcafeeCommand extends ContainerAwareCommand
{
const LENGUAJE = "es";
const TIMEOUT = 20;
const SKU_DESTINY = "419-92860-1usermds";
protected function configure()
{
$this
->setName('mcafee:generar-usuarios-nuevos-mcafee')
->setDescription('comando que permite generar nuevos usuarios en mcafee, desde una tabla con datos.')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln("COMANDO INICIADO.");
$log = Utiles::setLog('command::migrarUsuariosSuscripcion', 'ws/wsMigrarUsuariosMcAfee');
$esTxPendiente = false;
$failedAlready = false;
$ultimoUsuarioProcesado = null;
$cantidadProcesados = 0;
$cantidadPendientes = 0;
$usuariosMax = Utiles::getParametroConfiguracion("numero_usuarios_creacion");
$limiteAuxUsuarios =Utiles::getParametroConfiguracion("limite_inicio_creacion");
$log->debug("obteniendo ultimo indice procesado...");
$ultimoIndiceUsuarioProcesado = McafeeUltimoProcesoCreacionQuery::create()//arreglar es ultimo indice procesado
->orderByMucId("DESC")
->findOne();
if ($ultimoIndiceUsuarioProcesado == null)
$condicion = "usuarios_mcafee_movistar_nuevos.id > 0";
//else $condicion = "usuarios_mcafee_movistar_migrar.id > ".$ultimoIndiceUsuarioProcesado->getUltimoUmcId();
else $condicion = "usuarios_mcafee_movistar_nuevos.id >= $limiteAuxUsuarios and usuarios_mcafee_movistar_migrar.id > ".$ultimoIndiceUsuarioProcesado->getUltimoUmcId()." and usuarios_mcafee_movistar_migrar.Device_Type != 'MultiDevice'";
$log->debug("condicion a analizar ".$condicion);
$log->debug("obteniendo usuarios candidatos a crear...");
$usuariosACrear = UsuariosMcafeeMovistarNuevosQuery::create()
->where($condicion)
->limit($usuariosMax)
->find();
$log->debug("cantidad de usuarios a crear..." . count($usuariosACrear));
$log->debug("obteniendo partner ID...");
$mcAfeePartnerId = Utiles::getParametroConfiguracion('mcafee_partner_id');
$log->debug("comenzando proceso de creacion...");
foreach ($usuariosACrear as $index => $usuarioCrear):
$log->debug("generando item a procesar...");
$customerContextId = 'GLN_NEW_' . $usuarioCrear->getId() . '_' . $usuarioCrear->getAreaTel();
$nuevoUsuario = new UsuarioMcafee();
$nuevoUsuario->setUmcMcafeeTipoProducto(UsuarioMcafee::TIPO_MULTIDEVICE);
$nuevoUsuario->setUmcMcafeeAffid(419);
$nuevoUsuario->setUmcMcafeeKeycard(null);
$nuevoUsuario->setUmcMcafeeSku(null);
$nuevoUsuario->setUmcMcafeeCcid($customerContextId);
$nuevoUsuario->setUmcMcafeeEmail(null);
$nuevoUsuario->setUmcMovistarEmail($usuarioCrear->getCorreo());
$nuevoUsuario->setUmcMovistarRut($usuarioCrear->getRut());
if($usuarioCrear->getFonoContactoMovil1() != 0){
$telMovil = $usuarioCrear->getFonoContactoMovil1();
}else {
$telMovil = $usuarioCrear->getFonoContactoMovil2();
}
$nuevoUsuario->setUmcMovil($telMovil);
$nuevoUsuario->setUmcFijo($usuarioCrear->getAreaTel());
$nuevoUsuario->setUmcMovistarAny(null);
$nuevoUsuario->setUmcParametroEncriptado(null);
//$nuevoUsuario->setUmcMovistarAny(explode("@", $usuarioMigrar->getEmailAddress())[0]);
$nuevoUsuario->setUmcMovistarActivo(UsuarioMcafee::ACTIVO_MOVISTAR_FALSE);
//$nuevoUsuario->setUmcParametroEncriptado($nuevoUsuario->generarUsuarioEncriptadoParaMovistarNuevo());
$nuevoUsuario->setUmcCustomerId(null);
$nuevoUsuario->setUmcPermiteEmail(1);
$nuevoUsuario->setUmcFechaDesuscripcionEmail(null);
$nuevoUsuario->setUmcEliminado(UsuarioMcafee::ELIMINADO_FALSE);
$nuevoUsuario->setCreatedAt(new \DateTime());
$nuevoUsuario->setUpdatedAt(new \DateTime());
$nuevoUsuario->save();
$log->debug("comenzando a generar registro de la transaccion..");
$mcAfeeTx = new McafeeTransaccion();
$mcAfeeTx->setMtrTipo(McafeeTransaccion::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$mcAfeeTx->generarNroReferencia();
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_NO_ENVIADA);
$mcAfeeTx->setUsuarioMcafee($nuevoUsuario);
$xmlPartnerContext = '<PARTNERCONTEXT>'
. ' <HEADER> '
. ' <PARTNER PARTNER_ID="'.$mcAfeePartnerId.'"/> '
. ' </HEADER> '
. ' <DATA> '
. ' <CUSTOMERCONTEXT ID="'.$customerContextId.'" REQUESTTYPE="NEW"> '
. ' <ACCOUNT> '
. ' <EMAILADDRESS><![CDATA['.$nuevoUsuario->getUmcMovistarEmail().']]></EMAILADDRESS> '
. ' <FIRSTNAME><![CDATA['.$usuarioCrear->getNombres().']]></FIRSTNAME> '
. ' <LASTNAME><![CDATA[]]></LASTNAME> '
. ' <PASSWORD><![CDATA[]]></PASSWORD> '
. ' <PREFERENCES> '
. ' <PREFERENCE TYPE="LANG">'.self::LENGUAJE.'</PREFERENCE> '
. ' </PREFERENCES> '
. ' </ACCOUNT> '
. ' <ORDER PARTNERREF="'.$mcAfeeTx->getMtrReferencia().'" REF=""> '
. ' <ITEMS> '
. ' <ITEM SKU="'.self::SKU_DESTINY.'" QTY=”1” ACTION="PD" LIC_QTY="1"/> '
. ' </ITEMS> '
. ' </ORDER> '
. ' </CUSTOMERCONTEXT> '
. ' </DATA> '
. '</PARTNERCONTEXT>';
$log->debug("xml generado para el item :" . $xmlPartnerContext);
$mcAfeeTx->setMtrXmlEnvio($xmlPartnerContext);
$mcAfeeTx->save();
$peticion = array('requestXML' => $xmlPartnerContext);
$log->debug('Peticion a McAfee->' . print_r($peticion, true));
///INICIO PETICION MCAFEE
try {
//Llamada McAfee
$wsMcafeePostRequestUrl = Utiles::getParametroConfiguracion('ws_mcafee_post_request_url');
$SOAP = new \SoapClient($wsMcafeePostRequestUrl, array("connection_timeout" => self::TIMEOUT, 'cache_wsdl' => WSDL_CACHE_NONE));
$log->debug('Llamando metodo "ProcessRequestWS" url WS->' . $wsMcafeePostRequestUrl);
$respuesta = $SOAP->ProcessRequestWS($peticion);
$log->debug('Respuesta McAfee->' . print_r($respuesta, true));
if ($respuesta != null) {
$mcAfeeTx->setMtrXmlRespuesta(print_r($respuesta->ProcessRequestWSResult, TRUE));
$arrayRespuesta = $this->procesarXmlRespuesta($respuesta);
$output->writeln('COMANDO FINALIZADO.');
exit();
$log->debug("Xml procesado en forma de array: " . print_r($arrayRespuesta, true));
if ($arrayRespuesta == NULL) {
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$log->err('$arrayRespuesta == NULL para mcAfeeTx id->' . $mcAfeeTx->getMtrId() . 'PETICION:' . print_r($peticion, TRUE));
$logError = Utiles::setLog('command::migrarUsuariosSuscripcion', 'error/wsMigrarUsuariosMcAfee');
$logError->err('$arrayRespuesta == NULL para mcAfeeTx id->' . $mcAfeeTx->getMtrId() . 'PETICION:' . print_r($peticion, TRUE));
$cantidadPendientes++;
$failedAlready = true;
} else {
$log->debug('$arrayRespuesta McAfee->' . print_r($arrayRespuesta, true));
$mcAfeeTx->setMtrCodigoRetorno($arrayRespuesta['mcAfeeReturnCode']);
$log->debug('Descripcion de la transaccion ->' . $arrayRespuesta['mcAfeeReturnDesc']);
if ($arrayRespuesta['mcAfeeReturnCode'] == '1000' || $arrayRespuesta['mcAfeeReturnCode'] == '5001' || $arrayRespuesta['mcAfeeReturnCode'] == '5002') {
//validacion datos Tx
if ($arrayRespuesta['mcAfeeCostumerId'] == $nuevoUsuario->getUmcMcafeeCcid() && $arrayRespuesta['mcAfeeOrderPartnerRef'] == $mcAfeeTx->getMtrReferencia()) {
/**
* @todo agregar urlProduct.
*/
$mcAfeeTx->setMtrReferenciaMcafee($arrayRespuesta['mcAfeeOrderRef']);
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_SUCCESS);
$mcAfeeTx->setMtrProductdownloadurl($arrayRespuesta['mcAfeeProductDownloadUrl']);
$nuevoUsuario->setUmcMcafeeSku(self::SKU_DESTINY);
$nuevoUsuario->setUmcMcafeeKeycard($arrayRespuesta['mcAfeeProductDownloadUrl']);
$nuevoUsuario->setUmcMcafeeStatus($arrayRespuesta['mcAfeeReturnCode']);
$nuevoUsuario->save();
$mcAfeeTx->save();
$log->debug('Transaccion finalizada con exito!. id Transaccion->' . $mcAfeeTx->getMtrId());
$cantidadProcesados++;
} else {
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$log->err('Respuesta Costumer Id->' . $arrayRespuesta['mcAfeeCostumerId'] . 'y Costumer id->' . $nuevoUsuario->getUmcMcafeeCcid());
$log->err('nro de referencia Respuesta->' . $arrayRespuesta['mcAfeeOrderPartnerRef'] . 'y nro referencia->' . $mcAfeeTx->getMtrReferencia());
$log->err('la transaccion fracaso debido a inconsistencia en los datos.' . print_r($arrayRespuesta, true));
$logError = Utiles::setLog('command::crearUsuariosSuscripcion', 'error/wsCrearUsuariosMcAfee');
$logError->err('Respuesta Costumer Id->' . $arrayRespuesta['mcAfeeCostumerId'] . 'y Costumer id->' . $nuevoUsuario->getUmcMcafeeCcid());
$logError->err('nro de referencia Respuesta->' . $arrayRespuesta['mcAfeeOrderPartnerRef'] . 'y nro referencia->' . $mcAfeeTx->getMtrReferencia());
$logError->err('la transaccion fracaso debido a inconsistencia en los datos.' . print_r($arrayRespuesta, true));
$cantidadPendientes++;
$failedAlready = true;
}
} else {//codigo de retorno distinto de 1000 y 5001
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$log->err('returnCode distinto de 1000 y 5001 que son los exitosos.' . print_r($arrayRespuesta, true));
$logError = Utiles::setLog('command::crearUsuariosSuscripcion', 'error/wsCrearUsuariosMcAfee');
$logError->err('returnCode distinto de 1000 y 5001 que son los exitosos.' . print_r($arrayRespuesta, true));
$cantidadPendientes++;
$failedAlready = true;
}
}
} else {//$respuesta ==NULL
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$log->err('respuesta NULL para peticion:' . print_r($peticion, true));
$logError = Utiles::setLog('command::crearUsuariosSuscripcion', 'error/wsCrearUsuariosMcAfee');
$logError->err('respuesta NULL para peticion:' . print_r($peticion, true));
$cantidadPendientes++;
$failedAlready = true;
}
} catch (\Exception $exc) {
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
if (!$esTxPendiente) {
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
}
$log->err('Error al llamar WS. Exception:' . $exc->getMessage() . ' | peticion:' . print_r($peticion, true));
$logError = Utiles::setLog('command::crearUsuariosSuscripcion', 'error/wsCrearUsuariosMcAfee');
$logError->err('Error al llamar WS. Exception:' . $exc->getMessage() . ' | peticion:' . print_r($peticion, true));
//return FALSE;
$cantidadPendientes++;
$failedAlready = true;
}
$ultimoUsuarioProcesado = $usuarioCrear;
endforeach;
//GENERANDO REGISTRO DE PROCESO
$registroProceso = new McafeeUltimoProcesoCreacion();
$registroProceso->setUsuariosMcafeeMovistarNuevos($ultimoUsuarioProcesado);
$registroProceso->setMucCantidadProcesados($cantidadProcesados);
$registroProceso->setMucCantidadPendientes($cantidadPendientes);
$registroProceso->setCreatedAt(new \DateTime());
$registroProceso->setUpdatedAt(new \DateTime());
$registroProceso->save();
$output->writeln('COMANDO FINALIZADO.');
}
/**
* Procesa respuesta mcafee, extrae valores y atributos y devuelve un array con estos valores.
*
* @param string $xmlRespuesta
* @return array
*/
private static function procesarXmlRespuesta($xmlRespuesta){
$log = Utiles::setLog('WsBundle\Lib\controladorMcAfee::procesarXmlRespuesta', 'ws/wsMcAfee');
$arrayRespuesta= Array();
try{
$xObjRespuesta = simplexml_load_string($xmlRespuesta->ProcessRequestWSResult, 'SimpleXMLElement', LIBXML_NOCDATA);//LIBXML_NOCDATA atributos dentro de tags
// $log->debug('$xObjRespuesta->'.print_r($xObjRespuesta,true));
if (!is_object($xObjRespuesta)){
$log->err('Error al instanciar objeto xml->' . $xmlRespuesta->ProcessRequestWSResult);
$logError = Utiles::setLog('WsBundle\Lib\controladorMcAfee::procesarXmlRespuesta', 'error/wsMcAfee');
$logError->err('Error al instanciar objeto xml->' . $xmlRespuesta->ProcessRequestWSResult);
}
else{
//<PARTNERRESPONSECONTEXT>
// <HEADER>
// <PARTNER PARTNER_ID="817" />
// </HEADER>
// <DATA>
// <RESPONSECONTEXT ID="GL_19_56962451306">
// <RETURNCODE>5001</RETURNCODE>
// <RETURNDESC>Transaction success: Warning, Email Address Exists.</RETURNDESC>
// <ORDER PARTNERREF="GL_ES_SUS_166_05032015124229" REF="NCS507747897" />
// <ACCOUNT>
// <EMAILADDRESS>luis.arcos@gearlabs.cl</EMAILADDRESS>
// <PASSWORD><![CDATA[asd123123]]></PASSWORD>
// </ACCOUNT>
// <PRODUCTDOWNLOADURL><![CDATA[http://home.mcafee.com/downloads/keycard.aspx?affid=817&culture=ES-MX&tk=iUMYjxCvNsr_CFQUtZRUYEr2xAeMOTPNFmlw3xXs53KnUoRZDtyoIzRyf5Ad_hr_0&tp=48]]></PRODUCTDOWNLOADURL>
// </RESPONSECONTEXT>
// </DATA>
//</PARTNERRESPONSECONTEXT>
$arrayRespuesta['mcAfeePartnerId'] = (string) $xObjRespuesta->HEADER->PARTNER->attributes()->PARTNER_ID;
$arrayRespuesta['mcAfeeCostumerId'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->attributes()->ID;
$arrayRespuesta['mcAfeeReturnCode'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->RETURNCODE;
$arrayRespuesta['mcAfeeReturnDesc'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->RETURNDESC;
$arrayRespuesta['mcAfeeProductDownloadUrl'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->PRODUCTDOWNLOADURL;
if (isset($xObjRespuesta->DATA->RESPONSECONTEXT->ORDER)){
$arrayRespuesta['mcAfeeOrderPartnerRef'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->ORDER->attributes()->PARTNERREF;
$arrayRespuesta['mcAfeeOrderRef'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->ORDER->attributes()->REF;
}
if (isset($xObjRespuesta->DATA->RESPONSECONTEXT->ACCOUNT)){
$arrayRespuesta['mcAfeeEmailUsuario'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->ACCOUNT->EMAILADDRESS;
$arrayRespuesta['mcAfeePasswordUsuario'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->ACCOUNT->PASSWORD;
}
}
}
catch (\Exception $ex) {
$log->crit("Error al leer detalles XML.".$xmlRespuesta->ProcessRequestWSResult);
$log->crit("Detalle error ". print_r($ex, TRUE));
$arrayRespuesta = array();
}
return $arrayRespuesta;
}
}
<?php
namespace BackendBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use AppBundle\Model\UsuariosMcafeeMovistarNuevos;
use AppBundle\Model\UsuariosMcafeeMovistarNuevosQuery;
use AppBundle\Model\UsuarioMcafee;
use AppBundle\Model\UsuarioMcafeeQuery;
use AppBundle\Model\McafeeTransaccion;
use AppBundle\Model\McafeeTransaccionQuery;
use AppBundle\Model\McafeeTransaccionPendiente;
use AppBundle\Model\McafeeTransaccionPendienteQuery;
use AppBundle\Model\McafeeUltimoProcesoCreacion;
use AppBundle\Model\McafeeUltimoProcesoCreacionQuery;
use AppBundle\Lib\Utiles;
class McafeeGenerarUsuariosNuevosMcafeeCommand extends ContainerAwareCommand
{
const LENGUAJE = "es";
const TIMEOUT = 20;
const SKU_DESTINY = "419-92860-1usermds";
protected function configure()
{
$this
->setName('mcafee:generar-usuarios-nuevos-mcafee')
->setDescription('comando que permite generar nuevos usuarios en mcafee, desde una tabla con datos.')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln("COMANDO INICIADO.");
$log = Utiles::setLog('command::migrarUsuariosSuscripcion', 'ws/wsMigrarUsuariosMcAfee');
$esTxPendiente = false;
$failedAlready = false;
$ultimoUsuarioProcesado = null;
$cantidadProcesados = 0;
$cantidadPendientes = 0;
$usuariosMax = Utiles::getParametroConfiguracion("numero_usuarios_creacion");
$limiteAuxUsuarios =Utiles::getParametroConfiguracion("limite_inicio_creacion");
$log->debug("obteniendo ultimo indice procesado...");
$ultimoIndiceUsuarioProcesado = McafeeUltimoProcesoCreacionQuery::create()//arreglar es ultimo indice procesado
->orderByMucId("DESC")
->findOne();
if ($ultimoIndiceUsuarioProcesado == null)
$condicion = "usuarios_mcafee_movistar_nuevos.id > 0";
//else $condicion = "usuarios_mcafee_movistar_migrar.id > ".$ultimoIndiceUsuarioProcesado->getUltimoUmcId();
else $condicion = "usuarios_mcafee_movistar_nuevos.id >= $limiteAuxUsuarios and usuarios_mcafee_movistar_migrar.id > ".$ultimoIndiceUsuarioProcesado->getUltimoUmcId()." and usuarios_mcafee_movistar_migrar.Device_Type != 'MultiDevice'";
$log->debug("condicion a analizar ".$condicion);
$log->debug("obteniendo usuarios candidatos a crear...");
$usuariosACrear = UsuariosMcafeeMovistarNuevosQuery::create()
->where($condicion)
->limit($usuariosMax)
->find();
$log->debug("cantidad de usuarios a crear..." . count($usuariosACrear));
$log->debug("obteniendo partner ID...");
$mcAfeePartnerId = Utiles::getParametroConfiguracion('mcafee_partner_id');
$log->debug("comenzando proceso de creacion...");
foreach ($usuariosACrear as $index => $usuarioCrear):
$log->debug("generando item a procesar...");
$customerContextId = 'GLN_NEW_' . $usuarioCrear->getId() . '_' . $usuarioCrear->getAreaTel();
$nuevoUsuario = new UsuarioMcafee();
$nuevoUsuario->setUmcMcafeeTipoProducto(UsuarioMcafee::TIPO_MULTIDEVICE);
$nuevoUsuario->setUmcMcafeeAffid(419);
$nuevoUsuario->setUmcMcafeeKeycard(null);
$nuevoUsuario->setUmcMcafeeSku(null);
$nuevoUsuario->setUmcMcafeeCcid($customerContextId);
$nuevoUsuario->setUmcMcafeeEmail(null);
$nuevoUsuario->setUmcMovistarEmail($usuarioCrear->getCorreo());
$nuevoUsuario->setUmcMovistarRut($usuarioCrear->getRut());
if($usuarioCrear->getFonoContactoMovil1() != 0){
$telMovil = $usuarioCrear->getFonoContactoMovil1();
}else {
$telMovil = $usuarioCrear->getFonoContactoMovil2();
}
$nuevoUsuario->setUmcMovil($telMovil);
$nuevoUsuario->setUmcFijo($usuarioCrear->getAreaTel());
$nuevoUsuario->setUmcMovistarAny($usuarioCrear->getAreaTel());
$nuevoUsuario->setUmcParametroEncriptado(null);
//$nuevoUsuario->setUmcMovistarAny(explode("@", $usuarioMigrar->getEmailAddress())[0]);
$nuevoUsuario->setUmcMovistarActivo(UsuarioMcafee::ACTIVO_MOVISTAR_FALSE);
//$nuevoUsuario->setUmcParametroEncriptado($nuevoUsuario->generarUsuarioEncriptadoParaMovistarNuevo());
$nuevoUsuario->setUmcCustomerId($customerContextId);
$nuevoUsuario->setUmcPermiteEmail(1);
$nuevoUsuario->setUmcFechaDesuscripcionEmail(null);
$nuevoUsuario->setUmcEliminado(UsuarioMcafee::ELIMINADO_FALSE);
$nuevoUsuario->setCreatedAt(new \DateTime());
$nuevoUsuario->setUpdatedAt(new \DateTime());
$nuevoUsuario->save();
$log->debug("comenzando a generar registro de la transaccion..");
$mcAfeeTx = new McafeeTransaccion();
$mcAfeeTx->setMtrTipo(McafeeTransaccion::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$mcAfeeTx->generarNroReferencia();
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_NO_ENVIADA);
$mcAfeeTx->setUsuarioMcafee($nuevoUsuario);
$xmlPartnerContext = '<PARTNERCONTEXT>'
. ' <HEADER> '
. ' <PARTNER PARTNER_ID="'.$mcAfeePartnerId.'"/> '
. ' </HEADER> '
. ' <DATA> '
. ' <CUSTOMERCONTEXT ID="'.$customerContextId.'" REQUESTTYPE="NEW"> '
. ' <ACCOUNT> '
. ' <EMAILADDRESS><![CDATA['.$nuevoUsuario->getUmcMovistarEmail().']]></EMAILADDRESS> '
. ' <FIRSTNAME><![CDATA['.$usuarioCrear->getNombres().']]></FIRSTNAME> '
. ' <LASTNAME><![CDATA[]]></LASTNAME> '
. ' <PASSWORD><![CDATA["1234"]]></PASSWORD> '
. ' <PREFERENCES> '
. ' <PREFERENCE TYPE="LANG">'.self::LENGUAJE.'</PREFERENCE> '
. ' </PREFERENCES> '
. ' </ACCOUNT> '
. ' <ORDER PARTNERREF="'.$mcAfeeTx->getMtrReferencia().'" REF=""> '
. ' <ITEMS> '
. ' <ITEM SKU="'.self::SKU_DESTINY.'" QTY=”1” ACTION="PD" LIC_QTY="1"/> '
. ' </ITEMS> '
. ' </ORDER> '
. ' </CUSTOMERCONTEXT> '
. ' </DATA> '
. '</PARTNERCONTEXT>';
$log->debug("xml generado para el item :" . $xmlPartnerContext);
$mcAfeeTx->setMtrXmlEnvio($xmlPartnerContext);
$mcAfeeTx->save();
$peticion = array('requestXML' => $xmlPartnerContext);
$log->debug('Peticion a McAfee->' . print_r($peticion, true));
///INICIO PETICION MCAFEE
try {
//Llamada McAfee
$wsMcafeePostRequestUrl = Utiles::getParametroConfiguracion('ws_mcafee_post_request_url');
$SOAP = new \SoapClient($wsMcafeePostRequestUrl, array("connection_timeout" => self::TIMEOUT, 'cache_wsdl' => WSDL_CACHE_NONE));
$log->debug('Llamando metodo "ProcessRequestWS" url WS->' . $wsMcafeePostRequestUrl);
$respuesta = $SOAP->ProcessRequestWS($peticion);
$log->debug('Respuesta McAfee->' . print_r($respuesta, true));
if ($respuesta != null) {
$mcAfeeTx->setMtrXmlRespuesta(print_r($respuesta->ProcessRequestWSResult, TRUE));
$arrayRespuesta = $this->procesarXmlRespuesta($respuesta);
$output->writeln('COMANDO FINALIZADO.');
exit();
$log->debug("Xml procesado en forma de array: " . print_r($arrayRespuesta, true));
if ($arrayRespuesta == NULL) {
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$log->err('$arrayRespuesta == NULL para mcAfeeTx id->' . $mcAfeeTx->getMtrId() . 'PETICION:' . print_r($peticion, TRUE));
$logError = Utiles::setLog('command::migrarUsuariosSuscripcion', 'error/wsMigrarUsuariosMcAfee');
$logError->err('$arrayRespuesta == NULL para mcAfeeTx id->' . $mcAfeeTx->getMtrId() . 'PETICION:' . print_r($peticion, TRUE));
$cantidadPendientes++;
$failedAlready = true;
} else {
$log->debug('$arrayRespuesta McAfee->' . print_r($arrayRespuesta, true));
$mcAfeeTx->setMtrCodigoRetorno($arrayRespuesta['mcAfeeReturnCode']);
$log->debug('Descripcion de la transaccion ->' . $arrayRespuesta['mcAfeeReturnDesc']);
if ($arrayRespuesta['mcAfeeReturnCode'] == '1000' || $arrayRespuesta['mcAfeeReturnCode'] == '5001' || $arrayRespuesta['mcAfeeReturnCode'] == '5002') {
//validacion datos Tx
if ($arrayRespuesta['mcAfeeCostumerId'] == $nuevoUsuario->getUmcMcafeeCcid() && $arrayRespuesta['mcAfeeOrderPartnerRef'] == $mcAfeeTx->getMtrReferencia()) {
/**
* @todo agregar urlProduct.
*/
$mcAfeeTx->setMtrReferenciaMcafee($arrayRespuesta['mcAfeeOrderRef']);
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_SUCCESS);
$mcAfeeTx->setMtrProductdownloadurl($arrayRespuesta['mcAfeeProductDownloadUrl']);
$nuevoUsuario->setUmcMcafeeSku(self::SKU_DESTINY);
$nuevoUsuario->setUmcMcafeeEmail($arrayRespuesta['mcAfeeEmailUsuario']);
$nuevoUsuario->setUmcParametroEncriptado($nuevoUsuario->generarUsuarioEncriptadoParaMovistarNuevo());
$nuevoUsuario->setUmcMcafeeKeycard($arrayRespuesta['mcAfeeProductDownloadUrl']);
$nuevoUsuario->setUmcMcafeeStatus($arrayRespuesta['mcAfeeReturnCode']);
$nuevoUsuario->save();
$mcAfeeTx->save();
$log->debug('Transaccion finalizada con exito!. id Transaccion->' . $mcAfeeTx->getMtrId());
$cantidadProcesados++;
} else {
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$log->err('Respuesta Costumer Id->' . $arrayRespuesta['mcAfeeCostumerId'] . 'y Costumer id->' . $nuevoUsuario->getUmcMcafeeCcid());
$log->err('nro de referencia Respuesta->' . $arrayRespuesta['mcAfeeOrderPartnerRef'] . 'y nro referencia->' . $mcAfeeTx->getMtrReferencia());
$log->err('la transaccion fracaso debido a inconsistencia en los datos.' . print_r($arrayRespuesta, true));
$logError = Utiles::setLog('command::crearUsuariosSuscripcion', 'error/wsCrearUsuariosMcAfee');
$logError->err('Respuesta Costumer Id->' . $arrayRespuesta['mcAfeeCostumerId'] . 'y Costumer id->' . $nuevoUsuario->getUmcMcafeeCcid());
$logError->err('nro de referencia Respuesta->' . $arrayRespuesta['mcAfeeOrderPartnerRef'] . 'y nro referencia->' . $mcAfeeTx->getMtrReferencia());
$logError->err('la transaccion fracaso debido a inconsistencia en los datos.' . print_r($arrayRespuesta, true));
$cantidadPendientes++;
$failedAlready = true;
}
} else {//codigo de retorno distinto de 1000 y 5001
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$log->err('returnCode distinto de 1000 y 5001 que son los exitosos.' . print_r($arrayRespuesta, true));
$logError = Utiles::setLog('command::crearUsuariosSuscripcion', 'error/wsCrearUsuariosMcAfee');
$logError->err('returnCode distinto de 1000 y 5001 que son los exitosos.' . print_r($arrayRespuesta, true));
$cantidadPendientes++;
$failedAlready = true;
}
}
} else {//$respuesta ==NULL
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
$log->err('respuesta NULL para peticion:' . print_r($peticion, true));
$logError = Utiles::setLog('command::crearUsuariosSuscripcion', 'error/wsCrearUsuariosMcAfee');
$logError->err('respuesta NULL para peticion:' . print_r($peticion, true));
$cantidadPendientes++;
$failedAlready = true;
}
} catch (\Exception $exc) {
$mcAfeeTx->setMtrEstado(McafeeTransaccion::ESTADO_FRACASADA);
$mcAfeeTx->save();
if (!$esTxPendiente) {
McafeeTransaccionPendiente::generarTransaccionPendiente($nuevoUsuario, McafeeTransaccionPendiente::TIPO_USUARIO_NUEVO_LICENCIA_MOVISTAR);
}
$log->err('Error al llamar WS. Exception:' . $exc->getMessage() . ' | peticion:' . print_r($peticion, true));
$logError = Utiles::setLog('command::crearUsuariosSuscripcion', 'error/wsCrearUsuariosMcAfee');
$logError->err('Error al llamar WS. Exception:' . $exc->getMessage() . ' | peticion:' . print_r($peticion, true));
//return FALSE;
$cantidadPendientes++;
$failedAlready = true;
}
$ultimoUsuarioProcesado = $usuarioCrear;
endforeach;
//GENERANDO REGISTRO DE PROCESO
$registroProceso = new McafeeUltimoProcesoCreacion();
$registroProceso->setUsuariosMcafeeMovistarNuevos($ultimoUsuarioProcesado);
$registroProceso->setMucCantidadProcesados($cantidadProcesados);
$registroProceso->setMucCantidadPendientes($cantidadPendientes);
$registroProceso->setCreatedAt(new \DateTime());
$registroProceso->setUpdatedAt(new \DateTime());
$registroProceso->save();
$output->writeln('COMANDO FINALIZADO.');
}
/**
* Procesa respuesta mcafee, extrae valores y atributos y devuelve un array con estos valores.
*
* @param string $xmlRespuesta
* @return array
*/
private static function procesarXmlRespuesta($xmlRespuesta){
$log = Utiles::setLog('WsBundle\Lib\controladorMcAfee::procesarXmlRespuesta', 'ws/wsMcAfee');
$arrayRespuesta= Array();
try{
$xObjRespuesta = simplexml_load_string($xmlRespuesta->ProcessRequestWSResult, 'SimpleXMLElement', LIBXML_NOCDATA);//LIBXML_NOCDATA atributos dentro de tags
// $log->debug('$xObjRespuesta->'.print_r($xObjRespuesta,true));
if (!is_object($xObjRespuesta)){
$log->err('Error al instanciar objeto xml->' . $xmlRespuesta->ProcessRequestWSResult);
$logError = Utiles::setLog('WsBundle\Lib\controladorMcAfee::procesarXmlRespuesta', 'error/wsMcAfee');
$logError->err('Error al instanciar objeto xml->' . $xmlRespuesta->ProcessRequestWSResult);
}
else{
//<PARTNERRESPONSECONTEXT>
// <HEADER>
// <PARTNER PARTNER_ID="817" />
// </HEADER>
// <DATA>
// <RESPONSECONTEXT ID="GL_19_56962451306">
// <RETURNCODE>5001</RETURNCODE>
// <RETURNDESC>Transaction success: Warning, Email Address Exists.</RETURNDESC>
// <ORDER PARTNERREF="GL_ES_SUS_166_05032015124229" REF="NCS507747897" />
// <ACCOUNT>
// <EMAILADDRESS>luis.arcos@gearlabs.cl</EMAILADDRESS>
// <PASSWORD><![CDATA[asd123123]]></PASSWORD>
// </ACCOUNT>
// <PRODUCTDOWNLOADURL><![CDATA[http://home.mcafee.com/downloads/keycard.aspx?affid=817&culture=ES-MX&tk=iUMYjxCvNsr_CFQUtZRUYEr2xAeMOTPNFmlw3xXs53KnUoRZDtyoIzRyf5Ad_hr_0&tp=48]]></PRODUCTDOWNLOADURL>
// </RESPONSECONTEXT>
// </DATA>
//</PARTNERRESPONSECONTEXT>
$arrayRespuesta['mcAfeePartnerId'] = (string) $xObjRespuesta->HEADER->PARTNER->attributes()->PARTNER_ID;
$arrayRespuesta['mcAfeeCostumerId'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->attributes()->ID;
$arrayRespuesta['mcAfeeReturnCode'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->RETURNCODE;
$arrayRespuesta['mcAfeeReturnDesc'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->RETURNDESC;
$arrayRespuesta['mcAfeeProductDownloadUrl'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->PRODUCTDOWNLOADURL;
if (isset($xObjRespuesta->DATA->RESPONSECONTEXT->ORDER)){
$arrayRespuesta['mcAfeeOrderPartnerRef'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->ORDER->attributes()->PARTNERREF;
$arrayRespuesta['mcAfeeOrderRef'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->ORDER->attributes()->REF;
}
if (isset($xObjRespuesta->DATA->RESPONSECONTEXT->ACCOUNT)){
$arrayRespuesta['mcAfeeEmailUsuario'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->ACCOUNT->EMAILADDRESS;
$arrayRespuesta['mcAfeePasswordUsuario'] = (string) $xObjRespuesta->DATA->RESPONSECONTEXT->ACCOUNT->PASSWORD;
}
}
}
catch (\Exception $ex) {
$log->crit("Error al leer detalles XML.".$xmlRespuesta->ProcessRequestWSResult);
$log->crit("Detalle error ". print_r($ex, TRUE));
$arrayRespuesta = array();
}
return $arrayRespuesta;
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment