src/Controller/HomeController.php line 322

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\DepotFichier;
  4. use App\Form\DepotFichierRegionType;
  5. use App\Form\DepotFichierDeptType;
  6. use App\Form\DepotFichierEpciType;
  7. use App\Form\DepotFichierComType;
  8. use App\Model\HelperModel;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\HttpFoundation\JsonResponse;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  15. use Symfony\Component\HttpFoundation\RequestStack;
  16. use Doctrine\ORM\EntityManager;
  17. use Doctrine\Persistence\ManagerRegistry as PersistenceManagerRegistry;
  18. use Doctrine\ORM\EntityManagerInterface;
  19. use Symfony\Component\Notifier\ChatterInterface;
  20. use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
  21. use Symfony\Component\Serializer\SerializerInterface;
  22. use Twig\Environment;
  23. use Symfony\Component\String\Slugger\SluggerInterface;
  24. class HomeController extends AbstractController
  25. {
  26.     protected $loader;
  27.     public function __construct(Environment $twig)
  28.     {
  29.         $this->loader $twig->getLoader();
  30.     }
  31.     #[Route('/'name'home')]
  32.     public function index(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  33.     {        
  34.         return $this->render('index.html.twig');
  35.     }
  36.     #[Route('/depot-fichier-region'name'depot_fichier_region')]
  37.     public function depotFichierRegion(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  38.     {
  39.         $depotFichier = new DepotFichier();
  40.         $form $this->createForm(DepotFichierRegionType::class, $depotFichier, [
  41.             'attr' => array(
  42.                 'id' => 'form-create',
  43.                 'novalidate' => 'novalidate',
  44.                 'class' => 'parsley-examples'
  45.             ),
  46.             'allow_extra_fields' => true,
  47.             'action' => $this->generateUrl('depot_success_region'),
  48.         ]);
  49.         $form->handleRequest($request);
  50.         /*if ($form->isSubmitted() && $form->isValid()) {
  51.             $depotFichier = $form->getData();
  52.             dd($request);
  53.         }*/
  54.         return $this->render('depot_fichier_region.html.twig', [
  55.             'form' => $form->createView(),
  56.         ]);
  57.     }
  58.     #[Route('/depot-success-region'name'depot_success_region')]
  59.     public function depotSuccessRegion(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  60.     {
  61.         $depotFichier = new DepotFichier();
  62.         $form $this->createForm(DepotFichierRegionType::class, $depotFichier, [
  63.             'attr' => array(
  64.                 'id' => 'form-create',
  65.                 'novalidate' => 'novalidate',
  66.             ),
  67.             'allow_extra_fields' => true,
  68.             'action' => $this->generateUrl('depot_success_region'),
  69.         ]);
  70.         $form->handleRequest($request);
  71.         if ($form->isSubmitted()) {
  72.             $depotFichier $form->getData();
  73.             if($depotFichier->getIdentifiantCollectivite() == null){
  74.                 $idCollectivite '94';
  75.             }else{
  76.                 $idCollectivite $depotFichier->getIdentifiantCollectivite();
  77.             }
  78.             $repository $entityManager->getRepository(DepotFichier::class);
  79.             $depotFichierRes $repository->findOneBy(['identifiantCollectivite' => $idCollectivite],array('dateDepot' => 'DESC'));
  80.             return $this->render('depot_success.html.twig',[
  81.                 'depotFichier' => $depotFichierRes
  82.             ]);   
  83.         }        
  84.     }
  85.     #[Route('/depot-success-dept'name'depot_success_dept')]
  86.     public function depotSuccessDept(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  87.     {
  88.         $depotFichier = new DepotFichier();
  89.         $form $this->createForm(DepotFichierDeptType::class, $depotFichier, [
  90.             'attr' => array(
  91.                 'id' => 'form-create',
  92.                 'novalidate' => 'novalidate',
  93.             ),
  94.             'allow_extra_fields' => true,
  95.             'action' => $this->generateUrl('depot_success_dept'),
  96.         ]);
  97.         $form->handleRequest($request);
  98.         if ($form->isSubmitted()) {
  99.             $depotFichier $form->getData();
  100.             if($depotFichier->getIdentifiantCollectivite() == null){
  101.                 $idCollectivite '94';
  102.             }else{
  103.                 $idCollectivite $depotFichier->getIdentifiantCollectivite();
  104.             }
  105.             $repository $entityManager->getRepository(DepotFichier::class);
  106.             $depotFichierRes $repository->findOneBy(['identifiantCollectivite' => $idCollectivite],array('dateDepot' => 'DESC'));
  107.             return $this->render('depot_success.html.twig',[
  108.                 'depotFichier' => $depotFichierRes
  109.             ]);   
  110.         }        
  111.     }
  112.     #[Route('/depot-success-epci'name'depot_success_epci')]
  113.     public function depotSuccessEpci(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  114.     {
  115.         $depotFichier = new DepotFichier();
  116.         $form $this->createForm(DepotFichierEpciType::class, $depotFichier, [
  117.             'attr' => array(
  118.                 'id' => 'form-create',
  119.                 'novalidate' => 'novalidate',
  120.             ),
  121.             'allow_extra_fields' => true,
  122.             'action' => $this->generateUrl('depot_success_epci'),
  123.         ]);
  124.         $form->handleRequest($request);
  125.         if ($form->isSubmitted()) {
  126.             $depotFichier $form->getData();
  127.             if($depotFichier->getIdentifiantCollectivite() == null){
  128.                 $idCollectivite '94';
  129.             }else{
  130.                 $idCollectivite $depotFichier->getIdentifiantCollectivite();
  131.             }
  132.             $repository $entityManager->getRepository(DepotFichier::class);
  133.             $depotFichierRes $repository->findOneBy(['identifiantCollectivite' => $idCollectivite],array('dateDepot' => 'DESC'));
  134.             return $this->render('depot_success.html.twig',[
  135.                 'depotFichier' => $depotFichierRes
  136.             ]);   
  137.         }        
  138.     }
  139.     #[Route('/depot-success-com'name'depot_success_com')]
  140.     public function depotSuccessCom(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  141.     {
  142.         $depotFichier = new DepotFichier();
  143.         $form $this->createForm(DepotFichierComType::class, $depotFichier, [
  144.             'attr' => array(
  145.                 'id' => 'form-create',
  146.                 'novalidate' => 'novalidate',
  147.             ),
  148.             'allow_extra_fields' => true,
  149.             'action' => $this->generateUrl('depot_success_com'),
  150.         ]);
  151.         $form->handleRequest($request);
  152.         if ($form->isSubmitted()) {
  153.             $depotFichier $form->getData();
  154.             if($depotFichier->getIdentifiantCollectivite() == null){
  155.                 $idCollectivite '94';
  156.             }else{
  157.                 $idCollectivite $depotFichier->getIdentifiantCollectivite();
  158.             }
  159.             $repository $entityManager->getRepository(DepotFichier::class);
  160.             $depotFichierRes $repository->findOneBy(['identifiantCollectivite' => $idCollectivite],array('dateDepot' => 'DESC'));
  161.             return $this->render('depot_success.html.twig',[
  162.                 'depotFichier' => $depotFichierRes
  163.             ]);   
  164.         }        
  165.     }
  166.     #[Route('/upload-fichier-region'name'upload_fichier_region')]
  167.     public function uploadFichierRegion(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $sluggerHelperModel $helperModel): JsonResponse
  168.     {
  169.         $myfile $request->files->get('file');
  170.         // this condition is needed because the 'brochure' field is not required
  171.         // so the PDF file must be processed only when a file is uploaded
  172.         if ($myfile) {
  173.             $originalFilename pathinfo($myfile->getClientOriginalName(), PATHINFO_FILENAME);
  174.             // this is needed to safely include the file name as part of the URL
  175.             $safeFilename 'reg-94-corse-'.time();
  176.             $newFilename $safeFilename.'.'.$myfile->guessExtension();
  177.             // Move the file to the directory where brochures are stored
  178.             try {
  179.                 $helperModel->addUnimportedDocumentAzure("fichiers/"$myfile$newFilename);
  180.                 $myfile->move(
  181.                     $this->getParameter('upload_directory'),
  182.                     $newFilename
  183.                 );
  184.                 $depotFichier = new Depotfichier();
  185.                 $depotFichier->setPrenom($request->get('prenom'));
  186.                 $depotFichier->setNom($request->get('nom'));
  187.                 $depotFichier->setFonction($request->get('fonction'));
  188.                 $depotFichier->setEmail($request->get('email'));
  189.                 $depotFichier->setTelephone($request->get('telephone'));
  190.                 $depotFichier->setTypeCollectivite('region');
  191.                 $depotFichier->setIdentifiantCollectivite('94');
  192.                 $depotFichier->setIp($request->getClientIp());
  193.                 $depotFichier->setDateDepot(new \DateTimeImmutable("now"));
  194.                 $depotFichier->setFichier($newFilename);
  195.                 $depotFichier->setOriginalFilename($myfile->getClientOriginalName());
  196.                 $entityManager->persist($depotFichier);
  197.                 $entityManager->flush();
  198.                 return $this->json($depotFichier->getId(), $status 200$headers = [], $context = []);
  199.             } catch (FileException $e) {
  200.                 return $this->json($e$status 500$headers = [], $context = []);
  201.             }
  202.             
  203.         }
  204.     }
  205.     #[Route('/check-region-exist/{depotFichier}'name'check_region_exist')]
  206.     public function checkFichierRegion(DepotFichier $depotFichierEntityManagerInterface $entityManagerRequest $requestSluggerInterface $sluggerHelperModel $helperModel): bool
  207.     {
  208.         $repository $entityManager->getRepository(DepotFichier::class);
  209.         $depotFichierRes $repository->findOneBy(['id' => $depotFichier]);
  210.         if($depotFichierRes != null){
  211.             return true;
  212.         }else{
  213.             return false;
  214.         }
  215.     }
  216.     #[Route('/depot-fichier-dept'name'depot_fichier_dept')]
  217.     public function depotFichierDept(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  218.     {
  219.         $depotFichier = new DepotFichier();
  220.         $form $this->createForm(DepotFichierDeptType::class, $depotFichier, [
  221.             'attr' => array(
  222.                 'id' => 'form-create',
  223.                 'novalidate' => 'novalidate',
  224.                 'class' => 'parsley-form-dept'
  225.             ),
  226.             'action' => $this->generateUrl('depot_success_dept'),
  227.         ]);
  228.         return $this->render('depot_fichier_dept.html.twig', [
  229.             'form' => $form->createView(),
  230.         ]);
  231.     }
  232.     #[Route('/upload-fichier-dept'name'upload_fichier_dept')]
  233.     public function uploadFichierDept(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $sluggerHelperModel $helperModel): JsonResponse
  234.     {
  235.         $myfile $request->files->get('file');
  236.         // this condition is needed because the 'brochure' field is not required
  237.         // so the PDF file must be processed only when a file is uploaded
  238.         if ($myfile) {
  239.             $originalFilename pathinfo($myfile->getClientOriginalName(), PATHINFO_FILENAME);
  240.             // this is needed to safely include the file name as part of the URL
  241.             $safeFilename 'dept-'.$request->get('identifiantCollectivite').'-'.time();
  242.             $newFilename $safeFilename.'.'.$myfile->guessExtension();
  243.             // Move the file to the directory where brochures are stored
  244.             try {
  245.                 $helperModel->addUnimportedDocumentAzure("fichiers/"$myfile$newFilename);
  246.                 $myfile->move(
  247.                     $this->getParameter('upload_directory'),
  248.                     $newFilename
  249.                 );
  250.                 $depotFichier = new Depotfichier();
  251.                 $depotFichier->setPrenom($request->get('prenom'));
  252.                 $depotFichier->setNom($request->get('nom'));
  253.                 $depotFichier->setFonction($request->get('fonction'));
  254.                 $depotFichier->setEmail($request->get('email'));
  255.                 $depotFichier->setTelephone($request->get('telephone'));
  256.                 $depotFichier->setTypeCollectivite('dept');
  257.                 $depotFichier->setIdentifiantCollectivite($request->get('identifiantCollectivite'));
  258.                 $depotFichier->setIp($request->getClientIp());
  259.                 $depotFichier->setDateDepot(new \DateTimeImmutable("now"));
  260.                 $depotFichier->setFichier($newFilename);
  261.                 $depotFichier->setOriginalFilename($myfile->getClientOriginalName());
  262.                 $entityManager->persist($depotFichier);
  263.                 $entityManager->flush();
  264.                 
  265.             } catch (FileException $e) {
  266.                 return $this->json($e$status 500$headers = [], $context = []);
  267.             }
  268.             return $this->json('success'$status 200$headers = [], $context = []);
  269.         }
  270.     }
  271.     #[Route('/check-exist/{depotFichier}'name'check_exist')]
  272.     public function checkDepotExist($depotFichierEntityManagerInterface $entityManager): JsonResponse
  273.     {
  274.         $repository $entityManager->getRepository(DepotFichier::class);
  275.         $depotFichierRes $repository->findOneBy(['identifiantCollectivite' => $depotFichier],['dateDepot' => 'DESC']);
  276.         if($depotFichierRes != null){
  277.             return $this->json($depotFichierRes$status 200$headers = [], $context = []);
  278.         }else{
  279.             return $this->json('not-exist'$status 200$headers = [], $context = []);
  280.         }
  281.     }
  282.     #[Route('/depot-fichier-epci'name'depot_fichier_epci')]
  283.     public function depotFichierEpci(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  284.     {
  285.         $depotFichier = new DepotFichier();
  286.         $form $this->createForm(DepotFichierEpciType::class, $depotFichier, [
  287.             'attr' => array(
  288.                 'id' => 'form-create',
  289.                 'novalidate' => 'novalidate',
  290.                 'class' => 'parsley-examples'
  291.             ),
  292.             'action' => $this->generateUrl('depot_success_epci'),
  293.         ]);
  294.         return $this->render('depot_fichier_epci.html.twig', [
  295.             'form' => $form->createView(),
  296.         ]);
  297.     }
  298.     #[Route('/upload-fichier-epci'name'upload_fichier_epci')]
  299.     public function uploadFichierEpci(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $sluggerHelperModel $helperModel): JsonResponse
  300.     {
  301.         $myfile $request->files->get('file');
  302.         // this condition is needed because the 'brochure' field is not required
  303.         // so the PDF file must be processed only when a file is uploaded
  304.         if ($myfile) {
  305.             $originalFilename pathinfo($myfile->getClientOriginalName(), PATHINFO_FILENAME);
  306.             // this is needed to safely include the file name as part of the URL
  307.             $safeFilename 'epci-'.$request->get('identifiantCollectivite').'-'.time();
  308.             $newFilename $safeFilename.'.'.$myfile->guessExtension();
  309.             // Move the file to the directory where brochures are stored
  310.             try {
  311.                 $helperModel->addUnimportedDocumentAzure("fichiers/"$myfile$newFilename);
  312.                 $myfile->move(
  313.                     $this->getParameter('upload_directory'),
  314.                     $newFilename
  315.                 );
  316.                 $depotFichier = new Depotfichier();
  317.                 $depotFichier->setPrenom($request->get('prenom'));
  318.                 $depotFichier->setNom($request->get('nom'));
  319.                 $depotFichier->setFonction($request->get('fonction'));
  320.                 $depotFichier->setEmail($request->get('email'));
  321.                 $depotFichier->setTelephone($request->get('telephone'));
  322.                 $depotFichier->setTypeCollectivite('epci');
  323.                 $depotFichier->setIdentifiantCollectivite($request->get('identifiantCollectivite'));
  324.                 $depotFichier->setIp($request->getClientIp());
  325.                 $depotFichier->setDateDepot(new \DateTimeImmutable("now"));
  326.                 $depotFichier->setFichier($newFilename);
  327.                 $depotFichier->setOriginalFilename($myfile->getClientOriginalName());
  328.                 $entityManager->persist($depotFichier);
  329.                 $entityManager->flush();
  330.                 
  331.             } catch (FileException $e) {
  332.                 return $this->json($e$status 500$headers = [], $context = []);
  333.             }
  334.             return $this->json('success'$status 200$headers = [], $context = []);
  335.         }
  336.     }
  337.     #[Route('/depot-fichier-commune'name'depot_fichier_com')]
  338.     public function depotFichierCommune(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $slugger): Response
  339.     {
  340.         $depotFichier = new DepotFichier();
  341.         $form $this->createForm(DepotFichierComType::class, $depotFichier, [
  342.             'attr' => array(
  343.                 'id' => 'form-create',
  344.                 'novalidate' => 'novalidate',
  345.             ),
  346.             'action' => $this->generateUrl('depot_success_com'),
  347.         ]);
  348.         return $this->render('depot_fichier_com.html.twig', [
  349.             'form' => $form->createView(),
  350.         ]);
  351.     }
  352.     #[Route('/upload-fichier-com'name'upload_fichier_com')]
  353.     public function uploadFichierCom(EntityManagerInterface $entityManagerRequest $requestSluggerInterface $sluggerHelperModel $helperModel): JsonResponse
  354.     {
  355.         $myfile $request->files->get('file');
  356.         // this condition is needed because the 'brochure' field is not required
  357.         // so the PDF file must be processed only when a file is uploaded
  358.         if ($myfile) {
  359.             $originalFilename pathinfo($myfile->getClientOriginalName(), PATHINFO_FILENAME);
  360.             // this is needed to safely include the file name as part of the URL
  361.             $safeFilename 'com-'.$request->get('identifiantCollectivite').'-'.time();
  362.             $newFilename $safeFilename.'.'.$myfile->guessExtension();
  363.             // Move the file to the directory where brochures are stored
  364.             try {
  365.                 $helperModel->addUnimportedDocumentAzure("fichiers/"$myfile$newFilename);
  366.                 $myfile->move(
  367.                     $this->getParameter('upload_directory'),
  368.                     $newFilename
  369.                 );
  370.                 $depotFichier = new Depotfichier();
  371.                 $depotFichier->setPrenom($request->get('prenom'));
  372.                 $depotFichier->setNom($request->get('nom'));
  373.                 $depotFichier->setFonction($request->get('fonction'));
  374.                 $depotFichier->setEmail($request->get('email'));
  375.                 $depotFichier->setTelephone($request->get('telephone'));
  376.                 $depotFichier->setTypeCollectivite('com');
  377.                 $depotFichier->setIdentifiantCollectivite($request->get('identifiantCollectivite'));
  378.                 $depotFichier->setIp($request->getClientIp());
  379.                 $depotFichier->setDateDepot(new \DateTimeImmutable("now"));
  380.                 $depotFichier->setFichier($newFilename);
  381.                 $depotFichier->setOriginalFilename($myfile->getClientOriginalName());
  382.                 $entityManager->persist($depotFichier);
  383.                 $entityManager->flush();
  384.                 
  385.             } catch (FileException $e) {
  386.                 return $this->json($e$status 500$headers = [], $context = []);
  387.             }
  388.             return $this->json('success'$status 200$headers = [], $context = []);
  389.         }
  390.     }
  391.     /*#[Route('/{path}')]
  392.     public function root($path)
  393.     {
  394.         if ($this->loader->exists('poubelle/'.$path.'.html.twig')) {
  395.             if ($path == '/' || $path == 'home') {
  396.                 die('Home');
  397.             }
  398.             return $this->render('poubelle/'.$path.'.html.twig');
  399.         }
  400.         throw $this->createNotFoundException();
  401.     }*/
  402. }