src/Controller/MainController.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Atelier;
  4. use App\Entity\CategorieFamille;
  5. use App\Entity\CategorieMetier;
  6. use App\Entity\Droit;
  7. use App\Entity\GroupesUtilisateur;
  8. use App\Entity\MoisSemaine;
  9. use App\Entity\NombreOperationPreserie;
  10. use App\Entity\Operation;
  11. use App\Entity\ParametrageEchantillon;
  12. use App\Entity\SouscategorieMetier;
  13. use App\Entity\TableauMesureLibelle;
  14. use App\Entity\TypeMail;
  15. use App\Form\AtelierType;
  16. use App\Form\DroitType;
  17. use App\Form\OperationType;
  18. use App\Form\ProfilType;
  19. use App\Form\TableauMesureLibelleType;
  20. use App\Form\TypeMailType;
  21. use App\Form\UserType;
  22. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  23. use Doctrine\ORM\EntityManagerInterface;
  24. use Symfony\Component\HttpFoundation\Request;
  25. use Symfony\Component\Routing\Annotation\Route;
  26. use App\Service\DatatablesService;
  27. use Symfony\Component\HttpFoundation\JsonResponse;
  28. use Symfony\Component\HttpKernel\KernelInterface;
  29. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  30. use App\Entity\User;
  31. /**
  32.  * @method User getUser()
  33.  */
  34. class MainController extends AbstractController
  35. {
  36.     protected $params = [];
  37.     public function __construct(private EntityManagerInterface $em, private DatatablesService $datatables_service, private UserPasswordHasherInterface $encoder,
  38.         private KernelInterface $kernel)
  39.     {
  40.         $this->params['leftbar_open'] = 'parametrages';
  41.         $this->params['leftbar_open_2'] = null;
  42.         $this->params['title'] = null;
  43.     }   
  44.     public function redirect_home(Request $request){
  45.         return $this->redirectToRoute('index');
  46.     }
  47.     #[Route(path'/'name'index')]
  48.     public function index(Request $request)
  49.     {
  50.         return $this->render('index.html.twig'$this->params);
  51.     }
  52.     #[Route(path'/profil'name'profil')]
  53.     public function profil(Request $request)
  54.     {
  55.         $this->params['title'] = 'Mon profil';
  56.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  57.         $object $this->em->getRepository(User::class)->find($this->getUser()->getId());
  58.         $form $this->createForm(ProfilType::class, $object);
  59.         $form->handleRequest($request);
  60.         if ($form->isSubmitted() && $form->isValid()) {
  61.         $object $form->getData();
  62.         if ($object->getPlainPassword() != "" && $object->getPlainPassword() != null) {
  63.             $encodedPassword $this->encoder->hashPassword($object$object->getPlainPassword());//, $object->getSalt()
  64.             $object->setPassword($encodedPassword);
  65.         }
  66.         $this->em->persist($object);
  67.         $this->em->flush();
  68.         return new JsonResponse(['success' => true]);
  69.         }
  70.         $this->params['form'] = $form->createView();
  71.         return $this->render('Parametrages/profil.html.twig'$this->params);
  72.     }
  73.     #[Route(path'/parametrages/menus'name'menus')]
  74.     public function menus(Request $request)
  75.     {
  76.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  77.         $table $this->datatables_service->getTableDroits()->handleRequest($request);
  78.         if ($table->isCallback()) {
  79.         return $table->getResponse();
  80.         }
  81.         $this->params['datatable'] = $table;
  82.         return $this->render('Parametrages/menus.html.twig'$this->params);
  83.     }
  84.     #[Route(path'/parametrages/droits'name'droits')]
  85.     public function droits(Request $request)
  86.     {
  87.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  88.         $table_users $this->datatables_service->getDatatableDroits()->handleRequest($request);
  89.         if ($table_users->isCallback()) {
  90.         return $table_users->getResponse();
  91.         }
  92.         $this->params['datatable'] = $table_users;
  93.         return $this->render('Parametrages/droits.html.twig'$this->params);
  94.     }
  95.     #[Route(path'/parametrages/droit/{slug}'name'droit'defaults: ['slug' => 0])]
  96.     public function droit(Request $request$slug)
  97.     {
  98.         //Créer form
  99.         $droit $this->em->getRepository(Droit::class)->find($slug);
  100.         $form $this->createForm(DroitType::class, $droit);
  101.         $form->handleRequest($request);
  102.         if ($form->isSubmitted() && $form->isValid()) {
  103.             $object $form->getData();
  104.             $this->em->persist($object);
  105.             $this->em->flush();
  106.             return $this->redirectToRoute('droits');
  107.         }
  108.         $this->params['form'] = $form->createView();
  109.         return $this->render('Parametrages/droit.html.twig'$this->params);
  110.     }
  111.     #[Route(path'/gestion/utilisateurs'name'utilisateurs')]
  112.     public function utilisateurs(Request $request)
  113.     {
  114.         if($this->getUser()->getAtelier() != null){
  115.             return $this->redirectToRoute('utilisateurs_atelier');
  116.         }
  117.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  118.         $table_users $this->datatables_service->getDatatableUsers($request->request$this->getUser())->handleRequest($request);
  119.         if ($table_users->isCallback()) {
  120.         return $table_users->getResponse();
  121.         }
  122.         $this->params['datatable'] = $table_users;
  123.         return $this->render('Parametrages/utilisateurs.html.twig'$this->params);
  124.     }
  125.     #[Route(path'/gestion/utilisateur/{slug}'name'utilisateur'defaults: ['slug' => 0])]
  126.     public function utilisateur(Request $request$slug)
  127.     {
  128.         $this->params['title'] = 'Utilisateur';
  129.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  130.         $object = new User();
  131.         if ($slug != 0) {
  132.         $object $this->em->getRepository(User::class)->find($slug);
  133.         }
  134.         $form $this->createForm(UserType::class, $object);
  135.         $form->handleRequest($request);
  136.         if ($form->isSubmitted() && $form->isValid()) {
  137.             $object $form->getData();
  138.             if ($object->getPlainPassword() != "" && $object->getPlainPassword() != null) {
  139.                 //$encoder = $this->encoder->getEncoder($object);
  140.                 $encodedPassword $this->encoder->hashPassword($object$object->getPlainPassword());//, $object->getSalt()
  141.                 $object->setPassword($encodedPassword);
  142.             }
  143.             $this->em->persist($object);
  144.             $this->em->flush();
  145.             return $this->redirectToRoute('utilisateurs');
  146.         }
  147.         $this->params['droit'] = null;
  148.         /*if($this->getUser()->getFournisseur() != null){
  149.         $this->params['droit'] = 'fournisseur';
  150.         }*/
  151.         $this->params['form'] = $form->createView();
  152.         return $this->render('Parametrages/utilisateur.html.twig'$this->params);
  153.     }
  154.     #[Route(path'/parametrages/typemails'name'type_mails')]
  155.     public function typemails(Request $request)
  156.     {
  157.         $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  158.         $table $this->datatables_service->getDatatableTypeMails()->handleRequest($request);
  159.         if ($table->isCallback()) {
  160.         return $table->getResponse();
  161.         }
  162.         $this->params['datatable'] = $table;
  163.         return $this->render('Parametrages/typemails.html.twig'$this->params);
  164.     }
  165.     #[Route(path'/parametrages/typemail/{slug}'name'type_mail'defaults: ['slug' => 0])]
  166.     public function typemail(Request $request$slug)
  167.     {
  168.         $this->params['title'] = 'Type mail';
  169.         $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  170.         $object = new TypeMail();
  171.         if ($slug != 0) {
  172.         $object $this->em->getRepository(TypeMail::class)->find($slug);
  173.         }
  174.         $form $this->createForm(TypeMailType::class, $object);
  175.         $form->handleRequest($request);
  176.         if ($form->isSubmitted() && $form->isValid()) {
  177.         $object $form->getData();
  178.         $this->em->persist($object);
  179.         $this->em->flush();
  180.         return $this->redirectToRoute('type_mails');
  181.         }
  182.         $this->params['form'] = $form->createView();
  183.         return $this->render('Parametrages/typemail.html.twig'$this->params);
  184.     }
  185.     #[Route(path'/parametrages/groupes_utilisateurs'name'groupes_utilisateurs')]
  186.     public function groupes_utilisateurs(Request $request)
  187.     {
  188.         $params $request->request;
  189.         $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  190.         $table $this->datatables_service->getDatatableGroupesUtilisateurs($params)->handleRequest($request);
  191.         if ($table->isCallback()) {
  192.         return $table->getResponse();
  193.         }
  194.         $this->params['datatable'] = $table;
  195.         $this->params['groupes'] = $this->em->getRepository(GroupesUtilisateur::class)->getAll();
  196.         $this->params['utilisateurs'] = $this->em->getRepository(User::class)->getAll();
  197.         return $this->render('Parametrages/groupesutilisateurs.html.twig'$this->params);
  198.     }
  199.     #[Route(path'/parametrages/groupes_type_mails'name'groupes_type_mails')]
  200.     public function groupes_type_mails(Request $request)
  201.     {
  202.         $params $request->request;
  203.         $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  204.         $table $this->datatables_service->getDatatableLightTypeMails()->handleRequest($request);
  205.         if ($table->isCallback()) {
  206.         return $table->getResponse();
  207.         }
  208.         $table_groupes $this->datatables_service->getDatatableGroupes($params)->handleRequest($request);
  209.         if ($table_groupes->isCallback()) {
  210.         return $table_groupes->getResponse();
  211.         }
  212.         $table_copie_groupes $this->datatables_service->getDatatableGroupesCopie($params)->handleRequest($request);
  213.         if ($table_copie_groupes->isCallback()) {
  214.         return $table_copie_groupes->getResponse();
  215.         }
  216.         $this->params['datatable'] = $table;
  217.         $this->params['datatable_groupe'] = $table_groupes;
  218.         $this->params['datatable_copie_groupes'] = $table_copie_groupes;
  219.         $this->params['groupes'] = $this->em->getRepository(GroupesUtilisateur::class)->getAll();
  220.         return $this->render('Parametrages/groupestypemails.html.twig'$this->params);
  221.     }
  222.     #[Route(path'/parametrages/mailing'name'mailing')]
  223.     public function mailing(Request $request)
  224.     {
  225.         $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  226.         $table $this->datatables_service->getDatatableMailing($request->request)->handleRequest($request);
  227.         if ($table->isCallback()) {
  228.         return $table->getResponse();
  229.         }
  230.         $this->params['datatable'] = $table;
  231.         return $this->render('Parametrages/mailing.html.twig'$this->params);
  232.     }
  233.     #[Route(path'/parametrages/operations'name'operations')]
  234.     public function operations(Request $request)
  235.     {
  236.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  237.         $table $this->datatables_service->getDatatableOperations($request->request)->handleRequest($request);
  238.         if ($table->isCallback()) {
  239.             return $table->getResponse();
  240.         }
  241.         $this->params['datatable'] = $table;
  242.         return $this->render('Parametrages/operations.html.twig'$this->params);
  243.     }
  244.     #[Route(path'/parametrages/operation/{slug}'name'operation'defaults: ['slug' => 0])]
  245.     public function operation(Request $request$slug)
  246.     {
  247.         $this->params['title'] = 'Opération';
  248.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  249.         $object = new Operation();
  250.         if ($slug != 0) {
  251.             $object $this->em->getRepository(Operation::class)->find($slug);
  252.         }
  253.         $form $this->createForm(OperationType::class, $object);
  254.         $form->handleRequest($request);
  255.         if ($form->isSubmitted() && $form->isValid()) {
  256.             $object $form->getData();
  257.             $this->em->persist($object);
  258.             $this->em->flush();
  259.             return $this->redirectToRoute('operations');
  260.         }
  261.         $this->params['form'] = $form->createView();
  262.         return $this->render('Parametrages/operation.html.twig'$this->params);
  263.     }
  264.     #[Route(path'/parametrages/mesures'name'mesures')]
  265.     public function mesures(Request $request){
  266.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  267.         $table $this->datatables_service->getDatatableMesures($request->request)->handleRequest($request);
  268.         if ($table->isCallback()) {
  269.             return $table->getResponse();
  270.         }
  271.         $this->params['datatable'] = $table;
  272.         return $this->render('Parametrages/mesures.html.twig'$this->params);
  273.     }
  274.     #[Route(path'/parametrages/mesure/{slug}'name'mesure'defaults: ['slug' => 0])]
  275.     public function mesure(Request $request$slug)
  276.     {
  277.         $this->params['title'] = 'Mesure';
  278.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  279.         $object = new TableauMesureLibelle();
  280.         if ($slug != 0) {
  281.             $object $this->em->getRepository(TableauMesureLibelle::class)->find($slug);
  282.         }
  283.         $form $this->createForm(TableauMesureLibelleType::class, $object);
  284.         $form->handleRequest($request);
  285.         if ($form->isSubmitted() && $form->isValid()) {
  286.             $object $form->getData();
  287.             $this->em->persist($object);
  288.             $this->em->flush();
  289.             return $this->redirectToRoute('mesures');
  290.         }
  291.         $this->params['form'] = $form->createView();
  292.         return $this->render('Parametrages/mesure.html.twig'$this->params);
  293.     }
  294.     #[Route(path'/parametrages/categoriesmetiers'name'categoriesmetiers')]
  295.     public function categoriesmetiers(Request $request)
  296.     {
  297.         $this->params['title'] = 'Catégories/Sous catégorie métier';
  298.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  299.         //Categorie
  300.         $table_categorie_metier $this->datatables_service->getDatatableCategorieMetiers($request->request)->handleRequest($request);
  301.         if ($table_categorie_metier->isCallback()) {
  302.             return $table_categorie_metier->getResponse();
  303.         }
  304.         $this->params['datatable_categorie_metier'] = $table_categorie_metier;
  305.         //Sous categorie
  306.         $table_souscategorie_metier $this->datatables_service->getDatatableSousCategorieMetiers($request->request)->handleRequest($request);
  307.         if ($table_souscategorie_metier->isCallback()) {
  308.             return $table_souscategorie_metier->getResponse();
  309.         }
  310.         $this->params['datatable_souscategorie_metier'] = $table_souscategorie_metier;
  311.         //lien categories / sous categorie
  312.         $table_lien_metier $this->datatables_service->getDatatableSousCategorieFromCategorie($request->request)->handleRequest($request);
  313.         if ($table_lien_metier->isCallback()) {
  314.             return $table_lien_metier->getResponse();
  315.         }
  316.         $this->params['datatable_lien_metier'] = $table_lien_metier;
  317.         return $this->render('Parametrages/categoriesmetiers.html.twig'$this->params);
  318.     }
  319.     
  320.     #[Route(path'/parametrages/familles'name'familles')]
  321.     public function familles(Request $request){
  322.         $this->params['categories'] = $this->em->getRepository(CategorieMetier::class)->findAll();
  323.         //Familles
  324.         $table_familles $this->datatables_service->getDatatableFamilles($request->request)->handleRequest($request);
  325.         if ($table_familles->isCallback()) {
  326.             return $table_familles->getResponse();
  327.         }
  328.         $this->params['datatable_familles'] = $table_familles;
  329.         return $this->render('Parametrages/familles.html.twig'$this->params);
  330.     }
  331.     #[Route(path'/ajax/famille/save_nombre_operation'name'save_nombre_operation')]
  332.     public function save_nombre_operation(Request $request){
  333.         $categorie $this->em->getRepository(CategorieMetier::class)->find($request->request->get('categorie'));
  334.         $souscategorie $this->em->getRepository(SouscategorieMetier::class)->find($request->request->get('souscategorie'));
  335.         $nombre_operation $request->request->get('nombre_operation');
  336.         $obj_nombre_operation $this->em->getRepository(NombreOperationPreserie::class)->findOneBy(['categorie' => $categorie'souscategorie' => $souscategorie]);
  337.         if($obj_nombre_operation != null){
  338.             $obj_nombre_operation->setNombreOperation($nombre_operation);
  339.             $this->em->persist($obj_nombre_operation);
  340.             $this->em->flush();
  341.         }else{
  342.             $obj_nombre_operation = new NombreOperationPreserie;
  343.             $obj_nombre_operation
  344.             ->setCategorie($categorie)
  345.             ->setSouscategorie($souscategorie)
  346.             ->setNombreOperation($nombre_operation);
  347.             $this->em->persist($obj_nombre_operation);
  348.             $this->em->flush();
  349.         }
  350.         return new JsonResponse(['success' => true]);
  351.     }
  352.     
  353.     #[Route(path'/ajax/famille/get_nombre_operation'name'get_nombre_operation')]
  354.     public function get_nombre_operation(Request $request){
  355.         $categorie $this->em->getRepository(CategorieMetier::class)->find($request->request->get('categorie'));
  356.         $souscategorie $this->em->getRepository(SouscategorieMetier::class)->find($request->request->get('souscategorie'));
  357.         $obj_nombre_operation $this->em->getRepository(NombreOperationPreserie::class)->findOneBy(['categorie' => $categorie'souscategorie' => $souscategorie]);
  358.         $nombre 0;
  359.         if($obj_nombre_operation != null){
  360.             $nombre $obj_nombre_operation->getNombreOperation();
  361.         }
  362.         return new JsonResponse(['success' => true'nombre_operation' => $nombre]);
  363.     }
  364.     #[Route(path'/parametrages/parametrage-echantillon'name'parametrageechantillon')]
  365.     public function parametrageechantillon(Request $request){
  366.         $this->params['title'] = 'Paramétrage échantillon';
  367.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  368.         $this->params['parametrages'] = $this->em->getRepository(ParametrageEchantillon::class)->findAll();
  369.         return $this->render('Parametrages/parametrageechantillon.html.twig'$this->params);
  370.     }
  371.     #[Route(path'/parametrages/categoriearticle'name'categoriearticle')]
  372.     public function categoriearticle(Request $request)
  373.     {
  374.         $this->params['title'] = 'Familles/Catégorie article';
  375.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  376.         //Familles
  377.         $table_familles $this->datatables_service->getDatatableFamilles($request->requesttrue)->handleRequest($request);
  378.         if ($table_familles->isCallback()) {
  379.             return $table_familles->getResponse();
  380.         }
  381.         $this->params['datatable_familles'] = $table_familles;
  382.         //Categorie article
  383.         $table_categoriearticle $this->datatables_service->getDatatableCategorieArticle($request->request)->handleRequest($request);
  384.         if ($table_categoriearticle->isCallback()) {
  385.             return $table_categoriearticle->getResponse();
  386.         }
  387.         $this->params['datatable_categoriearticle'] = $table_categoriearticle;
  388.         //lien categories / sous categorie
  389.         $table_lien_metier $this->datatables_service->getDatatableCategoriearticleFromFamille($request->request)->handleRequest($request);
  390.         if ($table_lien_metier->isCallback()) {
  391.             return $table_lien_metier->getResponse();
  392.         }
  393.         $this->params['datatable_lien'] = $table_lien_metier;
  394.         return $this->render('Parametrages/categoriesarticles.html.twig'$this->params);
  395.     }
  396.     #[Route(path'/parametrages/gestiondefaut'name'gestiondefaut')]
  397.     public function gestiondefaut(Request $request){
  398.         $this->params['title'] = 'Gestion des défauts';
  399.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  400.         //Défauts
  401.         $table_defauts $this->datatables_service->getDatatableDefaut($request->request)->handleRequest($request);
  402.         if ($table_defauts->isCallback()) {
  403.             return $table_defauts->getResponse();
  404.         }
  405.         $this->params['datatable_defauts'] = $table_defauts;
  406.         //Catégories defauts
  407.         $table_categoriedefauts $this->datatables_service->getDatatableCategorieDefaut($request->request)->handleRequest($request);
  408.         if ($table_categoriedefauts->isCallback()) {
  409.             return $table_categoriedefauts->getResponse();
  410.         }
  411.         $this->params['datatable_categoriedefauts'] = $table_categoriedefauts;
  412.         //lien categoriesdefaut / defauts
  413.         $table_lien $this->datatables_service->getDatatableDefautsFromCategorie($request->request)->handleRequest($request);
  414.         if ($table_lien->isCallback()) {
  415.             return $table_lien->getResponse();
  416.         }
  417.         $this->params['datatable_lien'] = $table_lien;
  418.         return $this->render('Parametrages/gestiondefaut.html.twig'$this->params);
  419.     }
  420.     #[Route(path'/parametrages/gestionfamilledefaut'name'gestionfamilledefaut')]
  421.     public function gestionfamilledefaut(Request $request){
  422.         $this->params['title'] = 'Gestion des défauts par famille';
  423.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  424.         //Catégories defauts
  425.         $table_categoriedefauts $this->datatables_service->getDatatableCategorieDefaut($request->requesttrue)->handleRequest($request);
  426.         if ($table_categoriedefauts->isCallback()) {
  427.             return $table_categoriedefauts->getResponse();
  428.         }
  429.         $this->params['datatable_categoriedefauts'] = $table_categoriedefauts;
  430.         //Familles
  431.         $table_familles $this->datatables_service->getDatatableFamilles($request->requesttrue)->handleRequest($request);
  432.         if ($table_familles->isCallback()) {
  433.             return $table_familles->getResponse();
  434.         }
  435.         $this->params['datatable_familles'] = $table_familles;
  436.         //lien categoriesdefaut / familles
  437.         $table_lien $this->datatables_service->getDatatableCategoriedefautFromFamille($request->request)->handleRequest($request);
  438.         if ($table_lien->isCallback()) {
  439.             return $table_lien->getResponse();
  440.         }
  441.         $this->params['datatable_lien'] = $table_lien;
  442.         return $this->render('Parametrages/gestionfamilledefaut.html.twig'$this->params);
  443.     }
  444.     #[Route(path'/parametrages/matricefamilledefaut'name'matricefamilledefaut')]
  445.     public function matricefamilledefaut(Request $request){
  446.         $this->params['title'] = 'Matrice des défauts';
  447.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  448.         $this->params['familles'] = $this->em->getRepository(CategorieFamille::class)->findAll();
  449.         return $this->render('Parametrages/matricedefaut.html.twig'$this->params);
  450.     }
  451.     #[Route(path'/parametrages/ateliers'name'ateliers')]
  452.     public function ateliers(Request $request)
  453.     {
  454.         $this->params['leftbar_open_2'] = 'parametrages_gestion';
  455.         $table_users $this->datatables_service->getDatatableAteliers()->handleRequest($request);
  456.         if ($table_users->isCallback()) {
  457.         return $table_users->getResponse();
  458.         }
  459.         $this->params['datatable'] = $table_users;
  460.         return $this->render('Parametrages/ateliers.html.twig'$this->params);
  461.     }
  462.     #[Route(path'/parametrages/atelier/{slug}'name'atelier'defaults: ['slug' => 0])]
  463.     public function atelier(Request $request$slug)
  464.     {
  465.         //Créer form
  466.         $droit $this->em->getRepository(Atelier::class)->find($slug);
  467.         $form $this->createForm(AtelierType::class, $droit);
  468.         $form->handleRequest($request);
  469.         if ($form->isSubmitted() && $form->isValid()) {
  470.             $object $form->getData();
  471.             $this->em->persist($object);
  472.             $this->em->flush();
  473.             return $this->redirectToRoute('ateliers');
  474.         }
  475.         $this->params['form'] = $form->createView();
  476.         return $this->render('Parametrages/atelier.html.twig'$this->params);
  477.     }
  478.     #[Route(path'/parametrages/moissemaines'name'moissemaines')]
  479.     public function moissemaines(Request $request)
  480.     {
  481.         $this->params['moissemaines'] = $this->em->getRepository(MoisSemaine::class)->findAll();
  482.         return $this->render('Parametrages/moissemaines.html.twig'$this->params);
  483.     }
  484.     #[Route(path'/ajax/parametrages/moissemaines'name'ajax_moissemaines')]
  485.     public function ajax_moissemaines(Request $request)
  486.     {
  487.         if($request->request->get('id') !== ''){
  488.             $mois $this->em->getRepository(MoisSemaine::class)->find($request->request->get('id'));
  489.             $mois->setSemaines($request->request->get('semaines'));
  490.             $this->em->persist($mois);
  491.         }else{
  492.             $numero_php 1;
  493.             switch($request->request->get('mois')){
  494.                 case 'janvier':
  495.                     $numero_php 1;
  496.                     break;
  497.                 case 'fevrier':
  498.                     $numero_php 2;
  499.                     break;
  500.                 case 'mars':
  501.                     $numero_php 3;
  502.                     break;
  503.                 case 'avril':
  504.                     $numero_php 4;
  505.                     break;
  506.                 case 'mai':
  507.                     $numero_php 5;
  508.                     break;
  509.                 case 'juin':
  510.                     $numero_php 6;
  511.                     break;
  512.                 case 'juillet':
  513.                     $numero_php 7;
  514.                     break;
  515.                 case 'aout':
  516.                     $numero_php 8;
  517.                     break;
  518.                 case 'septembre':
  519.                     $numero_php 9;
  520.                     break;
  521.                 case 'octobre':
  522.                     $numero_php 10;
  523.                     break;
  524.                 case 'novembre':
  525.                     $numero_php 11;
  526.                     break;
  527.                 case 'decembre':
  528.                     $numero_php 12;
  529.                     break;
  530.             }
  531.             $mois = new MoisSemaine;
  532.             $mois->setSemaines($request->request->get('semaines'))
  533.                 ->setMois($request->request->get('mois'))
  534.                 ->setAnnee($request->request->get('annee'))
  535.                 ->setNumeroPhp($numero_php)
  536.             ;
  537.             $this->em->persist($mois);
  538.         }
  539.         $this->em->flush();
  540.         return new JsonResponse(['success' => true'id' => $mois->getId()]);
  541.     }
  542.     #[Route(path'/ajax/parametrages/loadmoissemaines'name'ajax_loadmoissemaines')]
  543.     public function ajax_loadmoissemaines(Request $request)
  544.     {
  545.         $mois $this->em->getRepository(MoisSemaine::class)->getByAnnee($request->request->get('annee'));
  546.         return new JsonResponse(['success' => true'mois' => $mois]);
  547.     }
  548. }