/** * Cambia el estado del requerimiento y agrega una novedad informando el nuevo estado. * * @Route("cambiarestado/") * @Template() */ public function cambiarestadoAction(Request $request) { $id = $this->ObtenerVariable($request, 'id'); if ($id) { $entity = $this->ObtenerEntidadPorId($id); } $NuevoEstado = $this->ObtenerVariable($request, 'nuevoestado'); $em = $this->getEm(); $UsuarioConectado = $this->get('security.token_storage')->getToken()->getUser(); if (!is_string($UsuarioConectado)) { $NuevaNovedad = new \Yacare\RequerimientosBundle\Entity\Novedad(); $NuevaNovedad->setRequerimiento($entity); $NuevaNovedad->setUsuario($UsuarioConectado); $NuevaNovedad->setPrivada(0); $NuevaNovedad->setAutomatica(1); switch ($NuevoEstado) { case 0: // no break; break; case 10: if ($entity->getEstado() == 0) { $NuevaNovedad->setNotas("El requerimiento fue iniciado."); } else { $NuevaNovedad->setNotas("El requerimiento fue reiniciado."); } break; case 20: $NuevaNovedad->setNotas("El requerimiento fue puesto en espera."); break; case 80: $NuevaNovedad->setNotas("El requerimiento fue cancelado."); break; case 90: $NuevaNovedad->setNotas("El requerimiento se marcó como terminado."); break; case 99: $NuevaNovedad->setNotas("El requerimiento fue cerrado."); break; default: $NuevaNovedad->setNotas("El estado del requerimiento ahora es " . \Yacare\RequerimientosBundle\Entity\Requerimiento::getEstadoNombres($NuevoEstado)); break; } $em->persist($NuevaNovedad); $this->InformarNovedad($request, $NuevaNovedad); } $entity->setEstado($NuevoEstado); $em->persist($entity); $em->flush(); return $this->redirectToRoute($this->obtenerRutaBase('ver'), $this->ArrastrarVariables($request, array('id' => $id), false)); }
/** * Obtiene el nombre normalizado del estado. * * @return string */ public function getEstadoNombre() { return Requerimiento::getEstadoNombres($this->getEstado()); }