src/Controller/Administration/EstablishmentController.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Administration;
  3. use App\Entity\User;
  4. use App\Entity\Establishment;
  5. use App\Repository\EstablishmentRepository;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use App\Form\Administration\EstablishmentType;
  8. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. /**
  13.  * @Route("/establishment")
  14.  */
  15. class EstablishmentController extends AbstractController
  16. {
  17.     /**
  18.      * @Route("/index", name="establishment_index", methods={"GET"})
  19.      */
  20.     public function index(EstablishmentRepository $establishmentRepository): Response
  21.     {
  22.         return $this->render('administration/establishment/index.html.twig', [
  23.             'establishments' => $establishmentRepository->findBy([],['id' => 'DESC']),
  24.         ]);
  25.     }
  26.     /**
  27.      * @Route("/ongoing/{id}", name="establishment_ongoing", methods={"GET"})
  28.      */
  29.     public function ongoing(Establishment $establishment): Response
  30.     {
  31.         $entityManager $this->getDoctrine()->getManager();
  32.         $user $this->getUser();
  33.         $user->setEstablishment($establishment);
  34.         
  35.         try {
  36.             $entityManager->flush();
  37.             $this->addFlash('success'"Changement effectué :)");
  38.         } catch (\Throwable $th) {
  39.             $this->addFlash('warning'"Une erreure est survenue lors du changement.");
  40.             $this->addFlash('info'$th->getMessage());
  41.             return $this->json(['code' => 500'message' => "Une erreure est survenue lors du changement."], 200);
  42.         }
  43.         return $this->json(['code' => 200'message' => "Changement effectué :)"], 200);
  44.     }
  45.     /**
  46.      * @Route("/new", name="establishment_new", methods={"GET","POST"})
  47.      */
  48.     public function new(Request $requestEstablishmentRepository $establishmentRepository): Response
  49.     {
  50.         /**@var User $user */
  51.         $user $this->getUser();
  52.         $schoolYear $user->getSchoolYear();
  53.         $_establishment $user->getEstablishment();
  54.         $establishmentGroup $_establishment->getEstablishmentGroup();
  55.         
  56.         $establishments $establishmentRepository->createQueryBuilder('entity')
  57.         
  58.         ->andWhere('entity.establishmentGroup = :establishmentGroup')
  59.         ->setParameter('establishmentGroup'$establishmentGroup)
  60.         ->orderBy('entity.id''DESC')
  61.         ->getQuery()
  62.         ->getResult();
  63.         $establishment = new Establishment();
  64.         $form $this->createForm(EstablishmentType::class, $establishment)
  65.         /* ->add('parent', EntityType::class, [
  66.             'class' => Establishment::class,
  67.             'choices' => $establishments,
  68.             'required' => false
  69.         ]) */;
  70.         $form->handleRequest($request);
  71.         if ($form->isSubmitted() && $form->isValid()) {
  72.             $entityManager $this->getDoctrine()->getManager();
  73.             $entityManager->persist($establishment);
  74.             
  75.             try {
  76.                 $entityManager->flush();
  77.                 $this->addFlash('success'"Un établissement à été ajouté.");
  78.             } catch (\Throwable $th) {
  79.                 $this->addFlash('warning'"Une erreure est survenue lors de l'ajout de l'établissement.");
  80.                 $this->addFlash('info'$th->getMessage());
  81.             }
  82.             return $this->redirectToRoute('establishment_index', [], Response::HTTP_SEE_OTHER);
  83.         }
  84.         return $this->renderForm('administration/establishment/new.html.twig', [
  85.             'establishment' => $establishment,
  86.             'form' => $form,
  87.         ]);
  88.     }
  89.     /**
  90.      * @Route("/{id}/show", name="establishment_show", methods={"GET"})
  91.      */
  92.     public function show(Establishment $establishment): Response
  93.     {
  94.         return $this->render('administration/establishment/show.html.twig', [
  95.             'establishment' => $establishment,
  96.         ]);
  97.     }
  98.     /**
  99.      * @Route("/{id}/edit", name="establishment_edit", methods={"GET","POST"})
  100.      */
  101.     public function edit(Request $requestEstablishment $establishmentEstablishmentRepository $establishmentRepository): Response
  102.     {
  103.         /**@var User $user */
  104.         $user $this->getUser();
  105.         $schoolYear $user->getSchoolYear();
  106.         $_establishment $user->getEstablishment();
  107.         $establishmentGroup $_establishment->getEstablishmentGroup();
  108.         
  109.         $establishments $establishmentRepository->createQueryBuilder('entity')
  110.         ->andWhere('entity.establishmentGroup = :establishmentGroup')
  111.         ->setParameter('establishmentGroup'$establishmentGroup)
  112.         ->orderBy('entity.id''DESC')
  113.         ->getQuery()
  114.         ->getResult();
  115.         $form $this->createForm(EstablishmentType::class, $establishment)
  116.         /* ->add('parent', EntityType::class, [
  117.             'class' => Establishment::class,
  118.             'choices' => $establishments,
  119.             'required' => false
  120.         ]) */;
  121.         $form->handleRequest($request);
  122.         if ($form->isSubmitted() && $form->isValid()) {
  123.             try {
  124.                 $this->getDoctrine()->getManager()->flush();
  125.                 $this->addFlash('success'"l'établissement à été édité.");
  126.             } catch (\Throwable $th) {
  127.                 $this->addFlash('warning'"Une erreure est survenue lors de l'édition de l'établissement.");
  128.                 $this->addFlash('info'$th->getMessage());
  129.             }
  130.             return $this->redirectToRoute('establishment_index', [], Response::HTTP_SEE_OTHER);
  131.         }
  132.         return $this->renderForm('administration/establishment/edit.html.twig', [
  133.             'establishment' => $establishment,
  134.             'form' => $form,
  135.         ]);
  136.     }
  137.     /**
  138.      * @Route("/delete-selection", name="establishments_selected_delete", methods={"GET"})
  139.     */
  140.     public function deleteSelected(Request $requestEstablishmentRepository $entityRepository): Response
  141.     {
  142.         $list $request->get('entities');
  143.         $entityManager $this->getDoctrine()->getManager();
  144.         $errors 0;
  145.         foreach ($list as $key => $id) {
  146.             $entity $entityRepository->findOneBy(['id' => intval($id)], []);
  147.             if ($entity != null) {
  148.                 if (count($entity->getRhSalaries()) <= && count($entity->getUsers()) <= 0) {
  149.                     $entityManager->remove($entity);
  150.                 }
  151.             }
  152.         }
  153.         try {
  154.             $entityManager->flush();
  155.             $this->addFlash('success'"Traitement effectué");
  156.             return $this->json(['code' => 200'message' => "Traitement effectué :)"], 200);
  157.         } catch (\Throwable $th) {
  158.             //$th->getMessage()
  159.             $this->addFlash('warning'$th->getMessage());
  160.         }
  161.         
  162.         $this->addFlash('warning'"Traitement non effectué");
  163.         return $this->json(['code' => 500'message' => "Traitement non effectué"], 200);
  164.     }
  165. }