/** * 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); }
/** * 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); }