src/Controller/TumbaController.php line 68

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Tumba;
  4. use App\Form\TumbaType;
  5. use App\Repository\TumbaRepository;
  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\TipoTumba;
  11. use App\Entity\ValorParametro;
  12. use App\Entity\Zona;
  13. use App\Entity\Fallecido;
  14. use App\Service\FallecidosTumbaService;
  15. #[Route('/tumba')]
  16. class TumbaController extends AbstractController {
  17.     #[Route('/'name'app_tumba_index'methods: ['GET'])]
  18.     public function index(TumbaRepository $tumbaRepository): Response {
  19.         $tiposTumba $this->getDoctrine()->getManager()->getRepository("App\Entity\TipoTumba")->findAll();
  20.         return $this->render('tumba/index.html.twig', [
  21.                     'tumbas' => $tumbaRepository->findAll(),
  22.                     'tipos_tumba' => $tiposTumba,
  23.         ]);
  24.     }
  25.     #[Route('/new/{tipoTumba}/{zona}'name'app_tumba_new'methods: ['GET''POST'])]
  26.     public function new(Request $requestTumbaRepository $tumbaRepositoryTipoTumba $tipoTumbaZona $zona): Response {
  27.         $em $this->getDoctrine()->getManager();
  28.         $tumba = new Tumba();
  29.         $tumba->setZona($zona);
  30.         $tumba->setTipoTumba($tipoTumba);
  31.         $tumba->setIdentificador("");
  32.         $em->persist($tumba);
  33.         $em->flush();
  34.         foreach ($tumba->getTipoTumba()->getParametros() as $parametro) {
  35.             $valorParametro = new ValorParametro();
  36.             $valorParametro->setParametro($parametro);
  37.             $valorParametro->setValor($parametro->getValorPorDefecto());
  38.             $valorParametro->setTumba($tumba);
  39.             $em->persist($valorParametro);
  40.             $em->flush();
  41.         }
  42.         return $this->redirect($this->generateUrl('app_tumba_edit', ['id' => $tumba->getId()]));
  43.         /*      return $this->renderForm('tumba/new.html.twig', [
  44.           'tumba' => $tumba,
  45.           'form' => $form,
  46.           ]);
  47.          */
  48.     }
  49.     #[Route('/{id}'name'app_tumba_show'methods: ['GET'])]
  50.     public function show(Tumba $tumba): Response {
  51.         return $this->render('tumba/show.html.twig', [
  52.                     'tumba' => $tumba,
  53.                     'valores' => $tumba->getValorParametros(),
  54.         ]);
  55.     }
  56.     #[Route('/datostumba/{tumba}/{fallecido}'name'app_tumba_datos'methods: ['GET'])]
  57.     public function datos(Tumba $tumba nullFallecido $fallecido null): Response {
  58.         return $this->render('tumba/datos.html.twig', [
  59.                     'tumba' => $tumba,
  60.                     'valores' => $tumba->getValorParametros(),
  61.                     'fallecido' => $fallecido
  62.         ]);
  63.     }
  64.     #[Route('/{id}/edit'name'app_tumba_edit'methods: ['GET''POST'])]
  65.     public function edit(Request $requestTumba $tumbaTumbaRepository $tumbaRepository): Response {
  66.         $em $this->getDoctrine()->getManager();
  67.         $datos = [];
  68.         foreach ($tumba->getTipoTumba()->getParametros() as $parametro) {
  69.             $valorParametro $em->getRepository("App\Entity\ValorParametro")->findOneBy(['tumba' => $tumba->getId(), 'parametro' => $parametro->getId()]);
  70.             $datos[$parametro->getNombre()] = $valorParametro->getValor();
  71.         }
  72.         $datos['identificador'] = $tumba->getIdentificador();
  73.         $datos['descripcion'] = $tumba->getDescripcion();
  74.       
  75.         
  76.         $form $this->createFormBuilder($datos);
  77.         foreach ($datos as $key => $valor) {
  78.             $keynueva \App\Util\Funciones::transformarNombre($key);
  79.             $form->add($keynueva\Symfony\Component\Form\Extension\Core\Type\TextType::class, ['mapped' => false'required' => false'label' => ucfirst($key) . ': ',
  80.                 'attr' => [
  81.                     'class' => 'form-control',
  82.                     'placeholder' => 'Inserte ' $key,
  83.             ]]);
  84.         }
  85.        
  86.         $form->add('tipoTumba',  \Symfony\Bridge\Doctrine\Form\Type\EntityType::class, [
  87.                     'class' => \App\Entity\TipoTumba::class,
  88.                     'label' => 'tumba.tipo',
  89.                     'attr' => ['class' => 'form-control select2-blanlk',
  90.                         'data-toggle' => 'select2',
  91.                         'placeholder' => 'tumba.placeholderTipo'
  92.                     ],
  93.         ]);
  94.         // $form->add("Guardar", \Symfony\Component\Form\Extension\Core\Type\SubmitType::class);
  95.         $form $form->getForm();
  96.         $form->get('tipoTumba')->setData($tumba->getTipoTumba());
  97.         foreach ($datos as $key => $valor) {
  98.             $keynueva \App\Util\Funciones::transformarNombre($key);
  99.             $form->get($keynueva)->setData($valor);
  100.         }
  101.         $form->handleRequest($request);
  102.         if ($form->isSubmitted() && $form->isValid()) {
  103.             foreach ($tumba->getTipoTumba()->getParametros() as $parametro) {
  104.                 $valorParametro $em->getRepository("App\Entity\ValorParametro")->findOneBy(['tumba' => $tumba->getId(), 'parametro' => $parametro->getId()]);
  105.                 $valorParametro->setValor($form->get(\App\Util\Funciones::transformarNombre($parametro->getNombre()))->getData());
  106.                 $em->persist($valorParametro);
  107.             }
  108.             $tumba->setIdentificador($form->get('identificador')->getData());
  109.             $tumba->setDescripcion($form->get('descripcion')->getData());
  110.             $tumba->setTipoTumba($form->get('tipoTumba')->getData());
  111.             $em->persist($tumba);
  112.             $em->flush();
  113.             return $this->redirect($this->generateUrl('app_zona_index'));
  114.         }
  115.         return $this->renderForm('tumba/form.html.twig', [
  116.                     'tumba' => $tumba,
  117.                     'form' => $form,
  118.         ]);
  119.     }
  120.     #[Route('/delete/{id}'name'app_tumba_delete'methods: ['GET''POST'])]
  121.     public function delete(Request $requestTumba $tumbaTumbaRepository $tumbaRepository): Response {
  122.         $em $this->getDoctrine()->getManager();
  123.         foreach ($tumba->getValorParametros() as $valor) {
  124.             $tumba->removeValorParametro($valor);
  125.             $em->remove($valor);
  126.             $em->flush();
  127.         }
  128.         $em->remove($tumba);
  129.         $em->flush();
  130.         return $this->redirectToRoute('app_zona_index', [], Response::HTTP_SEE_OTHER);
  131.     }
  132.     #[Route('/zonas/{zona}'name'app_tumba_zona'methods: ['GET''POST'])]
  133.     public function tumbasPorZona(Request $requestZona $zonaTumbaRepository $tumbaRepository\App\Repository\TipoTumbaRepository $tipoRepository): Response {
  134.         $tipos $tipoRepository->findAll();
  135.         $datos = [];
  136.         foreach ($tipos as $tipo) {
  137.             $tumbas $tumbaRepository->findBy(['zona' => $zona->getId(), 'tipoTumba' => $tipo]);
  138.             foreach ($tumbas as $tumba) {
  139.                 $datos['tumbas'][$tipo->getNombre()][] = $tumba;
  140.             }
  141.             if (count($tumbas) > 0) {
  142.                 $datos['tipo'][] = $tipo->getNombre();
  143.             }
  144.         }
  145.         return $this->renderForm('tumba/tumbasZona.html.twig', [
  146.                     'zona' => $zona,
  147.                     'datos' => $datos
  148.         ]);
  149.     }
  150.     #[Route('/tumbas/llenas'name'app_tumba_llena'methods: ['GET''POST'])]
  151.     public function tumbasLlenas(FallecidosTumbaService $fallecidoTumbaServiceTumbaRepository $tumbaRepository): Response {
  152.         $tumbas $tumbaRepository->findAll();
  153.         $datos = [];
  154.         foreach ($tumbas as $tumba) {
  155.             if ($fallecidoTumbaService->tumbaLlenaObjeto($tumba)) {
  156.                 $datos['ocupadas'][] = $tumba->getId();
  157.             }
  158.             if($fallecidoTumbaService->tumbaConFallecido($tumba)){
  159.                 $datos['con'][]=$tumba->getId();
  160.             }
  161.         }
  162.         return new \Symfony\Component\HttpFoundation\JsonResponse($datos);
  163.     }
  164.     #[Route('/anadir/tumba'name'app_tumba_anadir'methods: ['GET''POST'])]
  165.     public function tumbasAnadir(TumbaRepository $tumbaRepository\App\Repository\TipoTumbaRepository $tipoTumbaRepository\App\Repository\ZonaRepository $zonaRepository): Response {
  166.         var_dump("hola");die();
  167.         $em $this->getDoctrine()->getManager();
  168.         $zona$zonaRepository->find(31);
  169.         $tipoTumba=$tipoTumbaRepository->find(1);
  170.         for ($i 1$i <= 71$i++) {
  171.             $em $this->getDoctrine()->getManager();
  172.             $tumba = new Tumba();
  173.             $tumba->setZona($zona);
  174.             $tumba->setTipoTumba($tipoTumba);
  175.             $tumba->setIdentificador($i);
  176.             $tumba->setDescripcion("Nicho ".$i);
  177.             $em->persist($tumba);
  178.             $em->flush();
  179.             foreach ($tumba->getTipoTumba()->getParametros() as $parametro) {
  180.                 $valorParametro = new ValorParametro();
  181.                 $valorParametro->setParametro($parametro);
  182.                 $valorParametro->setValor($parametro->getValorPorDefecto());
  183.                 $valorParametro->setTumba($tumba);
  184.                 $em->persist($valorParametro);
  185.                 $em->flush();
  186.             }
  187.         }
  188.         die();
  189.     }
  190. }