<?php
namespace App\Controller;
use App\Entity\Usuario;
use App\Form\DashboardFiltroType;
use App\Repository\EquipoRepository;
use App\Repository\EvaluacionRepository;
use App\Repository\SolicitudRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
#[Route('/dashboard')]
class DashboardController extends AbstractController
{
#[Route('/', name: 'app_dashboard', methods: ['GET', 'POST'])]
public function index(Request $request, SolicitudRepository $solresp, EquipoRepository $eqRep, EvaluacionRepository $evaRep): RedirectResponse|Response
{
date_default_timezone_set("America/Mexico_City");
# Se obtiene el nivel de acceso
$perfil = $request->getSession()->get('perfil');
$nivel = $perfil[13]["nivel"];
# Si el nivel de acceso es 0 entonces se retorna a página de inicio
if ($nivel == 0) {
$this->addFlash('danger', 'El acceso al "Dashboard" está restringido.');
return $this->redirectToRoute('homepage');
}
/** @var Usuario $user */
$user = $this->getUser();
if ($nivel == 2) {
$uni = true;
} else {
$uni = false;
}
if ($request->isMethod('POST')) {
$parameters = $request->request->get('dashboard_filtro');
$unidad = (array_key_exists('unidad', $request->request->all()['dashboard_filtro'])) ? $parameters['unidad'] : "";
$finicio = $parameters['date_inicio'];
$ffinal = $parameters['date_fin'];
if ($nivel == 2) {
// Acceso universal o plantel seleccionado
$solicitud = $solresp->eficaciaMantenimiento($finicio, $ffinal, $unidad);
$equipo = $eqRep->equipoActualizado($unidad);
$evaluacion = $evaRep->evaluacionServicios($finicio, $ffinal, $unidad);
} else {
// Acceso solo a lo del propio plantel
$solicitud = $solresp->eficaciaMantenimiento($finicio, $ffinal, $user->getUnidad());
$equipo = $eqRep->equipoActualizado($user->getUnidad());
$evaluacion = $evaRep->evaluacionServicios($finicio, $ffinal, $user->getUnidad());
}
return new JsonResponse([
'data' => [
'solicitud' => $solicitud,
'equipo' => $equipo,
'evaluacion' => $evaluacion
]
], Response::HTTP_OK);
}
$form = $this->createForm(DashboardFiltroType::class, null, ['unidad' => $uni]);
$form->handleRequest($request);
return $this->render('dashboard/index.html.twig', [
'form' => $form->createView(),
]);
}
//Para subir formulario
}