/** * * @param Cuota $cuota * @param double $litros * @return InventarioDet */ private function agregarInventario(Cuota $cuota, $litros) { $user = $this->get('security.context')->getToken()->getUser(); $inventarioDao = new InventarioDao($this->getDoctrine()); //$inventarioDetDao = new InventarioDetDao($this->getDoctrine()); $alcoholDao = new AlcoholDao($this->getDoctrine()); $inventarioDet = new InventarioDet(); //Buscamos si el encabezado en la tabla de "Inventario" existe $inventario = $inventarioDao->findInventario($cuota->getEntidad()->getEntId(), $cuota->getAlcohol()->getAlcId(), $cuota->getCuoGrado(), $cuota->getCuoNombreEsp()); if ($inventario != null) { $invLitros = $inventario->getInvLitros(); $inventario->setInvLitros($invLitros + $litros); $inventario->setAuditUserUpd($user->getUsername()); $inventario->setAuditDateUpd(new \DateTime()); $inventarioDet->setInventario($inventario); } else { //#### Encabezado de Inventario $inventarioDet->setInventario(new Inventario()); $inventarioDet->getInventario()->setEntidad($cuota->getEntidad()); $inventarioDet->getInventario()->setAlcohol($alcoholDao->getAlcohol($cuota->getAlcohol()->getAlcId())); $inventarioDet->getInventario()->setInvLitros($litros); $inventarioDet->getInventario()->setAuditUserIns($user->getUsername()); $inventarioDet->getInventario()->setAuditDateIns(new \DateTime()); $inventarioDet->getInventario()->setInvGrado($cuota->getCuoGrado()); $inventarioDet->getInventario()->setInvNombreEsp($cuota->getCuoNombreEsp()); } //## Detalle de inventario $inventarioDet->getInventario()->addInventarioDet($inventarioDet); $inventarioDet->setInvDetFecha(new \DateTime()); //#### Auditoría $inventarioDet->setAuditUserIns($user->getUsername()); $inventarioDet->setAuditDateIns(new \DateTime()); $inventarioDet->setInvDetAccion("+"); $inventarioDet->setInvDetLitros($litros); //$inventarioDetDao->editInventarioDet($inventarioDet); //$this->getDoctrine()->getEntityManager()->persist($inventarioDet); return $inventarioDet; }
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; }