<?php
namespace App\Controller\Filtro;
use App\Entity\Filtro\FiltroFichaje;
use App\Form\Filtro\FiltroFichajeType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\RequestStack;
#[Route('/filtro/fichaje')]
class FiltroFichajeController extends AbstractController
{
#[Route('/', name: 'app_filtro_fichaje_index', methods: ['GET', 'POST'])]
public function index(RequestStack $requestStack, Request $request): Response
{
$session = $requestStack->getSession();
$em = $this->getDoctrine()->getManager();
$fichaje = new FiltroFichaje();
if (!is_null($session->get('filtro.fichaje'))){
$fichaje = unserialize($session->get('filtro.fichaje'));
}
if(!is_null($fichaje->getEmpleada())){
$empleada= $em->getRepository("App:Admin\Empleada")->find($fichaje->getEmpleada()->getId());
$fichaje->setEmpleada($empleada);
}
if(!is_null($fichaje->getProyecto())){
$proyecto= $em->getRepository("App:Comun\Proyecto")->find($fichaje->getProyecto()->getId());
$fichaje->setProyecto($proyecto);
}
if(!is_null($fichaje->getTarea())){
$tarea= $em->getRepository("App:Comun\Tarea")->find($fichaje->getTarea()->getId());
$fichaje->setTarea($tarea);
}
$form = $this->createForm(FiltroFichajeType::class, $fichaje);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
if (!is_null($fichaje->getProyecto())){
$fichaje->setProyecto($fichaje->getProyecto());
}
if (!is_null($fichaje->getEmpleada())){
$fichaje->setEmpleada($fichaje->getEmpleada());
}
$session->set('filtro.fichaje', serialize($fichaje));
return $this->redirectToRoute('app_filtro_fichaje_index', [], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('filtro/fichaje/filtro.html.twig', [
'fichaje' => $fichaje,
'form' => $form,
]);
}
#[Route('/indexEmpleada/', name: 'app_filtro_fichaje_index_empleada', methods: ['GET', 'POST'])]
public function indexEmpleada(RequestStack $requestStack, Request $request): Response
{
$session = $requestStack->getSession();
$em = $this->getDoctrine()->getManager();
$fichaje = new FiltroFichaje();
if (!is_null($session->get('filtro.fichajeEmpleada'))){
$fichaje = unserialize($session->get('filtro.fichajeEmpleada'));
}
if(!is_null($fichaje->getEmpleada())){
$empleada= $em->getRepository("App:Admin\Empleada")->find($fichaje->getEmpleada()->getId());
$fichaje->setEmpleada($empleada);
}
if(!is_null($fichaje->getProyecto())){
$proyecto= $em->getRepository("App:Comun\Proyecto")->find($fichaje->getProyecto()->getId());
$fichaje->setProyecto($proyecto);
}
if(!is_null($fichaje->getTarea())){
$tarea= $em->getRepository("App:Comun\Tarea")->find($fichaje->getTarea()->getId());
$fichaje->setTarea($tarea);
}
$form = $this->createForm(\App\Form\Filtro\FiltroFichajeEmpleadaType::class, $fichaje);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
if (!is_null($fichaje->getProyecto())){
$fichaje->setProyecto($fichaje->getProyecto());
}
if (!is_null($fichaje->getEmpleada())){
$fichaje->setEmpleada($fichaje->getEmpleada());
}
$session->set('filtro.fichajeEmpleada', serialize($fichaje));
return $this->redirectToRoute('app_filtro_fichaje_index', [], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('filtro/fichaje/filtroEmpleada.html.twig', [
'fichaje' => $fichaje,
'form' => $form,
]);
}
#[Route('/formtarea/{proyecto}', name: 'app_filtro_fichaje_formtarea', methods: ['GET'])]
public function formTarea(\App\Entity\Comun\Proyecto $proyecto=null, Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$form=$this->createForm(\App\Form\Filtro\FiltroFichajeProyectoTareaType::class, null, ['proyecto'=>$proyecto]);
$form->handleRequest($request);
return $this->renderForm('filtro/fichaje/formTarea.html.twig', [
'form'=>$form,
]);
}
#[Route('/aplicado', name: 'app_filtro_fichaje_aplicado', methods: ['GET'])]
public function aplicado(RequestStack $requestStack): Response
{
$session = $requestStack->getSession();
$fichaje = unserialize($session->get('filtro.fichaje'));
if (!$fichaje) $fichaje = new FiltroFichaje();
return $this->renderForm('filtro/fichaje/aplicado.html.twig', [
'fichaje' => $fichaje,
]);
}
#[Route('/indexEmpleada/aplicado', name: 'app_filtro_fichaje_aplicado_empleada', methods: ['GET'])]
public function aplicadoEmpleada(RequestStack $requestStack): Response
{
$session = $requestStack->getSession();
$fichaje = unserialize($session->get('filtro.fichajeEmpleada'));
if (!$fichaje) $fichaje = new FiltroFichaje();
return $this->renderForm('filtro/fichaje/aplicado.html.twig', [
'fichaje' => $fichaje,
]);
}
#[Route('/limpiar', name: 'app_filtro_fichaje_limpiar', methods: ['GET'])]
public function limpiar(RequestStack $requestStack): Response
{
$session = $requestStack->getSession();
$session->set('filtro.fichaje', null);
return $this->redirectToRoute('app_filtro_fichaje_index', [], Response::HTTP_SEE_OTHER);
}
#[Route('/indexEmpleada/limpiar', name: 'app_filtro_fichaje_limpiar_empleaada', methods: ['GET'])]
public function limpiarEmpleada(RequestStack $requestStack): Response
{
$session = $requestStack->getSession();
$session->set('filtro.fichajeEmpleada', null);
return $this->redirectToRoute('app_filtro_fichaje_index', [], Response::HTTP_SEE_OTHER);
}
}