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;
 }
 private function generarEmailSolLocalNotificacion(SolLocalDet $solLocalDet, Transicion $transicion)
 {
     $transicionDao = new TransicionDao($this->getDoctrine());
     $entidadDao = new EntidadDao($this->getDoctrine());
     $localDetId = $solLocalDet->getLocalDetId();
     $etpNombre = $transicion->getEtpFin()->getEtpNombre();
     $entNombComercial = $solLocalDet->getSolLocal()->getEntidad()->getEntNombComercial();
     $traId = $transicion->getTraId();
     $entId = $solLocalDet->getSolLocal()->getEntidad()->getEntId();
     $url = urlencode($this->generateUrl('MinSalSCAProcesosBundle_mantCargarSolLocal', array('localDetId' => $localDetId), true));
     $url = $this->generateUrl('MinSalSCABundle_homepage', array(), true) . '?url=' . $url;
     $subject = 'Cancelación automática de Registro Compra Local #' . $localDetId;
     $emails = $transicionDao->getEmailsXTransicion($entId, $traId);
     if ($transicion->getTraNotificaEmpresa()) {
         $emailsXEmpresa = $entidadDao->getEmailsXEmpresa($entId);
         foreach ($emailsXEmpresa as $reg) {
             if (!in_array($reg, $emails)) {
                 $emails[] = $reg;
             }
         }
     }
     foreach ($emails as $email) {
         $message = \Swift_Message::newInstance($subject)->setFrom(array($this->container->getParameter('contact_email') => 'SCA'))->setTo($email)->setBody($this->renderView('MinSalSCAProcesosBundle:SolLocalDet\\Email:SolicitudExpirada.html.twig', array('solLocalId' => $localDetId, 'entNombComercial' => $entNombComercial, 'etpNombre' => $etpNombre, 'url' => $url)), 'text/html')->addPart($this->renderView('MinSalSCAProcesosBundle:SolLocalDet\\Email:SolicitudExpirada.txt.twig', array('solLocalId' => $localDetId, 'entNombComercial' => $entNombComercial, 'etpNombre' => $etpNombre, 'url' => $url)), 'text/plain');
         $this->get('mailer')->send($message);
     }
 }
 public function mantCargarEntidadAction($entId)
 {
     $opciones = $this->getRequest()->getSession()->get('opciones');
     $entidadDao = new EntidadDao($this->getDoctrine());
     $listadoDNMDao = new ListadoDNMDao($this->getDoctrine());
     $entidad = $entidadDao->getEntidad($entId);
     $autorizadoDNM = null;
     $autorizadoDNMText = null;
     $autorizadoGuardar = false;
     $user = $this->get('security.context')->getToken()->getUser();
     if ($user->getUserInternoTipo() == User::$MINSAL || $user->getUserTipo() == null) {
         $autorizadoGuardar = true;
     }
     if (!$entidad) {
         $entidad = new Entidad();
     } else {
         $year = new \DateTime();
         $autorizadoDNM = $listadoDNMDao->estaAutorizado($year->format('Y') + 0, $entidad->getEntNrc(), $entidad->getEntNit());
         if (!$autorizadoDNM) {
             $autorizadoDNMText = ListadoDNMDao::$MSG_ERROR_DNM_NOAUTH;
         }
     }
     $form = $this->createForm(new EntidadType(), $entidad);
     return $this->render('MinSalSCAAdminBundle:Entidad:showEntidad.html.twig', array('form' => $form->createView(), 'opciones' => $opciones, 'entId' => $entId, 'entHabilitado' => $entidad->getEntHabilitado(), 'autorizadoDNM' => $autorizadoDNM, 'autorizadoDNMText' => $autorizadoDNMText, 'autorizadoGuardar' => $autorizadoGuardar));
 }
 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"}');
     }
 }
 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));
 }