src/Controller/PeriodoController.php line 89

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Periodo;
  4. use App\Entity\Usuario;
  5. use App\Form\PeriodoType;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. //#[Route('/periodo')]
  13. /**
  14.  * Class PeriodoController
  15.  * @Route("/periodo")
  16.  * @package App\Controller
  17.  */
  18. class PeriodoController extends AbstractController
  19. {
  20.     //#[Route('/', name: 'app_periodo_index', methods: ['GET'])]
  21.     /**
  22.      * @Route("/", name= "app_periodo_index", methods= {"GET", "POST"})
  23.      * @param Request $request
  24.      * @param EntityManagerInterface $entityManager
  25.      * @return Response
  26.      */
  27.     public function index(Request $requestEntityManagerInterface $entityManager): Response
  28.     {
  29.         $perfil $request->getSession()->get('perfilLecciones');
  30.         $nivel $perfil[5]["nivel"]; //4
  31.         if ($nivel == 0) {
  32.             $this->addFlash('danger''El acceso al módulo de "Periodos" está restringido.');
  33.             return $this->redirectToRoute('homepage');
  34.         }
  35.         $periodos $entityManager
  36.             ->getRepository(Periodo::class)
  37.             ->findAll();
  38.         return $this->render('periodo/index.html.twig', [
  39.             'periodos' => $periodos,
  40.         ]);
  41.     }
  42.     //#[Route('/new', name: 'app_periodo_new', methods: ['GET', 'POST'])]
  43.     /**
  44.      * @Route("/new", name="app_periodo_new", methods={"GET", "POST"})
  45.      */
  46.     public function new(Request $requestEntityManagerInterface $entityManager): Response
  47.     {
  48.         $perfil $request->getSession()->get('perfilLecciones');
  49.         $nivel $perfil[5]["nivel"]; //4
  50.         if ($nivel == 0) {
  51.             $this->addFlash('danger''El acceso al módulo de "Periodos" está restringido.');
  52.             return $this->redirectToRoute('homepage');
  53.         }
  54.         $periodo = new Periodo();
  55.         $form $this->createForm(PeriodoType::class, $periodo);
  56.         $form->handleRequest($request);
  57.         if ($form->isSubmitted() && $form->isValid()) {
  58.             $entityManager->persist($periodo);
  59.             $entityManager->flush();
  60.             return $this->redirectToRoute('app_periodo_index', [], Response::HTTP_SEE_OTHER);
  61.         }
  62.         return $this->renderForm('periodo/new.html.twig', [
  63.             'periodo' => $periodo,
  64.             'form' => $form,
  65.         ]);
  66.     }
  67.     //#[Route('/{idPrd}', name: 'app_periodo_show', methods: ['GET'])]
  68.     /**
  69.      * @Route("/{idPrd}", name= "app_periodo_show", methods= {"GET"})
  70.      */
  71.     public function show(Periodo $periodo): Response
  72.     {
  73.         return $this->render('periodo/show.html.twig', [
  74.             'periodo' => $periodo,
  75.         ]);
  76.     }
  77.     //#[Route('/{idPrd}/edit', name: 'app_tema_edit', methods: ['GET', 'POST'])]
  78.     /**
  79.      * @Route("/{idPrd}/edit", name= "app_periodo_edit", methods= {"GET", "POST"})
  80.      */
  81.     public function edit(Request $requestPeriodo $periodoEntityManagerInterface $entityManager): Response
  82.     {
  83.         $form $this->createForm(PeriodoType::class, $periodo);
  84.         $form->handleRequest($request);
  85.         if ($form->isSubmitted() && $form->isValid()) {
  86.             $entityManager->flush();
  87.             if ($periodo->getActivo() == 1) {
  88.                 $activo "Activo";
  89.             } else {
  90.                 $activo "Inactivo";
  91.             }
  92.             $data = array(
  93.                 'idPrd' => $periodo->getIdPrd(),
  94.                 'descripcion' => $periodo->getDescripcion(),
  95.                 'actual' => $activo,
  96.                 'activo' => $activo,
  97.                 'mensaje' => 'Se actualizo correctamente',
  98.             );
  99.             if ($periodo->getActivo() == 1) {
  100.                 $data['activo'] = "Activo";
  101.             } else {
  102.                 $data['activo'] = "Inactivo";
  103.             }
  104.             return new JsonResponse($data);
  105.             # return $this->redirectToRoute('app_periodo_index', [], Response::HTTP_OK);
  106.         }
  107.         if($form->isSubmitted() && !$form->isValid()){
  108.             $view $this->renderForm('periodo/modal.html.twig', [
  109.                 'periodo' => $periodo,
  110.                 'form' => $form,
  111.             ]);
  112.             $response = new JsonResponse(['form' => $view]);
  113.             $response->setStatusCode(Response::HTTP_BAD_REQUEST);
  114.             return $response;
  115.         }
  116.         return $this->renderForm('periodo/modal.html.twig', [
  117.             'periodo' => $periodo,
  118.             'form' => $form,
  119.         ]);
  120.     }
  121.     //#[Route('/{idPrd}', name: 'app_periodo_delete', methods: ['POST'])]
  122.     /**
  123.      *@Route("/delete/{idPrd}", name= "app_periodo_delete", methods= {"POST"})
  124.      */
  125.     public function delete(Request $requestPeriodo $periodoEntityManagerInterface $entityManager): Response
  126.     {
  127.         if ($this->isCsrfTokenValid('delete'.$periodo->getIdPrd(), $request->request->get('_token'))) {
  128.             $entityManager->remove($periodo);
  129.             $entityManager->flush();
  130.         }
  131.         return $this->redirectToRoute('app_periodo_index', [], Response::HTTP_SEE_OTHER);
  132.     }
  133. }