src/Controller/Inicio/InicioController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Inicio;
  3. use App\Controller\AbstractBaseController;
  4. use App\Entity\Usuario;
  5. use App\Repository\AlertaRepository;
  6. use App\Repository\FestivoRepository;
  7. use App\Repository\NotificacionRepository;
  8. use App\Repository\ProyectoRepository;
  9. use App\Repository\ProyectoUsuarioRepository;
  10. use Symfony\Component\HttpFoundation\RedirectResponse;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. class InicioController extends AbstractBaseController
  15. {
  16.     #[Route('/'name'app_index'methods: ['GET'])]
  17.     #[Route('/'name'index'methods: ['GET'])]
  18.     public function index(
  19.         Request $request,
  20.         ProyectoUsuarioRepository $proyectoUsuarioRepository,
  21.         ProyectoRepository $proyectoRepository,
  22.         FestivoRepository $festivoRepository,
  23.         AlertaRepository $alertaRepository,
  24.         NotificacionRepository $notificacionRepository,
  25.         $ex null,
  26.         $cod null,
  27.         $msg null
  28.     ): RedirectResponse|Response {
  29.         /** @var Usuario $usuario */
  30.         $usuario $this->getUser();
  31.         if (!$usuario) {
  32.             return $this->redirectToRoute('login');
  33.         }
  34.         $proyectosActivos = [];
  35.         $this->initSessions();
  36.         $proyectosUsuario               $proyectoUsuarioRepository->findProyectosActivosByUsuario($usuario);
  37.         if ($usuario->getRol() === 'ROLE_ADMIN') {
  38.             $proyectosActivos $proyectoRepository->findActiveProjects();
  39.         }
  40.         $festivosActuales               $festivoRepository->findByCurrentYear();
  41.         $alertas                        $alertaRepository->findAllBetweenDates();
  42.         $ultimasNotificacionesSolicitud $notificacionRepository->findUltimasSolicitudesNoLeidasByUsuario($usuario);
  43.         if ($request->query->get('excepcion')) {
  44.             $ex  $request->query->get('excepcion');
  45.             $cod $request->query->get('codigo');
  46.             $msg $request->query->get('mensaje');
  47.         }
  48.         return $this->render('inicio/index.html.twig', [
  49.             'festivosActuales'               => $festivosActuales,
  50.             'ultimasNotificacionesSolicitud' => $ultimasNotificacionesSolicitud,
  51.             'proyectos'                      => $proyectosUsuario,
  52.             'proyectosActivos'               => $proyectosActivos,
  53.             'alertas'                        => $alertas,
  54.             'excepcion'                      => $ex,
  55.             'codigo'                         => $cod,
  56.             'mensaje'                        => $msg,
  57.         ]);
  58.     }
  59.     private function initSessions(): void
  60.     {
  61.         if (!isset($_SESSION['tipo_fecha'])) {
  62.             $_SESSION['tipo_fecha'] = 1;
  63.         }
  64.         if (!isset($_SESSION['fecha_inicio'])) {
  65.             $_SESSION['fecha_inicio'] = (new \DateTime('now'))->format('01-m-Y');
  66.         }
  67.         if (!isset($_SESSION['fecha_fin'])) {
  68.             $_SESSION['fecha_fin'] = (new \DateTime('now'))->format('t-m-Y');
  69.         }
  70.         if (!isset($_SESSION['fecha_inicio_itinerancia'])) {
  71.             $_SESSION['fecha_inicio_itinerancia'] = (new \DateTime('now'))->format('01-m-Y');
  72.         }
  73.         if (!isset($_SESSION['fecha_fin_itinerancia'])) {
  74.             $_SESSION['fecha_fin_itinerancia'] = (new \DateTime('now'))->format('t-m-Y');
  75.         }
  76.         if (!isset($_SESSION['estado_marcaje'])) {
  77.             $_SESSION['estado_marcaje'] = 'Pendientes';
  78.         }
  79.         if (!isset($_SESSION['estado_itinerancia'])) {
  80.             $_SESSION['estado_itinerancia'] = 'Todos';
  81.         }
  82.         if (!isset($_SESSION['estado_solicitud'])) {
  83.             $_SESSION['estado_solicitud'] = 'Pendientes';
  84.         }
  85.         if (!isset($_SESSION['buscar_proyecto'])) {
  86.             $_SESSION['buscar_proyecto'] = '';
  87.         }
  88.         if (!isset($_SESSION['buscar_usuario'])) {
  89.             $_SESSION['buscar_usuario'] = '';
  90.         }
  91.         if (!isset($_SESSION['buscar_usuario2'])) {
  92.             $_SESSION['buscar_usuario2'] = '';
  93.         }
  94.         if (!isset($_SESSION['tipo_calendario'])) {
  95.             $_SESSION['tipo_calendario'] = '';
  96.         }
  97.     }
  98. }