/** * Eliminacion logica del registro en la tabla. Se encargada colocar el flag audit_deleted =true * * @param Request $request * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function eliminarAction(InventarioDet $inventarioDet) { $auditUser = $this->container->get('security.context')->getToken()->getUser(); $inventarioDetDao = new InventarioDetDao($this->getDoctrine()); $inventarioDao = new InventarioDao($this->getDoctrine()); //Buscamos el encabezado para quitarle la cantidad a eliminar $inventarioOld = $inventarioDao->findInventario($inventarioDet->getInventario()->getEntidad()->getEntId(), $inventarioDet->getAlcId(), $inventarioDet->getInvGrado(), $inventarioDet->getInvNombreEsp()); //$inventarioOld = $inventarioDet->getInventario(); $invLitros = $inventarioOld->getInvLitros(); $invReservado = $inventarioOld->getInvReservado(); if ($inventarioDet->getInvDetAccion() == '+') { $inventarioOld->setInvLitros($invLitros - $inventarioDet->getInvDetLitros()); } else { if ($inventarioDet->getInvDetAccion() == 'R') { //$inventarioOld->setInvLitros($invLitros - $inventarioDet->getInvDetLitros()); $inventarioOld->setInvReservado($invReservado - $inventarioDet->getInvDetLitros()); } else { if ($inventarioDet->getInvDetAccion() == '-') { $inventarioOld->setInvLitros($invLitros + $inventarioDet->getInvDetLitros()); } } } $inventarioOld->setAuditUserUpd($auditUser->getUsername()); $inventarioOld->setAuditDateUpd(new \DateTime()); $inventarioDetDao->delInventarioDet($inventarioDet->getInvDetId(), $auditUser->getUsername()); $this->get('session')->setFlash('notice', '#### El registro ha sido eliminado ####'); return $this->redirect($this->generateUrl('MinSalSCAProcesosBundle_mantInventariosDet')); }
/** * 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); }
private function agregarInventarioProveedor(SolLocalDet $solLocalDet, $invId, $litros, $grados, $reserva, $liberarParcial) { $user = $this->get('security.context')->getToken()->getUser(); $inventarioDao = new InventarioDao($this->getDoctrine()); $inventarioDetDao = new InventarioDetDao($this->getDoctrine()); //$inventarioDetDao = new InventarioDetDao($this->getDoctrine()); //$alcoholDao = new AlcoholDao($this->getDoctrine()); $inventarioDet = null; $localDetId = $solLocalDet->getLocalDetId(); //Buscamos si el encabezado en la tabla de "Inventario" existe $inventario = $inventarioDao->getInventario($invId); if ($inventario != null) { $invLitros = $inventario->getInvLitros(); $invReservado = $inventario->getInvReservado(); $invGrado = $inventario->getInvGrado(); if ($reserva) { //Esta formula es para convertir los litros en el grado del inventario del proveedor $inventario->setInvReservado($invReservado + $litros * $grados / $invGrado); $inventarioDet = new InventarioDet(); $inventarioDet->setInvDetFecha(new \DateTime()); $inventarioDet->setAuditUserIns($user->getUsername()); $inventarioDet->setAuditDateIns(new \DateTime()); $inventarioDet->setInvDetLitros($litros * $grados / $invGrado); $inventarioDet->setInvDetAccion("R"); } else { $inventario->setInvLitros($invLitros - $litros * $grados / $invGrado); $inventario->setInvReservado($invReservado - $litros * $grados / $invGrado); $inventarioDet = $inventarioDetDao->findInventarioDet($invId, $localDetId, 'R'); $inventarioDet->setAuditUserUpd($user->getUsername()); $inventarioDet->setAuditDateUpd(new \DateTime()); if ($liberarParcial) { $inventarioDetParcial = new InventarioDet(); $inventarioDetParcial->setInvDetFecha(new \DateTime()); $inventarioDetParcial->setAuditUserIns($user->getUsername()); $inventarioDetParcial->setAuditDateIns(new \DateTime()); $inventarioDetParcial->setInvDetLitros($litros * $grados / $invGrado); $inventarioDetParcial->setInvDetAccion("-"); $inventarioDetParcial->setSolLocalDet($solLocalDet); $inventarioDetParcial->setInventario($inventario); $inventarioDetParcial->getInventario()->addInventarioDet($inventarioDetParcial); $inventarioDet->setInvDetLitros($inventarioDet->getInvDetLitros() - $litros * $grados / $invGrado); } else { $inventarioDet->setInvDetAccion("-"); } } $inventario->setAuditUserUpd($user->getUsername()); $inventario->setAuditDateUpd(new \DateTime()); $inventarioDet->setInventario($inventario); //## Detalle de inventario $inventarioDet->getInventario()->addInventarioDet($inventarioDet); } else { throw new Exception('No existe inventario de Proveedor'); } return $inventarioDet; }