src/Controller/Formations/Plannings/PlanningsModifyController.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Formations\Plannings;
  3. use App\Classes\PlagesGenererFormations;
  4. use App\Entity\Formations;
  5. use App\Entity\PlanningsFormations;
  6. use App\Form\Formations\Plannings\PlanningsFormationsAnnulerRemplacerFormType;
  7. use App\Form\Formations\Plannings\PlanningsFormationsModifyFormType;
  8. use App\Repository\FormateursRepository;
  9. use App\Repository\FormationsRepository;
  10. use App\Repository\PlagesFormationsRepository;
  11. use App\Repository\PlanningFormationsRepository;
  12. use App\Repository\PlanningsFormationsRepository;
  13. use DateTime;
  14. use Doctrine\Persistence\ManagerRegistry;
  15. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Symfony\Component\HttpFoundation\Response;
  18. use Symfony\Component\Routing\Annotation\Route;
  19. class PlanningsModifyController extends AbstractController
  20. {
  21.     private $message;
  22.     
  23.     /**
  24.      * @Route("/formations/plannings/modifier/{idFormation}/{idPlanning}", name="formations_plannings_modifier")
  25.      */
  26.     public function modifyPlanning($idFormation$idPlanningRequest $requestManagerRegistry $doctrinePlanningsFormationsRepository $planningsFormationsRepositoryFormateursRepository $formateursRepositoryFormationsRepository $formationsRepository): Response
  27.     {
  28.         $formation $formationsRepository->find($idFormation);
  29.         $idSite $formation->getSite()->getId();
  30.         $planning $planningsFormationsRepository->find($idPlanning);
  31.         $formateur $formateursRepository->find($planning->getFormateur());
  32.         $formulaire $this->createForm(PlanningsFormationsModifyFormType::class, $planning, [
  33.             'idPlanning'=>$idPlanning,
  34.             'idSite' => $idSite
  35.         ]);
  36.         
  37.         $formulaire->handleRequest($request);
  38.         if($formulaire->isSubmitted()) {
  39.             // $formation = $formationsRepository->find($idFormation);
  40.             $dateDebut $formulaire->get('dateDebut')->getData();
  41.             // $dateFin = $formulaire->get('dateFin')->getData();
  42.             // $matinHoraireDebut = $formulaire->get('matinHoraireDebut')->getData();
  43.             // $matinHoraireFin = $formulaire->get('matinHoraireFin')->getData();
  44.             // $apresMidiHoraireDebut = $formulaire->get('apresMidiHoraireDebut')->getData();
  45.             $apresMidiHoraireFin $formulaire->get('apresMidiHoraireFin')->getData();
  46.             $formateur $formulaire->get('formateur')->getData();
  47.             $salle $formulaire->get('salle')->getData();
  48.             $matinHoraireDebut $formulaire->get('matinHoraireDebut')->getData();
  49.             if($matinHoraireDebut == null) {
  50.                 $matinHoraireDebut = new DateTime('00:00');
  51.             }
  52.             $matinHoraireFin $formulaire->get('matinHoraireFin')->getData();
  53.             if($matinHoraireFin == null) {
  54.                 $matinHoraireFin = new DateTime('00:00');
  55.             }
  56.             $apresMidiHoraireDebut $formulaire->get('apresMidiHoraireDebut')->getData();
  57.             if($apresMidiHoraireDebut == null) {
  58.                 $apresMidiHoraireDebut = new DateTime('00:00');
  59.             }
  60.             
  61.             $apresMidiHoraireFin $formulaire->get('apresMidiHoraireFin')->getData();
  62.             if($apresMidiHoraireFin == null) {
  63.                 $apresMidiHoraireFin = new DateTime('00:00');
  64.             }
  65.             //ASSIGNATION ORDRE DEMI JOURNEE - POUR AFFICHAGE CORRECT SUR VUES DES PLANNINGS
  66.             // dd($apresMidiHoraireDebut->format('H:i'));
  67.             
  68.             if($matinHoraireDebut->format('H:i') != '00:00' && $apresMidiHoraireDebut->format('H:i') == '00:00') {
  69.                 $demiJournee 1;
  70.             }
  71.             else if($matinHoraireDebut->format('H:i') == '00:00' && $apresMidiHoraireDebut->format('H:i') != '00:00') {
  72.                 $demiJournee 2;
  73.             }
  74.             else if($matinHoraireDebut->format('H:i') != '00:00' && $apresMidiHoraireDebut->format('H:i') != '00:00') {
  75.                 $demiJournee 3;
  76.             }
  77.             $planning->setDateDebut($dateDebut);
  78.             // $planning->setDateFin($dateFin);
  79.             $planning->setMatinHoraireDebut($matinHoraireDebut);
  80.             $planning->setMatinHoraireFin($matinHoraireFin);
  81.             $planning->setApresMidiHoraireDebut($apresMidiHoraireDebut);
  82.             $planning->setApresMidiHoraireFin($apresMidiHoraireFin);
  83.             $planning->setFormateur($formateur);
  84.             $planning->setSalle($salle);
  85.             $planning->setDemiJournee($demiJournee);
  86.             $entityManager $doctrine->getManager();
  87.             $entityManager->persist($planning);
  88.             $entityManager->flush();
  89.             
  90.             return $this->redirectToRoute('formations_show_planning', ['idFormation' => $idFormation]);
  91.         }
  92.         return $this->render('formations/plannings/planningsModifier.html.twig', [
  93.             'message' => $this->message,
  94.             'formulaire' => $formulaire->createView(),
  95.             'idPlanning' => $idPlanning,
  96.             'idFormation' => $idFormation,
  97.             'formation' => $formation
  98.         ]);
  99.     }
  100.     /**
  101.      * @Route("/formations/plannings/annuler/{idFormation}/{idPlanning}", name="formations_plannings_annuler")
  102.      */
  103.     public function annulerPlanning(
  104.         $idFormation
  105.         $idPlanning
  106.         Request $request
  107.         ManagerRegistry $doctrine
  108.         PlanningsFormationsRepository $planningsFormationsRepository
  109.         FormateursRepository $formateursRepository
  110.         FormationsRepository $formationsRepository,
  111.         PlagesFormationsRepository $plagesFormationsRepository
  112.         ): Response
  113.     {
  114.         $formation $formationsRepository->find($idFormation);
  115.         $idSite $formation->getSite()->getId();
  116.         $planning $planningsFormationsRepository->find($idPlanning);
  117.         $formateur $formateursRepository->find($planning->getFormateur());
  118.         
  119.         $formulaire $this->createForm(PlanningsFormationsModifyFormType::class, $planning, [
  120.             'idPlanning'=>$idPlanning,
  121.             'idSite' => $idSite
  122.         ]);
  123.         
  124.         // $formulaire->handleRequest($request);
  125.         $formulaireRemplacer $this->createForm(PlanningsFormationsAnnulerRemplacerFormType::class, null, [
  126.             'idPlanning'=>$idPlanning,
  127.             'idSite' => $idSite,
  128.             'intitule' => $planning->getIntitule(),
  129.             'domaine' => $planning->getDomaine(),
  130.             'duree' => $planning->getDuree(),
  131.             'matinHoraireDebut' => $planning->getMatinHoraireDebut(),
  132.             'matinHoraireFin' => $planning->getMatinHoraireFin(),
  133.             'apresMidiHoraireDebut' => $planning->getApresMidiHoraireDebut(),
  134.             'apresMidiHoraireFin' => $planning->getApresMidiHoraireFin(),
  135.             'salle' => $planning->getSalle(),
  136.             'formateur' => $planning->getFormateur()
  137.         ]);
  138.         
  139.         $formulaireRemplacer->handleRequest($request);
  140.         
  141.         
  142.         if($formulaireRemplacer->isSubmitted()) {
  143.             // 1. CHANGEMENT ETAT DU PLANNING ANNULE
  144.             $planning->setEtat(2);
  145.             // 2. CHANGEMENT ETAT DES PLAGES ANNULEES
  146.             $plages $plagesFormationsRepository->findBy([
  147.                 'planning' => $planning
  148.             ]);
  149.             foreach($plages as $plage) {
  150.                 $plage->setEtat(2);
  151.                 $entityManager $doctrine->getManager();
  152.                 $entityManager->persist($plage);
  153.                 $entityManager->flush();
  154.             }
  155.             // dump($plages);
  156.                        
  157.             // dump($planning);
  158.             
  159.             // 2. Créer item du planning
  160.             $planningNew = new PlanningsFormations();
  161.             $planningNew->setBlocs($planning->getBlocs());
  162.             $planningNew->setIntitule($planning->getIntitule());
  163.             $planningNew->setDomaine($planning->getDomaine());
  164.             $planningNew->setDuree($planning->getDuree());
  165.             $planningNew->setFormation($formation);
  166.             $planningNew->setEtat(1);
  167.             $planningNew->setDureeNonCompta($planning->getDureeNonCompta());
  168.             $planningNew->setFacultatif($planning->getFacultatif());
  169.             $planningNew->setDemiJournee($planning->getDemiJournee());
  170.             
  171.             $dateDebut $formulaireRemplacer->get('dateDebut')->getData();
  172.             $matinHoraireDebut $formulaireRemplacer->get('matinHoraireDebut')->getData();
  173.             $matinHoraireFin $formulaireRemplacer->get('matinHoraireFin')->getData();
  174.             $apresMidiHoraireDebut $formulaireRemplacer->get('apresMidiHoraireDebut')->getData();
  175.             $apresMidiHoraireFin $formulaireRemplacer->get('apresMidiHoraireFin')->getData();
  176.             $salle $formulaireRemplacer->get('salle')->getData();
  177.             $formateur $formulaireRemplacer->get('formateur')->getData();
  178.             $planningNew->setDateDebut($dateDebut);
  179.             $planningNew->setMatinHoraireDebut($matinHoraireDebut);
  180.             $planningNew->setMatinHoraireFin($matinHoraireFin);
  181.             $planningNew->setApresMidiHoraireDebut($apresMidiHoraireDebut);
  182.             $planningNew->setApresMidiHoraireFin($apresMidiHoraireFin);
  183.             $planningNew->setSalle($salle);
  184.             $planningNew->setFormateur($formateur);
  185.             // dump($planning);
  186.             // dd($planningNew);
  187.             // dd($planningNew);
  188.             $entityManager $doctrine->getManager();
  189.             $entityManager->persist($planning);
  190.             $entityManager->persist($planningNew);
  191.             $entityManager->flush();
  192.             $idPlanningNew $planningNew->getId();
  193.             $listeStagiaires $plagesFormationsRepository->findByPlagesGroupStagiaires($idPlanning);
  194.             // dump($listeStagiaires);
  195.             foreach($listeStagiaires as $stagiaire) {
  196.                 $plageNew = new PlagesGenererFormations();
  197.                 $plageNew $plageNew->UnePlageGenerer($idPlanningNew$stagiaire->getStagiaire()->getId(), $doctrine);
  198.             }
  199.             
  200.             // dump($listePlages);
  201.             // dd($planningNew);
  202.             
  203.             
  204.             // 2. CREATION DES NOUVELLES PLAGES
  205.             
  206.             
  207.             return $this->redirectToRoute('formations_show_planning', ['idFormation' => $idFormation]);
  208.         }
  209.         // $listeStagiaires = [];
  210.         // foreach($planning->getPlagesFormations() as $plages) {
  211.         //     $listeStagiaires[$plages->getId()] = $plages->getStagiaire()->getNom() . ' ' . $plages->getStagiaire()->getPrenom();
  212.         // }
  213.         // dd($listeStagiaires);
  214.         $listeStagiaires $plagesFormationsRepository->findByPlagesGroupStagiaires($idPlanning);
  215.         return $this->render('formations/plannings/planningsAnnuler.html.twig', [
  216.             'message' => $this->message,
  217.             'formulaire' => $formulaire->createView(),
  218.             'formulaireRemplacer' => $formulaireRemplacer->createView(),
  219.             'idPlanning' => $idPlanning,
  220.             'idFormation' => $idFormation,
  221.             'formation' => $formation,
  222.             'listeStagiaires' => $listeStagiaires
  223.         ]);
  224.     }
  225. }