Пример #1
0
 /**
  * Muestra un pequeño formulario para modificar un dato.
  *
  * @Route("modificardato/")
  * @Template()
  */
 public function modificardatoAction(Request $request)
 {
     $id = $this->ObtenerVariable($request, 'id');
     $em = $this->getEm();
     if ($id) {
         $entity = $this->ObtenerEntidadPorId($id);
     }
     if (!$entity) {
         throw $this->createNotFoundException('No se puede encontrar la entidad.');
     }
     $CategoriaAnterior = $entity->getCategoria();
     $campoNombre = $this->ObtenerVariable($request, 'campo_nombre');
     $FormEditarBuilder = $this->createFormBuilder($entity);
     $UsuarioConectado = $this->get('security.token_storage')->getToken()->getUser();
     $NuevaNovedad = new Novedad();
     $NuevaNovedad->setPrivada(1);
     $NuevaNovedad->setRequerimiento($entity);
     $NuevaNovedad->setUsuario($UsuarioConectado);
     switch ($campoNombre) {
         case 'Categoria':
             $FormEditarBuilder->add($campoNombre, 'entity', array('label' => 'Categoría', 'placeholder' => 'Sin categoría', 'attr' => array('class' => 'tapir-input-320'), 'class' => 'YacareRequerimientosBundle:Categoria', 'required' => false));
             $NuevaNovedad->setAutomatica(1);
             break;
     }
     $FormEditar = $FormEditarBuilder->getForm();
     $FormEditar->handleRequest($request);
     if ($FormEditar->isValid()) {
         switch ($campoNombre) {
             case 'Categoria':
                 if ($entity->getCategoria() != $CategoriaAnterior) {
                     if ($entity->getCategoria()) {
                         if (!$entity->getEncargado() && $entity->getCategoria()->getEncargado()) {
                             $entity->setEncargado($entity->getCategoria()->getEncargado());
                             $NuevaNovedad->setNotas('El requerimiento fue movido a la categoría ' . $entity->getCategoria() . '. El encargado es ' . $entity->getEncargado());
                         } else {
                             $NuevaNovedad->setNotas('El requerimiento fue movido a la categoría ' . $entity->getCategoria() . '.');
                         }
                     } else {
                         $NuevaNovedad->setNotas('El requerimiento fue movido a "Sin categoría".');
                     }
                     $this->InformarNovedad($request, $NuevaNovedad);
                     $em->persist($NuevaNovedad);
                     $em->persist($entity);
                     $em->flush();
                 }
                 break;
         }
         return $this->redirect($this->generateUrl($this->obtenerRutaBase('ver'), $this->ArrastrarVariables($request, array('id' => $id), false)));
     } else {
         $children = $FormEditar->all();
         foreach ($children as $child) {
             (string) $child->getErrors();
         }
         $Errores = $FormEditar->getErrors(true, true);
     }
     if ($Errores) {
         foreach ($Errores as $error) {
             $this->get('session')->getFlashBag()->add('danger', $error->getMessage());
         }
     } else {
         $Errores = null;
     }
     $res = $this->ConstruirResultado(new \Tapir\AbmBundle\Helper\Resultados\ResultadoEditarGuardarAction($this), $request);
     $res->Entidad = $entity;
     $res->FormularioEditar = $FormEditar->createView();
     $res->Errores = $Errores;
     return array('res' => $res, 'campo_nombre' => $campoNombre);
 }
Пример #2
0
 /**
  * Asginar un requerimiento a un encargado.
  *
  * @Route("asignar/")
  * @Template()
  */
 public function asignarAction(Request $request)
 {
     $id = $this->ObtenerVariable($request, 'id');
     $em = $this->getEm();
     if ($id) {
         $entity = $this->ObtenerEntidadPorId($id);
     }
     if (!$entity) {
         throw $this->createNotFoundException('No se puede encontrar la entidad.');
     }
     $UsuarioConectado = $this->get('security.token_storage')->getToken()->getUser();
     $NuevaNovedad = new \Yacare\RequerimientosBundle\Entity\Novedad();
     $NuevaNovedad->setPrivada(1);
     $NuevaNovedad->setRequerimiento($entity);
     $NuevaNovedad->setUsuario($UsuarioConectado);
     $FormEditar = $this->createForm('Yacare\\RequerimientosBundle\\Form\\AsignarType', $NuevaNovedad);
     $FormEditar->handleRequest($request);
     if ($FormEditar->isValid()) {
         // Asigno el nuevo encargado.
         $entity->setEncargado($NuevaNovedad->getUsuario());
         if ($NuevaNovedad->getNotas()) {
             $NuevaNovedad->setAutomatica(0);
         } else {
             $NuevaNovedad->setAutomatica(1);
         }
         $NuevaNovedad->setNotas('El nuevo encargado es ' . $NuevaNovedad->getUsuario() . '. ' . $NuevaNovedad->getNotas());
         $NuevaNovedad->setUsuario($UsuarioConectado);
         $this->InformarNovedad($request, $NuevaNovedad);
         $em->persist($NuevaNovedad);
         $em->persist($entity);
         $em->flush();
         return $this->redirect($this->generateUrl($this->obtenerRutaBase('ver'), $this->ArrastrarVariables($request, array('id' => $id), false)));
     } else {
         $children = $FormEditar->all();
         foreach ($children as $child) {
             (string) $child->getErrors();
         }
         $Errores = $FormEditar->getErrors(true, true);
     }
     if ($Errores) {
         foreach ($Errores as $error) {
             $this->get('session')->getFlashBag()->add('danger', $error->getMessage());
         }
     } else {
         $Errores = null;
     }
     $res = $this->ConstruirResultado(new \Tapir\AbmBundle\Helper\Resultados\ResultadoEditarGuardarAction($this), $request);
     $res->AccionGuardar = 'asignar';
     $res->Entidad = $entity;
     $res->FormularioEditar = $FormEditar->createView();
     $res->FormularioEliminar = null;
     return array('res' => $res);
 }