/** * Proceso encargado de realizar la expiración de solicitudes de * Importacion y Registro Local de Compras * */ public function expiracionSolicitudesAction() { /*########################################### ##* Expiración de Solicitudes Importación ## ###########################################*/ $solImportacionDao = new SolImportacionDao($this->getDoctrine()); $transicionDao = new TransicionDao($this->getDoctrine()); $solicitudes = $solImportacionDao->getSolicitudesExpiradas(); $contSolImp = 0; foreach ($solicitudes as $sol) { $transiciones = $transicionDao->getTransicionesSiguientes($sol->getTransicion()->getTraId()); foreach ($transiciones as $tran) { $estId = $tran->getEstado()->getEstId(); if ($estId == Estado::$CANCELADO) { $sol->setTransicion($tran); $sol->setSolImpComentario('Solicitud Expirada'); $sol->setAuditUserUpd('SCA'); $sol->setAuditDateUpd(new \DateTime()); $solImportacionDet = $sol->getSolImportacionesDet(); $solImportacionDet = $solImportacionDet[0]; $solImportacionDao->editSolImportacion($sol); $this->generarEmailSolImpNotificacion($solImportacionDet, $tran); $contSolImp = $contSolImp + 1; } } } /*############################################### ##* Expiracion de Registros de compra local ### ################################################*/ $solLocalDao = new SolLocalDao($this->getDoctrine()); $inventarioDetDao = new InventarioDetDao($this->getDoctrine()); $solicitudes = $solLocalDao->getSolicitudesExpiradas(); $contSolLocal = 0; foreach ($solicitudes as $sol) { $transiciones = $transicionDao->getTransicionesSiguientes($sol->getTransicion()->getTraId()); foreach ($transiciones as $tran) { $estId = $tran->getEstado()->getEstId(); if ($estId == Estado::$CANCELADO) { //Buscamos el encabezado para realizar la transicion $solLocalDet = $sol->getSolLocalesDet(); $solLocalDet = $solLocalDet[0]; $localDetId = $solLocalDet->getLocalDetId(); $invsDetTemp = $solLocalDet->getInventariosDet(); foreach ($invsDetTemp as $tmp) { if ($solLocalDet->getSolLocal()->getEntidad()->getEntId() != $tmp->getInventario()->getEntidad()->getEntId()) { $inventarioProv = $tmp->getInventario(); } } /*NOTA: Solo se busca el registro de inventario que esten en R (reserva) para eliminarse * Los demás se asumen que si ya entraron a inventario no hay reversa */ $inventarioDetTmp = $inventarioDetDao->findInventarioDet($inventarioProv->getInvId(), $localDetId, 'R'); $inventarioDetTmp = $this->eliminarInventarioDetProveedorAction($inventarioDetTmp); $sol->setTransicion($tran); $sol->setSolLocalComentario('Solicitud Expirada'); $sol->setAuditUserUpd('SCA'); $sol->setAuditDateUpd(new \DateTime()); $solLocalDao->editSolLocal($sol); $this->generarEmailSolLocalNotificacion($solLocalDet, $tran); $contSolLocal = $contSolLocal + 1; } } } return new Response('ok -> SolImportacion Expiradas =' . $contSolImp . ' SolLocal Expiradas = ' . $contSolLocal); }