class ProvisioningManager !!!1351429.php!!! __listActions() : array return array('aprovisionar' => "aprovisionar", "esbCheck" => "esbCheck"); !!!1351557.php!!! esbCheck(inout context : ApplicationContext, in ajax : bool) date_default_timezone_set('America/Buenos_Aires'); //Aca hay cosas de Log require_once 'LogMessages.php'; //Aca estan las centrales xdd require_once 'ProvisioningIUNI.php'; require_once 'ProvisioningPlataformas.php'; //Traigo la instancia de ORM $orm = ORM::getInstance(); //Seteo la database a ORACLE //Maqueta //$connection = new OracleConnection("172.16.213.28", 1521, "sswmc", "ADMIN_IUNI", "wholesale2010", "ADMIN_IUNI", OCI_DEFAULT); $connection = new OracleConnection("ADMIN_IUNI", "wholesale2010", "SSWMC"); //Produccion //$connection = new OracleConnection("172.16.57.25", 1521, "AUTOPROPDB_dguard", "ADMIN_IUNI", "wholesale2010"); //$connection = new OracleConnection("ADMIN_IUNI", "wholesale2010", "AUTOPROPDB"); $orm->setDatabase(new OracleDatabase($connection)); //Tomo la Database $db = $orm->getDatabase(); //Tomo la Conexión a Base de Datos $dbconn = $db->getConnection(); //Traigo el usuario q ejecuta los packages $userEjecutaPackages = Application::getInstance()->getContext()->getUser()->getId(); //Traigo la instancia de LOG $log = LogMessages::GetInstance($dbconn, $userEjecutaPackages); //Seteo los mensajes que hay en la databse LogMessages::getMensajes(); //Logueo el Inicio de las pruebasPKG_WEB_LINEAS.FU_LINEAS_SEL //$log->addLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_WB, 0, 'Inicio las Pruebas'); $sistemaLeer = 10; //IUNI $sistemaLeerProximo = 11; //Proximo set_error_handler("miGestorErrores"); $fallo_en_meter_alguna_tarea = false; $ordenesDeVentaLeidas = array(); $ordenesDeVentaLeidasProximo = array(); //die(); $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Creo Proceso"); $params = array("p_user_id" => (int)$userEjecutaPackages, "p_estado" => 3); $result = null; $lala = $dbconn->executeFunction("PKG_CAP_PROCESOTASKS.FU_PROCESOTASKS_INS", $params, $result, Connection::T_CURSOR); $asd = $dbconn->fetch($lala); $dbconn->free($lala); if ( (!is_array($asd)) || (( isset($asd["SQLCODE_ERROR"])) && ($asd["SQLCODE_ERROR"] != "200")) ) { $desc = LogMessages::erroresArray($asd) . " P: " . LogMessages::erroresArray($params); $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 5, "PKG_CAP_PROCESOTASKS.FU_PROCESOTASKS_INS [$desc]"); trigger_error("PKG_CAP_PROCESOTASKS.FU_PROCESOTASKS_INS", E_USER_WARNING); } else { $proceso_id = $asd["LASTID"]; } $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Listo Insertar ProcesoTask", "", $proceso_id); //Traigo los datos del ESB $oProvisioning = new ProvisioningPlataformas($dbconn, $log, $userEjecutaPackages, $proceso_id); $oProvisioning->setServiceProviderId($sistemaLeer); $rsp = $oProvisioning->getTareasEsb(); $pos = strpos($rsp, "?>"); if ($pos === false) { $log->AddLog(LogMessages::LOG_ERROR, LogMessages::SYS_TF, 6, "Respuesta no interpretada como XML valido", "", $proceso_id); trigger_error("No hay datos para procesar en el web service de 10fold, respuesta no interpretada como XML valido", E_USER_ERROR); } $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Procesando las Tasks del XML BS response", "", $proceso_id); $domNuevo = new DOMDocument(); $domNuevo->loadXML(substr($rsp, $pos + 2)); $tareas = $domNuevo->getElementsByTagName("Tasks"); $tareasAgregadasDB = array(); $tareasOrdeventeadas = array(); if ($tareas->length == 0) { $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 6, "No hay datos para procesar", "", $proceso_id); trigger_error("No hay datos para procesar en el web service de 10fold", E_USER_WARNING); } else { $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Hay datos para procesar", "", $proceso_id); for ($i = 0; $i < $tareas->length; $i++) { if ($tareas->item($i)->nodeName == "Tasks") { $hijos = $tareas->item($i)->childNodes; unset($taskCode); unset($ordenDeVenta); for ($j = 0; $j < $hijos->length; $j++) { switch ($hijos->item($j)->nodeName) { case "serviceOrderTaskId": $serviceOrderTaskId = $hijos->item($j)->nodeValue; break; case "taskCode": $taskCode = $hijos->item($j)->nodeValue; break; case "serviceOrderNumber": $serviceOrderNumber = $hijos->item($j)->nodeValue; break; case "subscriptionId": $subscriptionId = $hijos->item($j)->nodeValue; break; case "subscriptionServiceId": $subscriptionServiceId = $hijos->item($j)->nodeValue; break; case "serviceTypeSpsId": $serviceTypeSpsId = $hijos->item($j)->nodeValue; break; case "serviceTypeSpsCode": $serviceTypeSpsCode = $hijos->item($j)->nodeValue; break; case "featureTypeCode": $featureTypeCode = $hijos->item($j)->nodeValue; break; case "unitOfMeasureCode": $unitOfMeasureCode = $hijos->item($j)->nodeValue; break; case "valueOfMeasureCode": $valueOfMeasureCode = $hijos->item($j)->nodeValue; break; case "statusCode": $statusCode = $hijos->item($j)->nodeValue; break; case "description": $description = $hijos->item($j)->nodeValue; break; case "Metadata": $Metadata = $domNuevo->saveXML($hijos->item($j)); $hijosMD = $hijos->item($j)->childNodes; for ($k = 0; $k < $hijosMD->length; $k++) { switch ($hijosMD->item($k)->nodeName) { case "Iuni"; $hijosIuni = $hijosMD->item($k)->childNodes; for ($l = 0; $l < $hijosIuni->length; $l++) { if ($hijosIuni->item($l)->nodeName == "ordenDeVenta") { $ordenDeVenta = $hijosIuni->item($l)->nodeValue; } } break; case "Cliente"; $razonsocial = $hijosMD->item($k)->nodeValue; break; case "CGP"; $cgp = $hijosMD->item($k)->nodeValue; break; } } break; } } if (($j > 0)) { //si hay ordenes xd if ((isset($taskCode)) && (($taskCode == "MC") || ($taskCode == "MD") || ($taskCode == "WZ"))) { $ordenesDeVentaLeidas[] = $ordenDeVenta; $params = array("p_usuario" => (int)$userEjecutaPackages, "p_proceso_id" => (int)$proceso_id, "p_serviceOrderTaskId" => (int)$serviceOrderTaskId, "p_taskCode" => $taskCode, "p_serviceOrderNumber" => (int)$serviceOrderNumber, "p_subscriptionId" => (int)$subscriptionId, "p_subscriptionServiceId" => (int)$subscriptionServiceId, "p_serviceTypeSpsId" => (int)$serviceTypeSpsId, "p_serviceTypeSpsCode" => $serviceTypeSpsCode, "p_featureTypeCode" => $featureTypeCode, "p_unitOfMeasureCode" => $unitOfMeasureCode, "p_valueOfMeasureCode" => $valueOfMeasureCode, "p_statusCode" => $statusCode, "p_description" => $description, "p_ordenDeVenta" => $ordenDeVenta, "p_razonsocial" => $razonsocial, "p_cgp" => $cgp, "p_clob" => $Metadata, "p_serviceProviderId" => (int)$sistemaLeer ); $result = null; $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "PKG_CAP_SERVICEORDERTASKS.FU_SERVICEORDERTASKS_INS serviceOrderTaskId [$serviceOrderTaskId]", "", $proceso_id); $lala = $dbconn->executeClobPackage("PKG_CAP_SERVICEORDERTASKS.FU_SERVICEORDERTASKS_INS", $params, "p_clob", $result, Connection::T_CURSOR); $asd = $dbconn->fetch($lala); $dbconn->free($lala); $tareasAgregadasDB[] = $serviceOrderTaskId; if ( (!is_array($asd)) || (( isset($asd["SQLCODE_ERROR"])) && ($asd["SQLCODE_ERROR"] != "200")) ) { if ($asd["SQLCODE_ERROR"] == "201"){ $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "[$serviceOrderTaskId] TAREA QUE TENGO QUE REPROCESAR"); } else { $desc = LogMessages::erroresArray($asd) . " P: " . LogMessages::erroresArray($params); $log->AddLog(LogMessages::LOG_ERROR, LogMessages::SYS_CA, 5, "PKG_CAP_SERVICEORDERTASKS.FU_SERVICEORDERTASKS_INS $desc", "", $proceso_id); //BORRO LAS TAREAS LO QUE INSERTE $fallo_en_meter_alguna_tarea = true; $oProvisioning->borrarTareasPorProcesoId(); trigger_error("PKG_CAP_SERVICEORDERTASKS.FU_SERVICEORDERTASKS_INS", E_USER_ERROR); } } } else { if ((isset($taskCode)) && (($taskCode == "NH") || ($taskCode == "WW") || ($taskCode == "NV"))) { //$ordenesDeVentaLeidasProximo[] = $ordenDeVenta; $params = array("p_usuario" => (int)$userEjecutaPackages, "p_proceso_id" => (int)$proceso_id, "p_serviceOrderTaskId" => (int)$serviceOrderTaskId, "p_taskCode" => $taskCode, "p_serviceOrderNumber" => (int)$serviceOrderNumber, "p_subscriptionId" => (int)$subscriptionId, "p_subscriptionServiceId" => (int)$subscriptionServiceId, "p_serviceTypeSpsId" => (int)$serviceTypeSpsId, "p_serviceTypeSpsCode" => $serviceTypeSpsCode, "p_featureTypeCode" => $featureTypeCode, "p_unitOfMeasureCode" => $unitOfMeasureCode, "p_valueOfMeasureCode" => $valueOfMeasureCode, "p_statusCode" => $statusCode, "p_description" => $description, "p_ordenDeVenta" => $ordenDeVenta, "p_razonsocial" => $razonsocial, "p_cgp" => $cgp, "p_clob" => $Metadata, "p_serviceProviderId" => (int)$sistemaLeerProximo ); $result = null; $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "PKG_CAP_SERVICEORDERTASKS.FU_SERVICEORDERTASKS_INS", "", $proceso_id); $lala = $dbconn->executeClobPackage("PKG_CAP_SERVICEORDERTASKS.FU_SERVICEORDERTASKS_INS", $params, "p_clob", $result, Connection::T_CURSOR); $asd = $dbconn->fetch($lala); $dbconn->free($lala); $tareasAgregadasDB[] = $serviceOrderTaskId; $tareasOrdeventeadas[$serviceOrderTaskId] = $ordenDeVenta; if ( (!is_array($asd)) || (( isset($asd["SQLCODE_ERROR"])) && ($asd["SQLCODE_ERROR"] != "200")) ) { if ($asd["SQLCODE_ERROR"] == "201"){ $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "[$serviceOrderTaskId] TAREA QUE TENGO QUE REPROCESAR"); } else { $desc = LogMessages::erroresArray($asd) . " P: " . LogMessages::erroresArray($params); $log->AddLog(LogMessages::LOG_ERROR, LogMessages::SYS_CA, 5, "PKG_CAP_SERVICEORDERTASKS.FU_SERVICEORDERTASKS_INS $desc", "", $proceso_id); //BORRO LAS TAREAS LO QUE INSERTE $fallo_en_meter_alguna_tarea = true; $oProvisioning->borrarTareasPorProcesoId(); trigger_error("PKG_CAP_SERVICEORDERTASKS.FU_SERVICEORDERTASKS_INS", E_USER_ERROR); } } } else { //echo "[$serviceOrderTaskId] TAREA QUE TENGO QUE IGNORAR"; $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "[$serviceOrderTaskId] TAREA QUE TENGO QUE IGNORAR"); } } } } } $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Terminado de meter las tareas en database", "", $proceso_id); } $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Ya meti en database las cosas para empezar a procesar independientemente", "", $proceso_id); $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Listo para marcar las tareas", "", $proceso_id); if (is_array($tareasAgregadasDB) && (count($tareasAgregadasDB) > 0)) { $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Marco las Tareas", "", $proceso_id); //MARCO WI LAS TAREAS EN ESB $tareasYaMarcadas = array(); $meFallo = false; $tareasAgregadasDB1 = $tareasAgregadasDB; while (($meFallo != true) && ($tareita = array_pop($tareasAgregadasDB1))) { $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Marco la tarea: [$tareita]", "", $proceso_id); $resUpdate = $oProvisioning->update10FoldStatus($tareita, "WI", ""); // $resUpdate = true; if (($resUpdate === false) || ($resUpdate["codigo"] == "error")) { $log->AddLog(LogMessages::LOG_ERROR, LogMessages::SYS_CA, 0, "Fallo al marcar tarea en ESB [$tareita]", "", $proceso_id); $meFallo = true; } else { $tareasYaMarcadas[] = $tareita; } } if ($meFallo) { if (is_array($tareasYaMarcadas) && (count($tareasYaMarcadas) > 0)) { foreach ($tareasYaMarcadas as $tareita) { $resUpdate = $oProvisioning->update10FoldStatus($tareita, "SN", ""); } } //BORRO LAS TAREAS LO QUE INSERTE $oProvisioning->borrarTareasPorProcesoId(); } } else { if (!$fallo_en_meter_alguna_tarea) { $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "No hay tareas para marcar", "", $proceso_id); } else { $log->AddLog(LogMessages::LOG_ERROR, LogMessages::SYS_CA, 0, "Fallo al meter alguna tarea a la BD", "", $proceso_id); } } $ordenesDeVentaLeidas = array_unique($ordenesDeVentaLeidas); //$ordenesDeVentaLeidasProximo = array_unique($ordenesDeVentaLeidasProximo); //Agregado para poner el estado nuevo en las OVs //chequear que las vuelva para atras!!!! o cambiar esto adentro del codigo de arriba if (count($ordenesDeVentaLeidas) > 0) { foreach ($ordenesDeVentaLeidas as $ordencita) { $params = array("p_user_id" => (int)$userEjecutaPackages, "p_orden_de_venta" => (int)$ordencita, "p_sistema" => (int)$sistemaLeer); $result = null; $lala = $dbconn->executeFunction("PKG_CAP_PROVIS_ORDENES.FU_RESET_OV", $params, $result, Connection::T_CURSOR); $asd = $dbconn->fetch($lala); $dbconn->free($lala); } } if (count($tareasOrdeventeadas) > 0) { foreach ($tareasOrdeventeadas as $tareitalinda => $ordendeventita) { $params = array("p_user_id" => (int)$userEjecutaPackages, "p_orden_de_venta" => (int)$ordendeventita, "p_sistema" => (int)$sistemaLeerProximo, "p_serviceordertask_id" => (int)$tareitalinda); $result = null; $lala = $dbconn->executeFunction("PKG_CAP_PROVIS_ORDENES.FU_RESET_OV_PRX", $params, $result, Connection::T_CURSOR); $asd = $dbconn->fetch($lala); $dbconn->free($lala); if ( (!is_array($asd)) || (( isset($asd["SQLCODE_ERROR"])) && ($asd["SQLCODE_ERROR"] != "200")) ) { //Me fallo a meter alguna pero esto no deberia joder, xq putearia arriba al meter la tarea } else { //aca tamos bien. } } } $log->AddLog(LogMessages::LOG_INFORMATION, LogMessages::SYS_CA, 0, "Ingreso de tareas en base de datos.", "", $proceso_id); $log->closeLog(); echo "Fin xd"; !!!1358213.php!!! listLogs(inout context : ApplicationContext, in ajax : bool) : Renderable $orm = $this->application->getORM(); $webList = new WebList($this); $webList->addColumn(new Column('Sistema', 'logs.system.description')) ->addColumn(new Column('Fecha', 'logs.date', true)) ->addColumn(new Column('Tipo', 'TypeDesc')) ->addColumn(new Column('Grupo', 'GroupDescription')) ->addColumn(new Column('Mensaje', 'logs.message.description')) ->addColumn(new Column('Detalle', 'logs.detail')) ->setListFunction(function (ProvisioningManager $manager, WebList $oWebList, ApplicationContext &$context, ORM &$orm, $from_row, $to_row) { $query = $orm->query('Process') ->attributes('logs.date', 'logs.system.description', 'logs.detail', 'logs.message.description', 'logs.message.messageGroup.description as GroupDescription', 'logs.message.messageType.description as TypeDesc'); $oWebList->applyFilter($query); $oWebList->limitQuery($query); if ($oWebList->getSort() === null) $query->orderBy ('logs.date ASC'); return $query->find(); }) ; $slcSystems = new SelectComponent('Sistema', 'system', 'logs.system.id'); $slcSystems->setOptions($orm->query('System')->attributes('id as value', 'description')->find()); $slcGroup = new SelectComponent('Grupo', 'group', 'logs.message.messageGroup.id'); $slcGroup->setOptions($orm->query('MessageGroup')->attributes('id as value', 'description')->find()); $slcType = new SelectComponent('Tipo', 'type', 'logs.message.messageType.id'); $slcType->setOptions($orm->query('MessageType')->attributes('id as value', 'description')->find()); $layout = new GridLayout(1, 4); $layout->addComponent($slcSystems, 1, 1) ->addComponent($slcType, 1, 2) ->addComponent($slcGroup, 1, 3) ->addComponent(new ButtonComponent('Buscar', 'submit'), 1, 4); $form = new Form(); $form->addComponent($layout) ->addComponent(new HiddenComponent(null, 'process_id', 'id')) ->setMethod('post') ->setTitle('Detalle de errores del proceso '.$context->getParam('process_id')) ->setAction('AutoProvisioning.listLogs'); $webList->setFilter($form); return $webList->deploy($context, $orm); !!!1372677.php!!! listProcess(inout context : ApplicationContext, in ajax : bool) : Renderable $orm = $this->application->getORM(); $webList = new WebList($this); $webList->addColumn(new Column('Proceso', 'id')) ->addColumn(new Column('Estado', 'state.description')) ->addColumn(new Column('Acciones', null, false, null, false, null, array( new ActionButton($context, 'AutoProvisioning.listLogs', array('process_id'=>'id')) ))) ->setListFunction(function (ProvisioningManager $manager, WebList $oWebList, ApplicationContext &$context, ORM &$orm, $from_row, $to_row) { $query = $orm->query('Process') ->attributes('id', 'state.description'); $oWebList->applyFilter($query) ->limitQuery($query); if ($oWebList->getSort() === null) $query->orderBy ('id DESC'); return $query->find(); }) ; $slcState = new SelectComponent('Estado', 'state', 'state.id'); $slcState->setOptions($orm->query('ProcessState')->attributes('id as value', 'description')->find()); $layout = new GridLayout(1, 4); $layout->addComponent($slcState, 1, 1) ->addComponent(new ButtonComponent('Buscar', 'submit'), 1, 4); $form = new Form(); $form->addComponent($layout) ->setMethod('post') ->setAction('AutoProvisioning.listProcess'); $webList->setFilter($form); return $webList->deploy($context, $orm); !!!1372933.php!!! listXMLProcess(inout context : ApplicationContext, in ajax : bool) : Renderable