public function consultarAlcoholesJSONSelectAction()
 {
     $alcoholDao = new AlcoholDao($this->getDoctrine());
     $user = $this->get('security.context')->getToken()->getUser();
     $alcoholes = $alcoholDao->getAlcoholes($user->getUserInternoTipo());
     $numfilas = count($alcoholes);
     $alc = new Alcohol();
     $i = 0;
     $select = "<select>";
     foreach ($alcoholes as $alc) {
         $select = $select . "<option value=" . $alc['alcId'] . " grado=" . $alc['alcGrado'] . ">" . $alc['alcNombre'] . "</option>";
     }
     $select = $select . "</select>";
     $response = new Response($select);
     return $response;
 }
 public function mantCuotaEdicionAction($entId, $cuoTipo)
 {
     $request = $this->getRequest();
     $cuota = new Cuota();
     $operacion = $request->get('oper');
     $user = $this->get('security.context')->getToken()->getUser();
     $cuotaDao = new CuotaDao($this->getDoctrine());
     $alcoholDao = new AlcoholDao($this->getDoctrine());
     $entidadDao = new EntidadDao($this->getDoctrine());
     //$entId = $request->get('entId');
     $alcId = $request->get('alcId');
     $cuoId = $request->get('id');
     if ($operacion == 'edit' || $operacion == 'del') {
         $cuota = $cuotaDao->getCuota($cuoId);
     } else {
         $cuoId = null;
     }
     if ($operacion != 'del') {
         //$cuoTipo= $request->get('cuoTipo');
         $cuoNombreEsp = trim($request->get('cuoNombreEsp'));
         $cuoGrado = $request->get('cuoGrado');
         $cuoLitros = $request->get('cuoLitros');
         $t = new \DateTime();
         $cuoYear = $t->format('Y') + 0;
         $cuota->setCuoYear($cuoYear);
         $cuota->setCuoTipo($cuoTipo);
         $cuota->setCuoNombreEsp($cuoNombreEsp);
         $cuota->setCuoGrado($cuoGrado);
         $cuota->setCuoLitros($cuoLitros);
         //Asociamos el objeto seleccionado en el formulario
         //$cuota->setAlcohol($alcoholDao->getAlcohol($alcId));
         //$alcohol = new Alcohol();
         $alcohol = $alcoholDao->getAlcohol($alcId);
         $alcohol->getCuotas()->add($cuota);
         $entidad = $entidadDao->getEntidad($entId);
         $entidad->getCuotas()->add($cuota);
         $cuota->setEntidad($entidad);
         $cuota->setAlcohol($alcohol);
         /*
                     $validator = $this->get('validator');
                     $errors = $validator->validate($cuota);
                     
                     if (count($errors) > 0) {
                         $msg = '';
                         foreach($errors as $error){
                             //var_dump($error->message);
                             $msg = $msg.$error->getMessage();
                         } 
                         return new Response("{sc:false,msg:'".$msg."' }");
                         //json_encode($errors)
                     }/**/
         $cantidad = $cuotaDao->existeCuota($cuoId, $entId, $alcId, $cuoYear, $cuoTipo, $cuoGrado, $cuoNombreEsp);
         if ($cantidad > 0) {
             $resp = new Response('{"status":false,"msg":"Registro duplicado, ya existe un registro con estos datos"}');
             //$resp->setStatusCode(418, 'Errores duplicados');//json_encode($form->getErrors())
             return $resp;
         }
     }
     if ($cuota->getEntidad() && $cuota->getAlcohol()) {
         if ($operacion == 'edit') {
             //#### Auditoría
             $cuota->setAuditUserUpd($user->getUsername());
             $cuota->setAuditDateUpd(new \DateTime());
             $cuotaDao->editCuota($cuota);
         } else {
             if ($operacion == 'del') {
                 //#### Auditoría
                 $cuota->setAuditUserUpd($user->getUsername());
                 $cuota->setAuditDateUpd(new \DateTime());
                 $cuota->setAuditDeleted(true);
                 $cuotaDao->editCuota($cuota);
             } else {
                 if ($operacion == 'add') {
                     $cuota->setAuditUserIns($user->getUsername());
                     $cuota->setAuditDateIns(new \DateTime());
                     $cuotaDao->editCuota($cuota);
                 }
             }
         }
         return new Response('{"status":true,"msg":""}');
     } else {
         return new Response('{"status":false,"msg":"No se encuentra la Entidad o Nombre Alcohol"}');
     }
 }
 /**
  * 
  * @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;
 }
 public function mantInventarioDetEdicionAction(Request $request)
 {
     $inventarioDetTmp = new InventarioDet();
     $inventarioDet = new InventarioDet();
     $form = $this->createForm(new InventarioDetType($this->getDoctrine()), $inventarioDetTmp);
     $form->bindRequest($request);
     $inventarioDao = new InventarioDao($this->getDoctrine());
     $inventarioDetDao = new InventarioDetDao($this->getDoctrine());
     $alcoholDao = new AlcoholDao($this->getDoctrine());
     $user = $this->get('security.context')->getToken()->getUser();
     $errores = $inventarioDetTmp->isValid();
     $eliminar = $request->get("eliminar");
     if ($eliminar === 'true') {
         $inventarioDet = $inventarioDetDao->getInventarioDet($inventarioDetTmp->getInvDetId());
         return $this->eliminarAction($inventarioDet);
     }
     if ($form->isValid() && count($errores) == 0) {
         if ($inventarioDetTmp->getInvDetId()) {
             $inventarioDet = $inventarioDetDao->getInventarioDet($inventarioDetTmp->getInvDetId());
             //Primero es de revisar si ha cambiado la información de la tabla encabezado.
             if ($inventarioDetTmp->getAlcId() != $inventarioDet->getAlcId() || $inventarioDetTmp->getInvGrado() != $inventarioDet->getInvGrado() || $inventarioDetTmp->getInvNombreEsp() != $inventarioDet->getInvNombreEsp()) {
                 //Si alguno de los campos es diferente, se debe actualizar los registros encabezados antiguos
                 $inventarioOld = $inventarioDao->findInventario($user->getEntidad()->getEntId(), $inventarioDet->getAlcId(), $inventarioDet->getInvGrado(), $inventarioDet->getInvNombreEsp());
                 $invLitros = $inventarioOld->getInvLitros();
                 $inventarioOld->setInvLitros($invLitros - $inventarioDet->getInvDetLitros());
                 $inventarioOld->setAuditUserUpd($user->getUsername());
                 $inventarioOld->setAuditDateUpd(new \DateTime());
                 //$inventarioDao->editInventario($inventarioOld);
                 //Buscamos si existe el NUEVO encabezado en la tabla de "Inventario"
                 $inventario = $inventarioDao->findInventario($user->getEntidad()->getEntId(), $inventarioDetTmp->getAlcId(), $inventarioDetTmp->getInvGrado(), $inventarioDetTmp->getInvNombreEsp());
                 if ($inventario != null) {
                     $invLitros = $inventario->getInvLitros();
                     $inventario->setInvLitros($invLitros + $inventarioDetTmp->getInvDetLitros());
                     $inventario->setAuditUserUpd($user->getUsername());
                     $inventario->setAuditDateUpd(new \DateTime());
                     $inventarioDet->setInventario($inventario);
                 } else {
                     //#### Encabezado de Inventario
                     $inventarioDet->setInventario(new Inventario());
                     $inventarioDet->getInventario()->setEntidad($user->getEntidad());
                     $inventarioDet->getInventario()->setAlcohol($alcoholDao->getAlcohol($inventarioDetTmp->getAlcId()));
                     $inventarioDet->getInventario()->setInvLitros($inventarioDetTmp->getInvDetLitros());
                     $inventarioDet->getInventario()->setAuditUserIns($user->getUsername());
                     $inventarioDet->getInventario()->setAuditDateIns(new \DateTime());
                     $inventarioDet->getInventario()->setInvGrado($inventarioDetTmp->getInvGrado());
                     $inventarioDet->getInventario()->setInvNombreEsp($inventarioDetTmp->getInvNombreEsp());
                 }
                 //## Detalle de inventario
                 $inventarioDet->getInventario()->addInventarioDet($inventarioDet);
                 $inventarioDet->setInvDetFecha(new \DateTime());
             } else {
                 //Si el encabezado no cambia
                 $invLitros = $inventarioDet->getInventario()->getInvLitros();
                 $inventarioDet->getInventario()->setInvLitros($invLitros + $inventarioDetTmp->getInvDetLitros() - $inventarioDet->getInvDetLitros());
                 $inventarioDet->getInventario()->setAuditUserUpd($user->getUsername());
                 $inventarioDet->getInventario()->setAuditDateUpd(new \DateTime());
             }
             //#### Auditoría
             $inventarioDet->setAuditUserUpd($user->getUsername());
             $inventarioDet->setAuditDateUpd(new \DateTime());
         } else {
             //Buscamos si el encabezado en la tabla de "Inventario" existe
             $inventario = $inventarioDao->findInventario($user->getEntidad()->getEntId(), $inventarioDetTmp->getAlcId(), $inventarioDetTmp->getInvGrado(), $inventarioDetTmp->getInvNombreEsp());
             if ($inventario != null) {
                 $invLitros = $inventario->getInvLitros();
                 $inventario->setInvLitros($invLitros + $inventarioDetTmp->getInvDetLitros());
                 $inventario->setAuditUserUpd($user->getUsername());
                 $inventario->setAuditDateUpd(new \DateTime());
                 $inventarioDet->setInventario($inventario);
             } else {
                 //#### Encabezado de Inventario
                 $inventarioDet->setInventario(new Inventario());
                 $inventarioDet->getInventario()->setEntidad($user->getEntidad());
                 $inventarioDet->getInventario()->setAlcohol($alcoholDao->getAlcohol($inventarioDetTmp->getAlcId()));
                 $inventarioDet->getInventario()->setInvLitros($inventarioDetTmp->getInvDetLitros());
                 $inventarioDet->getInventario()->setAuditUserIns($user->getUsername());
                 $inventarioDet->getInventario()->setAuditDateIns(new \DateTime());
                 $inventarioDet->getInventario()->setInvGrado($inventarioDetTmp->getInvGrado());
                 $inventarioDet->getInventario()->setInvNombreEsp($inventarioDetTmp->getInvNombreEsp());
             }
             //## Detalle de inventario
             $inventarioDet->getInventario()->addInventarioDet($inventarioDet);
             $inventarioDet->setInvDetFecha(new \DateTime());
             //#### Auditoría
             $inventarioDet->setAuditUserIns($user->getUsername());
             $inventarioDet->setAuditDateIns(new \DateTime());
         }
         //##################################################################################################
         $form = $this->createForm(new InventarioDetType($this->getDoctrine()), $inventarioDet);
         $form->bindRequest($request);
         $inventarioDetDao->editInventarioDet($inventarioDet);
         $this->get('session')->setFlash('notice', 'Los datos se han guardado con éxito!!!');
         return $this->redirect($this->generateUrl('MinSalSCAProcesosBundle_mantInventariosDet'));
     } else {
         $listaErrores = '';
         foreach ($errores as $error) {
             $listaErrores = $listaErrores . $error;
         }
         if ($listaErrores != '') {
             $this->get('session')->setFlash('notice', $listaErrores);
         } else {
             $this->get('session')->setFlash('notice', '**** ERROR **** Existen errores con el formulario, por favor revise los valores ingresados');
         }
         $opciones = $this->getRequest()->getSession()->get('opciones');
         return $this->render('MinSalSCAProcesosBundle:InventarioDet:showInventarioDet.html.twig', array('opciones' => $opciones, 'form' => $form->createView(), 'invDetId' => $inventarioDet->getInvDetId(), 'entNombComercial' => $user->getEntidad()->getEntNombComercial()));
     }
 }