Exemplo n.º 1
0
 public function getTgen()
 {
     if (!$this->Tgen) {
         // TODO: que se pueda configurar el generador
         $this->Tgen = TgenExtension::getDefaultTgen();
     }
     return $this->Tgen;
 }
Exemplo n.º 2
0
 /**
  * Ver un requerimiento, con formulario para publicar una novedad.
  *
  * @Route("ver/")
  * @Template()
  */
 public function verAction(Request $request)
 {
     $ResultadoVer = $this->parent_verAction($request);
     $res = $ResultadoVer['res'];
     $UsuarioConectado = $this->get('security.token_storage')->getToken()->getUser();
     if (!is_string($UsuarioConectado)) {
         $AntiguedadEnDias = $res->Entidad->getUpdatedAt()->diff(new \DateTime());
         if ($res->Entidad->getEstado() < 50 || $AntiguedadEnDias->days < 30) {
             // Sólo se permite publicar novedades si el requerimiento todavía no fue cerrado
             // o si tuvo actividad en los últimos 30 días.
             // O sea, los requerimientos cerrados siguen siendo comentables durante 30 días.
             $NuevaNovedad = new \Yacare\RequerimientosBundle\Entity\Novedad();
             $NuevaNovedad->setPrivada(0);
             $NuevaNovedad->setRequerimiento($res->Entidad);
             $NuevaNovedad->setUsuario($UsuarioConectado);
             $FormEditar = $this->createForm('Yacare\\RequerimientosBundle\\Form\\NovedadType', $NuevaNovedad);
             $res->FormularioNovedad = $FormEditar->createView();
         }
     }
     $Requerimiento = $res->Entidad;
     // Genero las opciones apropiadas para el botón avance
     $Tgen = \Tapir\TemplateBundle\Twig\TgenExtension::getDefaultTgen();
     $EnlaceIniciar = $Tgen->Link('Iniciar', ['icon' => 'play', 'ajax' => true, 'href' => $res->UrlAccion('cambiarestado', ['id' => $Requerimiento->getId(), 'nuevoestado' => 10, 'hisapi' => 0])]);
     $EnlaceContinuar = $Tgen->Link('Continuar', ['icon' => 'play', 'ajax' => true, 'href' => $res->UrlAccion('cambiarestado', ['id' => $Requerimiento->getId(), 'nuevoestado' => 10, 'hisapi' => 0])]);
     $EnlaceReabrir = $Tgen->Link('Reabrir', ['icon' => 'play', 'ajax' => true, 'href' => $res->UrlAccion('cambiarestado', ['id' => $Requerimiento->getId(), 'nuevoestado' => 10, 'hisapi' => 0])]);
     $EnlaceEspera = $Tgen->Link('Poner en espera', ['icon' => 'refresh', 'ajax' => true, 'href' => $res->UrlAccion('cambiarestado', ['id' => $Requerimiento->getId(), 'nuevoestado' => 20, 'hisapi' => 0])]);
     $EnlaceCancelar = $Tgen->Link('Cancelar', ['icon' => 'times', 'ajax' => true, 'href' => $res->UrlAccion('cambiarestado', ['id' => $Requerimiento->getId(), 'nuevoestado' => 80, 'hisapi' => 0])]);
     $EnlaceTerminar = $Tgen->Link('Terminar', ['icon' => 'check', 'ajax' => true, 'href' => $res->UrlAccion('cambiarestado', ['id' => $Requerimiento->getId(), 'nuevoestado' => 90, 'hisapi' => 0])]);
     $EnlaceCerrar = $Tgen->Link('Cerrar y archivar', ['icon' => 'flag-checkered', 'ajax' => true, 'href' => $res->UrlAccion('cambiarestado', ['id' => $Requerimiento->getId(), 'nuevoestado' => 99, 'hisapi' => 0])]);
     $OpcionesAvance = [];
     switch ($Requerimiento->getEstado()) {
         case 0:
             // Nuevo
             $OpcionesAvance[] = $EnlaceIniciar;
             $OpcionesAvance[] = 'bootstrap-divider';
             $OpcionesAvance[] = $EnlaceCancelar;
             break;
         case 10:
             // Iniciado
             $OpcionesAvance[] = $EnlaceEspera;
             $OpcionesAvance[] = $EnlaceTerminar;
             $OpcionesAvance[] = 'bootstrap-divider';
             $OpcionesAvance[] = $EnlaceCancelar;
             break;
         case 20:
             // En espera
             $OpcionesAvance[] = $EnlaceContinuar;
             $OpcionesAvance[] = $EnlaceTerminar;
             $OpcionesAvance[] = 'bootstrap-divider';
             $OpcionesAvance[] = $EnlaceCancelar;
             break;
         case 80:
             // Cancelado
             $OpcionesAvance[] = $EnlaceReabrir;
             break;
         case 90:
             // Terminado
             $OpcionesAvance[] = $EnlaceCerrar;
             $OpcionesAvance[] = 'bootstrap-divider';
             $OpcionesAvance[] = $EnlaceReabrir;
             break;
         case 99:
             // Cerrado
             $OpcionesAvance[] = $EnlaceReabrir;
             break;
     }
     $res->BotonAvance = $Tgen->DropdownButton('Avance', $OpcionesAvance, ['menu-right' => true]);
     return $ResultadoVer;
 }