public function mantSolImportacionEdicionAction(Request $request)
 {
     $solImportacionDetTmp = new SolImportacionDet();
     $solImportacionDet = new SolImportacionDet();
     $user = $this->get('security.context')->getToken()->getUser();
     $form = $this->createForm(new SolImportacionDetType($this->getDoctrine()), $solImportacionDetTmp);
     $form->bindRequest($request);
     $cuotaDao = new CuotaDao($this->getDoctrine());
     $solImportacionDetTmp->setCuota($cuotaDao->getCuota($request->get('cuota')));
     $solImportacionDao = new SolImportacionDao($this->getDoctrine());
     $solImportacionDetDao = new SolImportacionDetDao($this->getDoctrine());
     $transicionDao = new TransicionDao($this->getDoctrine());
     $transicion = null;
     $errores = $solImportacionDetTmp->isValid($this->getDoctrine(), $user->getEntidad());
     $entidad = $user->getEntidad();
     $year = new \DateTime();
     $listadoDNMDao = new ListadoDNMDao($this->getDoctrine());
     $autorizadoDNM = $listadoDNMDao->estaAutorizado($year->format('Y') + 0, $entidad->getEntNrc(), $entidad->getEntNit());
     if ($form->isValid() && count($errores) == 0 && $autorizadoDNM == true && $entidad->getEntHabilitado() == true) {
         if ($solImportacionDetTmp->getImpDetId()) {
             $solImportacionDet = $solImportacionDao->getSolImportacionDet($solImportacionDetTmp->getImpDetId());
             //#### Auditoría
             //$solImportacionDet->setAuditUserUpd($user->getUsername());
             //$solImportacionDet->setAuditDateUpd(new \DateTime());
         } else {
             //#### Encabezado de Solicitud
             $transicion = $transicionDao->getTransicionInicial(Flujo::$IMPORTACION);
             $solImportacion = new SolImportacion();
             $solImportacionDet->setSolImportacion($solImportacion);
             $solImportacionDet->getSolImportacion()->setEntidad($user->getEntidad());
             $solImportacionDet->getSolImportacion()->setTransicion($transicion);
             $solImportacionDet->getSolImportacion()->setSolImpFecha(new \DateTime());
             $solImportacionDet->getSolImportacion()->setAuditUserIns($user->getUsername());
             $solImportacionDet->getSolImportacion()->setAuditDateIns(new \DateTime());
             //$solImportacionDao->addSolImportacion($solImportacion);
             //## Detalle de solicitud
             //$solImportacionDet->getSolImportacion()->addSolImportacionDet($solImportacionDet);
             $solImportacion->addSolImportacionDet($solImportacionDet);
             $solImportacionDet->setCuota($cuotaDao->getCuota($request->get('cuota')));
             //#### Auditoría
             //$solImportacionDet->setAuditUserIns($user->getUsername());
             //$solImportacionDet->setAuditDateIns(new \DateTime());
         }
         //##################################################################################################
         $form = $this->createForm(new SolImportacionDetType($this->getDoctrine()), $solImportacionDet);
         $form->bindRequest($request);
         $solImportacionDetDao->addSolImportacionDet($solImportacionDet);
         $this->generarEmailEtapaNotificacion($solImportacionDet, $transicion);
         $this->get('session')->setFlash('notice', 'Los datos se han guardado con éxito!!!');
         return $this->redirect($this->generateUrl('MinSalSCAProcesosBundle_mantSolImportacionIngreso'));
     } else {
         $autorizadoDNMText = null;
         if (!$autorizadoDNM) {
             $autorizadoDNMText = ListadoDNMDao::$MSG_ERROR_DNM_NOAUTH;
         }
         if (!$entidad->getEntHabilitado()) {
             $this->get('session')->setFlash('notice', EntidadDao::$NO_HABILITADA . ' debido a: ' . $entidad->getEntComentario());
         } 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:SolImportacionDet:ingresarSolImportacionDet.html.twig', array('opciones' => $opciones, 'form' => $form->createView(), 'entNombComercial' => $user->getEntidad()->getEntNombComercial(), 'comentario' => null, 'transiciones' => null, 'autorizadoDNM' => $autorizadoDNM, 'autorizadoDNMText' => $autorizadoDNMText, 'entHabilitado' => $entidad->getEntHabilitado()));
     }
 }
 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"}');
     }
 }
 public function mantSolLocalEdicionAction(Request $request)
 {
     $solLocalDetTmp = new SolLocalDet();
     $solLocalDet = new SolLocalDet();
     $user = $this->get('security.context')->getToken()->getUser();
     $form = $this->createForm(new SolLocalDetType($this->getDoctrine()), $solLocalDetTmp);
     $form->bindRequest($request);
     $cuotaDao = new CuotaDao($this->getDoctrine());
     $solLocalDetTmp->setCuota($cuotaDao->getCuota($request->get('cuota')));
     $solLocalDao = new SolLocalDao($this->getDoctrine());
     $solLocalDetDao = new SolLocalDetDao($this->getDoctrine());
     $transicionDao = new TransicionDao($this->getDoctrine());
     $inventarioDao = new InventarioDao($this->getDoctrine());
     $entidadDao = new EntidadDao($this->getDoctrine());
     $transicion = null;
     $productor = $request->get('productor');
     $productor = $productor === 'true' || $productor === true;
     $invId = $request->get('invId');
     $errores = $solLocalDetTmp->isValid($this->getDoctrine(), $user->getEntidad(), $invId, $productor);
     //Validacion DNM y Habilitado de Empresa que ingresa solicitud
     $entidad = $user->getEntidad();
     $year = new \DateTime();
     $listadoDNMDao = new ListadoDNMDao($this->getDoctrine());
     $autorizadoDNM = $listadoDNMDao->estaAutorizado($year->format('Y') + 0, $entidad->getEntNrc(), $entidad->getEntNit());
     //###### Validacion de empresa seleccionada como proveedor
     if ($productor) {
         $provEntidad = $entidadDao->getEntidad($request->get('prodEntId'));
     } else {
         $provEntidad = $inventarioDao->getInventario($invId)->getEntidad();
     }
     $autorizadoDNMProv = true;
     $autorizadoDNMProvText = '';
     if ($provEntidad == null) {
         $provEntidad = true;
     } else {
         $autorizadoDNMProv = $listadoDNMDao->estaAutorizado($year->format('Y') + 0, $provEntidad->getEntNrc(), $provEntidad->getEntNit());
     }
     if ($form->isValid() && count($errores) == 0 && $autorizadoDNM == true && $entidad->getEntHabilitado() == true && $autorizadoDNMProv == true && $provEntidad->getEntHabilitado() == true) {
         if ($solLocalDetTmp->getLocalDetId()) {
             $solLocalDet = $solLocalDao->getSolLocalDet($solLocalDetTmp->getLocalDetId());
         } else {
             //#### Encabezado de Solicitud
             $transicion = $transicionDao->getTransicionInicial(Flujo::$LOCAL);
             $solLocal = new SolLocal();
             $solLocalDet->setSolLocal($solLocal);
             $solLocalDet->getSolLocal()->setEntidad($user->getEntidad());
             $solLocalDet->getSolLocal()->setTransicion($transicion);
             $solLocalDet->getSolLocal()->setSolLocalFecha(new \DateTime());
             $solLocalDet->getSolLocal()->setAuditUserIns($user->getUsername());
             $solLocalDet->getSolLocal()->setAuditDateIns(new \DateTime());
             //## Detalle de solicitud
             $solLocal->addSolLocalDet($solLocalDet);
             $solLocalDet->setCuota($cuotaDao->getCuota($request->get('cuota')));
             if ($productor == 'true' || $productor == true) {
                 $inventario = new Inventario();
                 $inventario->setAlcohol($solLocalDet->getCuota()->getAlcohol());
                 $inventario->setInvGrado($solLocalDet->getCuota()->getAlcohol()->getAlcGrado());
                 $inventario->setInvNombreEsp($solLocalDet->getCuota()->getCuoNombreEsp());
                 $invId = $this->crearInvIdProductor($inventario, $provEntidad);
             }
             $inventario = $this->agregarInventarioProveedor(new SolLocalDet(), $invId, $solLocalDetTmp->getLocalDetLitros(), $solLocalDetTmp->getCuota()->getCuoGrado(), true, false);
             $inventario->setSolLocalDet($solLocalDet);
             $solLocalDet->addInventarioDet($inventario);
         }
         //##################################################################################################
         $form = $this->createForm(new SolLocalDetType($this->getDoctrine()), $solLocalDet);
         $form->bindRequest($request);
         $solLocalDetDao->addSolLocalDet($solLocalDet);
         $this->generarEmailEtapaNotificacion($solLocalDet, $transicion, $inventario->getInventario()->getEntidad()->getEntId());
         $this->get('session')->setFlash('notice', 'Los datos se han guardado con éxito!!!');
         return $this->redirect($this->generateUrl('MinSalSCAProcesosBundle_mantSolLocalIngreso'));
     } else {
         if (!$autorizadoDNMProv || !$provEntidad->getEntHabilitado()) {
             $autorizadoDNMProvText = 'Problema con el Proveedor ->';
             if (!$autorizadoDNMProv) {
                 $autorizadoDNMProvText = $autorizadoDNMProvText . ListadoDNMDao::$MSG_ERROR_DNM_NOAUTH;
             }
             if (!$provEntidad->getEntHabilitado()) {
                 $autorizadoDNMProvText = $autorizadoDNMProvText . EntidadDao::$NO_HABILITADA;
                 $autorizadoDNMProv = false;
             }
         }
         $autorizadoDNMText = null;
         if (!$autorizadoDNM) {
             $autorizadoDNMText = ListadoDNMDao::$MSG_ERROR_DNM_NOAUTH;
         }
         if (!$entidad->getEntHabilitado()) {
             $this->get('session')->setFlash('notice', EntidadDao::$NO_HABILITADA . ' debido a: ' . $entidad->getEntComentario());
         } 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:SolLocalDet:ingresarSolLocalDet.html.twig', array('opciones' => $opciones, 'form' => $form->createView(), 'entNombComercial' => $user->getEntidad()->getEntNombComercial(), 'comentario' => null, 'transiciones' => null, 'invId' => $invId, 'autorizadoDNM' => $autorizadoDNM, 'autorizadoDNMText' => $autorizadoDNMText, 'entHabilitado' => $entidad->getEntHabilitado(), 'autorizadoDNMProv' => $autorizadoDNMProv, 'autorizadoDNMProvText' => $autorizadoDNMProvText));
     }
 }