public function mantListadoMHEdicionRowAction()
 {
     $request = $this->getRequest();
     $mhId = $request->get('id');
     //aunque tenga ldnm_id siempre tomara lo que retornara del jqgrid id
     $mhYear = $request->get('mhYear');
     $mhNIT = $request->get('mhNIT');
     $mhNRC = $request->get('mhNRC');
     $mhTipoPersona = $request->get('mhTipoPersona');
     $mhNombres = $request->get('mhNombres');
     $mhApellidos = $request->get('mhApellidos');
     $mhRazon = $request->get('mhRazon');
     $operacion = $request->get('oper');
     $listadoMH = new ListadoMH();
     $listadoMHDao = new ListadoMHDao($this->getDoctrine());
     $user = $this->get('security.context')->getToken()->getUser();
     if ($operacion == 'edit' || $operacion == 'del') {
         $listadoMH = $listadoMHDao->getRegMH($mhId);
     } else {
         $mhId = null;
         $mhYear = date("Y", strtotime("+1 month"));
     }
     if ($operacion != 'del') {
         $listadoMH->setMhNIT($mhNIT);
         $listadoMH->setMhNRC($mhNRC);
         $listadoMH->setMhYear($mhYear);
         $listadoMH->setMhTipoPersona($mhTipoPersona);
         $listadoMH->setMhNombres($mhNombres);
         $listadoMH->setMhApellidos($mhApellidos);
         $listadoMH->setMhRazon($mhRazon);
         $cantidad = $listadoMHDao->existeReg($mhId, $mhYear, $mhNIT, $mhNRC);
         if ($cantidad > 0) {
             $resp = new Response('{"status":false,"msg":"Registro duplicado, ya existe(n) ' . $cantidad . ' registro(s) con estos datos de NIT o NRC."}');
             return $resp;
         }
     }
     if ($operacion == 'edit') {
         //#### Auditoría
         $listadoMH->setAuditUserUpd($user->getUsername());
         $listadoMH->setAuditDateUpd(new \DateTime());
         $listadoMHDao->editRegMH($listadoMH);
     } else {
         if ($operacion == 'del') {
             //#### Auditoría
             $listadoMH->setAuditUserUpd($user->getUsername());
             $listadoMH->setAuditDateUpd(new \DateTime());
             $listadoMHDao->deleteRegMH($listadoMH);
         } else {
             if ($operacion == 'add') {
                 $listadoMH->setAuditUserIns($user->getUsername());
                 $listadoMH->setAuditDateIns(new \DateTime());
                 $listadoMHDao->editRegMH($listadoMH);
             }
         }
     }
     return new Response('{"status":true,"msg":""}');
 }
 public function mantEntidadEdicionAction(Request $request)
 {
     $autorizadoDNM = null;
     $autorizadoDNMText = null;
     $entidadTmp = new Entidad();
     $form = $this->createForm(new EntidadType(), $entidadTmp);
     $form->bindRequest($request);
     $entidad = new Entidad();
     $entidadDao = new EntidadDao($this->getDoctrine());
     $listadoDNMDao = new ListadoDNMDao($this->getDoctrine());
     $listadoMHDao = new ListadoMHDao($this->getDoctrine());
     $user = $this->get('security.context')->getToken()->getUser();
     $errores = null;
     //Validaciones de NIT de Representante y Empresa
     $tmpEntidad = $entidadDao->getRepresentanteByNIT($entidadTmp->getEntRepNit(), $entidadTmp->getEntId());
     if ($tmpEntidad != null) {
         $errores = 'ERROR: El NIT del representante "' . $entidadTmp->getEntRepNit() . '" ya existe como representante de la empresa con nombre comercial "' . $tmpEntidad->getEntNombComercial() . '".';
     }
     $tmpEntidad = $entidadDao->getRepresentanteByNIT($entidadTmp->getEntNit(), $entidadTmp->getEntId());
     if ($tmpEntidad != null) {
         $errores = 'ERROR: El NIT de la empresa "' . $entidadTmp->getEntNit() . '" ya existe como representante de la empresa con nombre comercial "' . $tmpEntidad->getEntNombComercial() . '"';
     }
     $tmpEntidad = $entidadDao->getEntidadByNIT($entidadTmp->getEntRepNit(), $entidadTmp->getEntId());
     if ($tmpEntidad != null) {
         $errores = 'ERROR: El NIT del representante "' . $entidadTmp->getEntRepNit() . '" ya existe como NIT de la empresa con nombre comercial "' . $tmpEntidad->getEntNombComercial() . '".';
     }
     /*
             $tmpEntidad = $entidadDao->getEntidadByNIT($entidadTmp->getEntNit(), $entidadTmp->getEntId());
             if($tmpEntidad != null){
                 $errores = 'ERROR: El NIT de la empresa "'.$entidadTmp->getEntNit().'" ya existe como representante de la empresa con nombre comercial "'.$tmpEntidad->getEntNombComercial().'"';
             }/**/
     //Validacion para verificar que el NIT/NRC se encuentran registrados en el listado de MH
     $tmpEntidad = $listadoMHDao->getEntidadByNITNRC($entidadTmp->getEntNit(), $entidadTmp->getEntNrc(), $entidadTmp->getEntTipoPersona());
     if ($tmpEntidad === false) {
         $errores = 'ERROR: La combinación Tipo Persona-NIT-NRC de la empresa no existe en el listado del Ministerio de Hacienda';
     }
     /**********************/
     if ($entidadTmp->getEntId()) {
         $entidad = $entidadDao->getEntidad($entidadTmp->getEntId());
         //#### Auditoría
         $entidad->setAuditUserUpd($user->getUsername());
         $entidad->setAuditDateUpd(new \DateTime());
         //## Mensaje de validacion de DNM
         $year = new \DateTime();
         $autorizadoDNM = $listadoDNMDao->estaAutorizado($year->format('Y') + 0, $entidad->getEntNrc(), $entidad->getEntNit());
         if (!$autorizadoDNM) {
             $autorizadoDNMText = ListadoDNMDao::$MSG_ERROR_DNM_NOAUTH;
         }
     } else {
         //#### Auditoría
         $entidad->setAuditUserIns($user->getUsername());
         $entidad->setAuditDateIns(new \DateTime());
     }
     $form = $this->createForm(new EntidadType(), $entidad);
     $form->bindRequest($request);
     $errores = $this->validarFormulario($entidad);
     if ($form->isValid() && $errores == null) {
         $entidad->setEntYear($entidad->getEntVenc()->format("Y"));
         $entidad->setEntRegMinsal(strtoupper($entidad->getEntRegMinsal()));
         $entidad->setEntRegDgii(strtoupper($entidad->getEntRegDgii()));
         $entidad->setEntGiro(strtoupper($entidad->getEntGiro()));
         $entidad->setEntEmail(strtoupper($entidad->getEntEmail()));
         $entidad->setEntNombre(strtoupper($entidad->getEntNombre()));
         $entidad->setEntNombComercial(strtoupper($entidad->getEntNombComercial()));
         $entidad->setEntRepNombre(strtoupper($entidad->getEntRepNombre()));
         $entidad->setEntDireccionMatriz(strtoupper($entidad->getEntDireccionMatriz()));
         $entidad->setEntUsosAlcohol(strtoupper($entidad->getEntUsosAlcohol()));
         $entidad->setEntComentario(strtoupper($entidad->getEntComentario()));
         //Eliminar cuotas de importación y compras locales
         if (!$entidad->getEntImportador() || !$entidad->getEntComprador()) {
             //Se realiza una busqueda de todas las cuotas que no cumplen con el nuevo perfil (Importador, Productor, Comprador Local)
             //Luego se dejan eliminadas logicamente en la BD
             foreach ($entidad->getCuotas() as $cuota) {
                 if (($cuota->getCuoTipo() == 'I' && !$entidad->getEntImportador() || $cuota->getCuoTipo() == 'L' && !$entidad->getEntComprador()) && $cuota->getAuditDeleted() == false) {
                     $cuota->setAuditDeleted(true);
                     $cuota->setAuditUserUpd($user->getUsername());
                     $cuota->setAuditDateUpd(new \DateTime());
                 }
             }
         }
         //Se verifican todos los usuarios asociados a la Entidad/Empresa para que se actualicen los roles
         //de acuerdo a las actividades de la empresa y la de cada uno de los usuarios
         $i = 0;
         $usuarios = array();
         foreach ($entidad->getUsers() as $usuario) {
             $rolDao = new RolDao($this->getDoctrine());
             $usuario->setRols($rolDao->getRolesEspecificos($entidad->getEntImportador(), $entidad->getEntProductor(), $entidad->getEntComprador(), $entidad->getEntCompVend(), $usuario->getUserTipo(), $usuario->getUserInterno(), $usuario->getUserInternoTipo()));
             $usuarios[$i] = $usuario;
             $i += 1;
         }
         $entidad->setUsers($usuarios);
         $entidadDao->editEntidad($entidad);
         if ($entidadTmp->getEntId()) {
             $this->get('session')->setFlash('notice', 'Los datos se han guardado con éxito!!!');
             return $this->redirect($this->generateUrl('MinSalSCAAdminBundle_mantCargarEntidad', array('entId' => $entidad->getEntId())));
         } else {
             $this->get('session')->setFlash('notice', 'Los datos se han guardado con éxito!!!');
             $opciones = $this->getRequest()->getSession()->get('opciones');
             $formReg = $this->container->get('fos_user.registration.form');
             //$form = $this->createForm(new RegistrationFormType(), $usuario);
             $usuario = new User();
             if ($entidad->getEntTipoPersona() === 'N') {
                 $usuario->setEmail($entidad->getEntEmail());
                 $usuario->setUserNit($entidad->getEntNit());
                 $usuario->setUserTelefono($entidad->getEntTel());
                 $usuario->setUserPrimerNombre($entidad->getEntNombre());
                 $usuario->setUserApellidos($entidad->getEntNombre());
                 $usuario->setUserCargo('Representante');
             } else {
                 //$usuario->setEmail($entidad->getEntEmail());
                 if ($entidad->getEntTipoDoc() == 'D') {
                     $usuario->setUserDui($entidad->getEntRepDoc());
                 }
                 $usuario->setUserNit($entidad->getEntRepNit());
                 $usuario->setUserTelefono($entidad->getEntTel());
                 $usuario->setUserPrimerNombre($entidad->getEntRepNombre());
                 $usuario->setUserApellidos($entidad->getEntRepNombre());
                 $usuario->setUserCargo('Representante');
             }
             $formReg->setData($usuario);
             return $this->render('MinSalSCAUsersBundle:Registration:register.html.twig', array('opciones' => $opciones, 'form' => $formReg->createView(), 'entId' => $entidad->getEntId(), 'entHabilitado' => $entidad->getEntHabilitado(), 'autorizadoDNM' => $autorizadoDNM, 'autorizadoDNMText' => $autorizadoDNMText, 'userInterno' => 'false', 'entNombre' => $entidad->getEntNombre()));
         }
     } else {
         if ($errores == null) {
             $errores = '**** ERROR **** Existen errores con el formulario, por favor revise los valores ingresados';
         }
         $this->get('session')->setFlash('notice', $errores);
         $opciones = $this->getRequest()->getSession()->get('opciones');
         return $this->render('MinSalSCAAdminBundle:Entidad:showEntidad.html.twig', array('opciones' => $opciones, 'form' => $form->createView(), 'entId' => $entidad->getEntId(), 'entHabilitado' => $entidad->getEntHabilitado(), 'autorizadoDNM' => $autorizadoDNM, 'autorizadoDNMText' => $autorizadoDNMText));
     }
 }