public function process($confirmation = false) { $user = $this->createUser(); $this->form->setData($user); if ('POST' === $this->request->getMethod()) { $this->form->bind($this->request); //var_dump($this->form->getErrorsAsString(10));die; if ($this->form->isValid()) { $tmp = $user->getId(); //Si es update if (empty($tmp)) { $user->setAuditUserIns($this->auditUser); $user->setAuditDateIns(new \DateTime()); $tmp = $this->entId; if (!empty($tmp)) { $entidadDao = new EntidadDao($this->container->get("doctrine")); $entidad = $entidadDao->getEntidad($this->entId); $user->setEntidad($entidad); } //Si es Insert } else { $userDao = new UserDao($this->container->get("doctrine")); //Se obtiene el registro de la BD $tmp = $userDao->getUserEspecifico($user->getId()); //Se le asigna al Formulario $this->form->setData($tmp); //Se realiza un merge con lo que se envio en el Request $this->form->bindRequest($this->request); $user = $tmp; $tmp->setAuditUserUpd($this->auditUser); $tmp->setAuditDateUpd(new \DateTime()); } $rolDao = new RolDao($this->container->get("doctrine")); //Se asignan roles dependiendo del usuario interno if ($this->userInterno == 'false') { $user->setRols($rolDao->getRolesEspecificos($user->getEntidad()->getEntImportador(), $user->getEntidad()->getEntProductor(), $user->getEntidad()->getEntComprador(), $user->getEntidad()->getEntCompVend(), $user->getUserTipo(), $user->getUserInterno(), $user->getUserInternoTipo())); } else { $user->setRols($rolDao->getRolesEspecificos(false, false, false, false, $user->getUserTipo(), $user->getUserInterno(), $user->getUserInternoTipo())); } //Hacer busqueda de los roles segun los campos de tipos y obtener el listado de objetos. $this->onSuccess($user, $confirmation); // do your custom logic here return true; } } return false; }
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)); } }
private function updateAction($request) { $opciones = $request->getSession()->get('opciones'); $userInterno = $request->get("userInterno"); $id = $request->get("fos_user_registration_form"); $auditUser = $this->container->get('security.context')->getToken()->getUser(); $confirmationEnabled = $this->container->getParameter('fos_user.registration.confirmation.enabled'); $entId = ''; $entNombre = ''; if ($userInterno == 'false') { $entId = $request->get("entId"); $entidadDao = new EntidadDao($this->container->get("doctrine")); //fos_user.user_manager $entNombre = $entidadDao->getEntidad($entId)->getEntNombre(); } $user = new User(); $userDao = new UserDao($this->container->get("doctrine")); $user = $userDao->getUserEspecifico($id['id']); $form = $this->container->get('fos_user.registration.form'); //$form = $this->createForm(new RegistrationFormType(), $usuario); $form->setData($user); $form->bindRequest($request); if ($form->isValid()) { $rolDao = new RolDao($this->container->get("doctrine")); //Se asignan roles dependiendo del usuario interno if ($userInterno == 'false') { $user->setRols($rolDao->getRolesEspecificos($user->getEntidad()->getEntImportador(), $user->getEntidad()->getEntProductor(), $user->getEntidad()->getEntComprador(), $user->getEntidad()->getEntCompVend(), $user->getUserTipo(), $user->getUserInterno(), $user->getUserInternoTipo())); } else { $user->setRols($rolDao->getRolesEspecificos(false, false, false, false, $user->getUserTipo(), $user->getUserInterno(), $user->getUserInternoTipo())); } $this->onSuccess($user, $confirmationEnabled); $user = $userDao->updateUsuario($user, $auditUser->getUsername()); $this->container->get('session')->setFlash('notice', '#### El usuario "' . $user->getUsername() . '" ha actualizado ####'); $route = 'MinSalSCAUsersBundle_mantMostrarUsuarios'; $url = $this->container->get('router')->generate($route, array('userInterno' => $userInterno, 'entId' => $entId, 'entNombre' => $entNombre, 'opciones' => $opciones)); return new RedirectResponse($url); } //FOSUserBundle:Registration:register.html return $this->container->get('templating')->renderResponse('MinSalSCAUsersBundle:Registration:register.html.' . $this->getEngine(), array('form' => $form->createView(), 'userInterno' => $userInterno, 'entId' => $entId, 'entNombre' => $entNombre, 'opciones' => $opciones)); }