src/Controller/Formations/FormationsInscrireStagiairesController.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Formations;
  3. use App\Classes\PlagesGenererFormations;
  4. use App\Entity\InscriptionsFormations;
  5. use App\Entity\Stagiaires;
  6. use App\Entity\StagiairesAbsences;
  7. use App\Entity\StagiairesReports;
  8. use App\Form\Formations\FormationInscrireStagiairesFormType;
  9. use App\Form\Formations\Inscriptions\InscriptionsRechercherFormType;
  10. use App\Repository\FormationsRepository;
  11. use App\Repository\InscriptionsFormationsRepository;
  12. use App\Repository\StagiairesAbsencesRepository;
  13. use App\Repository\StagiairesEtatsRepository;
  14. use App\Repository\StagiairesReportsRepository;
  15. use App\Repository\StagiairesRepository;
  16. use DateTime;
  17. use Doctrine\Persistence\ManagerRegistry;
  18. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpFoundation\Response;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. class FormationsInscrireStagiairesController extends AbstractController
  23. {
  24.     /**
  25.      * @Route("/formations/inscrire/{idFormation}", name="formations_inscrire_stagiaires")
  26.      */
  27.     public function index(
  28.         $idFormation
  29.         FormationsRepository $formationsRepository
  30.         StagiairesRepository $stagiairesRepository,
  31.         StagiairesEtatsRepository $stagiairesEtatsRepository,
  32.         Request $request
  33.         ManagerRegistry $doctrine
  34.         ): Response
  35.     {
  36.         $formation $formationsRepository->find($idFormation);
  37.         $idAgence $formation->getSite()->getAgence()->getId();
  38.         $numBloc intval($formation->getBloc()->getNumBloc());
  39.         $stagiairesEtatsListe $stagiairesEtatsRepository->findAll();
  40.         //FORMULAIRE DE RECHERCHES
  41.         $formulaireRecherches $this->createForm(InscriptionsRechercherFormType::class, 
  42.             null, [
  43.             'inscriptionNom' => null,
  44.             'inscriptionPriorite' => null,
  45.             'inscriptionAccueil240h' => null,
  46.             'inscriptionForcer' => null
  47.         ]);
  48.         $formulaireRecherches->handleRequest($request);
  49.         if($formulaireRecherches->isSubmitted()) {
  50.             $stagiaireNom $formulaireRecherches->get('nom')->getData();
  51.             $stagiairePriorite $formulaireRecherches->get('priorites')->getData();
  52.             $stagiaireAccueil240h $formulaireRecherches->get('accueil240h')->getData();
  53.             $stagiaireForcer $formulaireRecherches->get('forcer')->getData();;
  54.         }
  55.         else {
  56.             $stagiaireNom '';
  57.             $stagiairePriorite '';
  58.             $stagiaireAccueil240h '';
  59.             $stagiaireForcer '';
  60.         }
  61.         $stagiaires $stagiairesRepository->findIncriptionsListeStagiairesFormations(
  62.             $idAgence,
  63.             $numBloc,
  64.             $stagiaireNom,
  65.             $stagiairePriorite,
  66.             $stagiaireAccueil240h,
  67.             $stagiaireForcer
  68.         );
  69.         
  70.         // dd($stagiaires);
  71.         $formulaire $this->createForm(
  72.             FormationInscrireStagiairesFormType::class, 
  73.             $stagiaires
  74.             [
  75.                 'idFormation' => $idFormation,
  76.                 'numBloc' => $numBloc,
  77.                 'stagiaireNom' => $stagiaireNom,
  78.                 'stagiairePriorite' => $stagiairePriorite,
  79.                 'stagiaireAccueil240h' => $stagiaireAccueil240h,
  80.                 'stagiaireForcer' => $stagiaireForcer
  81.             ]
  82.         );
  83.         $formulaire->handleRequest($request);
  84.         
  85.         // ManyToMany
  86.         //
  87.         // if($formulaire->isSubmitted()) {
  88.         //     // dd($formulaire->get('stagiaireSelection0')->getData());
  89.         //     $entityManager = $doctrine->getManager();
  90.         //     $x = $formulaire->get('x')->getData();
  91.         //     for($y=0; $y<$x; $y++) {
  92.         //         $stagiaireSelected = $formulaire->get('stagiaireSelection'.$y)->getData();
  93.         //         if($stagiaireSelected==true) {
  94.         //             $idStagiaire = $formulaire->get('idStagiaire'.$y)->getData();
  95.         //             $stagiaire = $stagiairesRepository->find($idStagiaire);
  96.         //             $stagiaire->addFormation($formation);
  97.         //             $entityManager->persist($stagiaire);
  98.         //             $entityManager->flush();
  99.         //         }
  100.         //     }
  101.             
  102.         //     return $this->redirectToRoute('formations_show', ['id' => $idFormation]);
  103.         // }
  104.         // OneToMany
  105.         if($formulaire->isSubmitted()) {
  106.             $x $formulaire->get('x')->getData();
  107.             
  108.             for($y=0$y<$x$y++) {
  109.                 $inscription = new InscriptionsFormations();
  110.                 $entityManager $doctrine->getManager();
  111.                 $stagiaireSelected $formulaire->get('stagiaireSelection'.$y)->getData();
  112.                 
  113.                 if($stagiaireSelected==true) {
  114.                     $idStagiaire $formulaire->get('idStagiaire'.$y)->getData();
  115.                     $stagiaire $stagiairesRepository->find($idStagiaire);
  116.                     $formation $formationsRepository->find($idFormation);
  117.                     
  118.                     $inscription->setFormations($formation);
  119.                     $inscription->setStagiaires($stagiaire);
  120.                     $inscription->setEtat(1);
  121.                     $dateCreation = new DateTime('NOW');
  122.                     $dateCreation->format('Y-m-d H:i');
  123.                     $inscription->setDateCreation($dateCreation);
  124.                     $entityManager->persist($inscription);
  125.                     //TRAITEMENT DE L'ETAT DU STAGIAIRE
  126.                     if($formation->getBloc()->getNumBloc() == 1) {
  127.                         // if(
  128.                         //     $stagiaire->getEtat() == 1 
  129.                         //     || $stagiaire->getEtat() == 11
  130.                         //     || $stagiaire->getEtat() == 13
  131.                         // ) {
  132.                             $stagiaire->setEtat(3);
  133.                         // }
  134.                     } else {
  135.                         // if(
  136.                         //     $stagiaire->getEtat() == 2 
  137.                         //     || $stagiaire->getEtat() == 12
  138.                         //     || $stagiaire->getEtat() == 14
  139.                         // ) {
  140.                             $stagiaire->setEtat(4);
  141.                         // }
  142.                     }
  143.                     $entityManager->persist($stagiaire);
  144.                     $entityManager->flush();
  145.                     $entityManager->clear();
  146.                     $plages = new PlagesGenererFormations();
  147.                     $plages $plages->plagesGenerer($idFormation$idStagiaire$doctrine);
  148.                 }
  149.             }
  150.             
  151.             return $this->redirectToRoute('formations_show_inscriptions', ['idFormation' => $idFormation]);
  152.         }
  153.         return $this->render('formations/formationsInscrireStagiaires.html.twig', [
  154.             'formation' => $formation,
  155.             'stagiaires' => $stagiaires,
  156.             'stagiairesEtatsListe' => $stagiairesEtatsListe,
  157.             'formulaire' => $formulaire->createView(),
  158.             'formulaireRecherches' => $formulaireRecherches->createView()
  159.         ]);
  160.     }
  161.     /**
  162.      * @Route("/formations/desinscrire/{idStagiaire}/{idFormation}/{idInscription}", name="formations_desinscrire_stagiaires")
  163.      */
  164.     public function desinscrire(
  165.         $idStagiaire
  166.         $idFormation,
  167.         $idInscription,
  168.         InscriptionsFormationsRepository $inscriptionsFormationsRepository,
  169.         FormationsRepository $formationsRepository,
  170.         StagiairesAbsencesRepository $stagiairesAbsencesRepository,
  171.         StagiairesReportsRepository $stagiairesReportsRepository,
  172.         ManagerRegistry $doctrine
  173.         ): Response
  174.     {
  175.         // dd($idFormation);
  176.         $entityManager $doctrine->getManager();
  177.         
  178.         $stagiaire $entityManager->getRepository(Stagiaires::class)->find($idStagiaire);
  179.         $formation $formationsRepository->find($idFormation);
  180.         $numBloc $formation->getBloc()->getNumBloc();
  181.         
  182.         $absences $stagiairesAbsencesRepository->findBy([
  183.             'stagiaires' => $stagiaire,
  184.             'numBloc' => $numBloc
  185.         ]);
  186.         
  187.         $reports $stagiairesReportsRepository->findBy([
  188.             'stagiaires' => $stagiaire,
  189.             'numBloc' => $numBloc
  190.         ]);
  191.         if(count($absences) > 0){
  192.             if($numBloc == 1) {
  193.                 dump('etat = 13');
  194.                 $stagiaire->setEtat(13);
  195.             }
  196.             else {
  197.                 dump('etat = 14');
  198.                 $stagiaire->setEtat(14);
  199.             }
  200.         }
  201.         else if(count($reports) > 0){
  202.             if($numBloc == 1) {
  203.                 dump('etat = 11');
  204.                 $stagiaire->setEtat(11);
  205.             }
  206.             else {
  207.                 dump('etat = 12');
  208.                 $stagiaire->setEtat(12);
  209.             }
  210.         }
  211.         else {
  212.             if($numBloc == 1) {
  213.                 dump('etat = 1');
  214.                 $stagiaire->setEtat(1);
  215.             }
  216.             else {
  217.                 dump('etat = 2');
  218.                 $stagiaire->setEtat(2);
  219.             }
  220.         }
  221.         $inscription $inscriptionsFormationsRepository->find($idInscription);
  222.         $entityManager->remove($inscription);
  223.         $entityManager->persist($stagiaire);
  224.         
  225.         $entityManager->flush();
  226.         $plagesDelete = new PlagesGenererFormations();
  227.         $plagesDelete->plagesSupprimer($idFormation$idStagiaire$doctrine);
  228.         
  229.         return $this->redirectToRoute('formations_show_inscriptions', ['idFormation' => $idFormation]);
  230.     }
  231. }