src/Controller/FallecidoTumbaController.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\FallecidoTumba;
  4. use App\Form\FallecidoTumbaType;
  5. use App\Repository\FallecidoTumbaRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use App\Entity\Tumba;
  11. use App\Entity\ParametroFallecido;
  12. use App\Repository\ZonaRepository;
  13. use App\Repository\TumbaRepository;
  14. use App\Entity\Zona;
  15. use App\Entity\Fallecido;
  16. use App\Repository\ParametroRepository;
  17. #[Route('/fallecidotumba')]
  18. class FallecidoTumbaController extends AbstractController {
  19.     #[Route('/'name'app_fallecido_tumba_index'methods: ['GET'])]
  20.     public function index(FallecidoTumbaRepository $fallecidoTumbaRepository): Response {
  21.         $tiposTumba $this->getDoctrine()->getManager()->getRepository("App\Entity\TipoTumba")->findAll();
  22.         return $this->render('fallecido_tumba/index.html.twig', [
  23.                     'fallecido_tumbas' => $fallecidoTumbaRepository->findAll(),
  24.         ]);
  25.     }
  26.     #[Route('/new/{tumba}/{fallecido}'name'app_fallecido_tumba_new'methods: ['GET''POST'])]
  27.     public function new(Request $requestTumba $tumbaFallecido $fallecido nullFallecidoTumbaRepository $fallecidoTumbaRepositoryParametroRepository $parametroRepository): Response {
  28.         $em $this->getDoctrine()->getManager();
  29.         $parametros $parametroRepository->findBy(['tipoTumba' => $tumba->getTipoTumba()->getId(), 'relacion' => 1]);
  30.         $datos = [];
  31.         foreach ($parametros as $parametro) {
  32.             $datos[$parametro->getNombre()] = "";
  33.         }
  34.         $fallecidoTumba = new FallecidoTumba();
  35.         $fallecidoTumba->setFallecido($fallecido);
  36.         $fallecidoTumba->setFecha(date_create('now'));
  37.         $form $this->createForm(FallecidoTumbaType::class, $fallecidoTumba);
  38.         foreach ($datos as $key => $valor) {
  39.             $keynueva \App\Util\Funciones::transformarNombre($key);
  40.             $form->add($keynueva\Symfony\Component\Form\Extension\Core\Type\TextType::class, ['mapped' => false'label' => ucfirst($key) . ': ',
  41.                 'attr' => [
  42.                     'class' => 'form-control',
  43.                     'placeholder' => 'Inserte ' $key,
  44.             ]]);
  45.         }
  46.         $form->handleRequest($request);
  47.         if ($form->isSubmitted() && $form->isValid()) {
  48.             $fallecidoTumba->setTumba($tumba);
  49.             $actuales $fallecidoTumbaRepository->findBy(['fallecido' => $fallecidoTumba->getFallecido(), 'actual' => true]);
  50.             foreach ($actuales as $actual) {
  51.                 $actual->setActual(false);
  52.                 $em->persist($actual);
  53.                 }
  54.             $fallecidoTumba->setActual(true);
  55.             $em->persist($fallecidoTumba);
  56.             $em->flush();
  57.             foreach ($parametros as $parametro) {
  58.                 $parametroFallecido = new ParametroFallecido();
  59.                 $parametroFallecido->setValor($form->get(\App\Util\Funciones::transformarNombre($parametro->getNombre()))->getData());
  60.                 $parametroFallecido->setFallecidoTumba($fallecidoTumba);
  61.                 $parametroFallecido->setParametro($parametro);
  62.                 $em->persist($parametroFallecido);
  63.             }
  64.             $em->flush();
  65.             return $this->redirect($this->generateUrl('app_fallecido_show', ['id' => $fallecidoTumba->getFallecido()->getId()]));
  66.         }
  67.         return $this->renderForm('fallecido_tumba/new.html.twig', [
  68.                     'fallecido_tumba' => $fallecidoTumba,
  69.                     'fallecido' => $fallecido,
  70.                     'form' => $form,
  71.         ]);
  72.     }
  73.     #[Route('/{id}'name'app_fallecido_tumba_show'methods: ['GET'])]
  74.     public function show(FallecidoTumba $fallecidoTumba): Response {
  75.         return $this->render('fallecido_tumba/show.html.twig', [
  76.                     'fallecido_tumba' => $fallecidoTumba,
  77.         ]);
  78.     }
  79.     #[Route('/{id}/edit'name'app_fallecido_tumba_edit'methods: ['GET''POST'])]
  80.     public function edit(Request $requestFallecidoTumba $fallecidoTumbaFallecidoTumbaRepository $fallecidoTumbaRepository): Response {
  81.         $em $this->getDoctrine()->getManager();
  82.         $datos = [];
  83.         foreach ($fallecidoTumba->getParametroFallecidos() as $parametroFallecido) {
  84.             $datos[$parametroFallecido->getParametro()->getNombre()] = $parametroFallecido->getValor();
  85.         }
  86.         $form $this->createForm(FallecidoTumbaType::class, $fallecidoTumba);
  87.         foreach ($datos as $key => $valor) {
  88.             $keynueva \App\Util\Funciones::transformarNombre($key);
  89.             $form->add($keynueva\Symfony\Component\Form\Extension\Core\Type\TextType::class, ['mapped' => false'label' => ucfirst($key) . ': ',
  90.                 'attr' => [
  91.                     'class' => 'form-control',
  92.                     'placeholder' => 'Inserte ' $key,
  93.             ]]);
  94.         }
  95.         foreach ($datos as $key => $valor) {
  96.             $keynueva \App\Util\Funciones::transformarNombre($key);
  97.             $form->get($keynueva)->setData($valor);
  98.         }
  99.         $form->handleRequest($request);
  100.         if ($form->isSubmitted() && $form->isValid()) {
  101.             $fallecidoTumbaRepository->add($fallecidoTumbatrue);
  102.             foreach ($fallecidoTumba->getParametroFallecidos() as $parametroFallecido) {
  103.                 $parametroFallecido->setValor($form->get(\App\Util\Funciones::transformarNombre($parametroFallecido->getParametro()->getNombre()))->getData());
  104.                 $em->persist($parametroFallecido);
  105.             }
  106.             $em->flush();
  107.             return $this->redirect($this->generateUrl('app_fallecido_show', ['id' => $fallecidoTumba->getFallecido()->getId()]));
  108.         }
  109.         return $this->renderForm('fallecido_tumba/edit.html.twig', [
  110.                     'fallecido_tumba' => $fallecidoTumba,
  111.                     'fallecido' => $fallecidoTumba->getFallecido(),
  112.                     'form' => $form,
  113.         ]);
  114.     }
  115.     #[Route('/{id}'name'app_fallecido_tumba_delete'methods: ['POST'])]
  116.     public function delete(Request $requestFallecidoTumba $fallecidoTumbaFallecidoTumbaRepository $fallecidoTumbaRepository): Response {
  117.         if ($this->isCsrfTokenValid('delete' $fallecidoTumba->getId(), $request->request->get('_token'))) {
  118.             $fallecidoTumbaRepository->remove($fallecidoTumbatrue);
  119.         }
  120.         return $this->redirectToRoute('app_fallecido_tumba_index', [], Response::HTTP_SEE_OTHER);
  121.     }
  122.     #[Route('/zonas/{zona}/{fallecido}'name'app_fallecido_tumba_zona'methods: ['GET''POST'])]
  123.     public function tumbasPorZona(Request $requestZona $zonaFallecido $fallecidoTumbaRepository $tumbaRepository\App\Repository\TipoTumbaRepository $tipoRepository): Response {
  124.         $tipos $tipoRepository->findAll();
  125.         $datos = [];
  126.         foreach ($tipos as $tipo) {
  127.             $tumbas $tumbaRepository->findBy(['zona' => $zona->getId(), 'tipoTumba' => $tipo]);
  128.             foreach ($tumbas as $tumba) {
  129.                 $datos['tumbas'][$tipo->getNombre()][] = $tumba;
  130.             }
  131.             if (count($tumbas) > 0) {
  132.                 $datos['tipo'][] = $tipo->getNombre();
  133.             }
  134.         }
  135.         return $this->renderForm('fallecido_tumba/tumbasZona.html.twig', [
  136.                     'zona' => $zona,
  137.                     'datos' => $datos,
  138.                     'fallecido' => $fallecido,
  139.         ]);
  140.     }
  141.     #[Route('/select/tumba/{fallecido}'name'app_fallecido_tumba_zona_select'methods: ['GET'])]
  142.     public function selectzona(ZonaRepository $zonaRepositoryFallecido $fallecido): Response {
  143.         $tiposTumba $this->getDoctrine()->getManager()->getRepository("App\Entity\TipoTumba")->findAll();
  144.         return $this->render('fallecido_tumba/selectTumba.html.twig', [
  145.                     'tipos_tumba' => $tiposTumba,
  146.                     'fallecido' => $fallecido,
  147.         ]);
  148.     }
  149.     #[Route('/zonas/{zona}/{fallecido}'name'app_fallecido_tumbazona_zonas'methods: ['GET'])]
  150.     public function zonas(Zona $zona nullFallecido $fallecidoZonaRepository $zonaRepository): Response {
  151.         $zonas $zonaRepository->findBy(['padre' => $zona]);
  152.         $tiposTumba $this->getDoctrine()->getManager()->getRepository("App\Entity\TipoTumba")->findAll();
  153.         $datos = [];
  154.         foreach ($zonas as $zona) {
  155.             $datos[$zona->getId()]['eliminar'] = false;
  156.             if (count($zona->getTumbas()) == && count($zona->getZonas()) == 0) {
  157.                 $datos[$zona->getId()]['eliminar'] = true;
  158.             }
  159.         }
  160.         return $this->render('fallecido_tumba/zonas.html.twig', [
  161.                     'zonas' => $zonas,
  162.                     'datos' => $datos,
  163.                     'tipos_tumba' => $tiposTumba,
  164.                     'fallecido' => $fallecido,
  165.         ]);
  166.     }
  167.     #[Route('/tumbas/{fallecido}'name'app_fallecido_tumba_tubmas_fallecido'methods: ['GET'])]
  168.     public function tumbasFallecido(Fallecido $fallecidoFallecidoTumbaRepository $fallecidoTumbaRepository): Response {
  169.         $fallecidoTumbas $fallecidoTumbaRepository->findBy(['fallecido' => $fallecido->getId()], ['fecha' => 'DESC','id'=>'DESC']);
  170.         return $this->render('fallecido_tumba/tumbasFallecido.html.twig', [
  171.                     'fallecido_tumbas' => $fallecidoTumbas,
  172.         ]);
  173.     }
  174.     #[Route('/tumbas/fallecido/detalles/{id}'name'app_fallecido_tumba_tumbas_fallecido_detalles'methods: ['GET'])]
  175.     public function tumbasFallecidoDetalles(FallecidoTumba $fallecidoTumba): Response {
  176.         return $this->render('fallecido_tumba/fallecidoTumbaDetalles.html.twig', [
  177.                     'parametros' => $fallecidoTumba->getParametroFallecidos(),
  178.         ]);
  179.     }
  180.     #[Route('/fallecidos/tumba/{tumba}'name'app_fallecido_tumba_fallecidos'methods: ['GET'])]
  181.     public function fallecidosPorTumba(Tumba $tumba\App\Service\FallecidosTumbaService $fallecidoTumbaService): Response {
  182.         return $this->render('fallecido_tumba/fallecidosPorTumba.html.twig', [
  183.                     'fallecido_tumbas' => $fallecidoTumbaService->fallecidosPorTumba($tumba),
  184.                     'tumba' => $tumba,
  185.         ]);
  186.     }
  187. }