src/Controller/Front/SimulationController.php line 14

  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Repository\PoleRepository;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. class SimulationController extends AbstractController
  9. {
  10.     #[Route('/simuler-tarif', name: 'app_page_simuler_tarif')]
  11.     public function simulerTarif(Request $request, PoleRepository $poleRepository): Response
  12.     {
  13.         $poles = $poleRepository->findByTarif();
  14.         unset($poles[3]);
  15.         unset($poles[6]);
  16.         $pole = (string) $request->get('pole');
  17.         $quotient = (int) $request->get('quotient');
  18.         $categorie = (int) $request->get('categorie');
  19.         $formSubmited = false;
  20.         $tarifMensuel = null;
  21.         if ('CAP Conduite Routière en 1 an' === $pole && (1 === $categorie || 2 === $categorie)) {
  22.             $this->addFlash('danger', 'Le CAP Conduite Routière en 1 an n\'est disponible qu\'en externe et en interne');
  23.         } else {
  24.             foreach ($request->query as $parameter) {
  25.                 if ('' !== $parameter) {
  26.                     $formSubmited = true;
  27.                 }
  28.             }
  29.             switch (true) {
  30.                 case 'Pôle Enseignement Supérieur' === $pole:
  31.                     $tarifMensuel = [174, 210, 218, 569][$categorie];
  32.                     break;
  33.                 case 600 >= $quotient:
  34.                     if ('Pôle 6/5/4 - 6ème' === $pole) {
  35.                         $tarifMensuel = [64, 134, 151, 277][$categorie];
  36.                     } elseif ('Pôle 6/5/4 - 5ème / 4ème' === $pole) {
  37.                         $tarifMensuel = [79, 149, 166, 292][$categorie];
  38.                     } elseif ('Pôle 3/2' === $pole) {
  39.                         $tarifMensuel = [81, 153, 170, 318][$categorie];
  40.                     } elseif ('Pôle 1/Terminal' === $pole) {
  41.                         $tarifMensuel = [82, 154, 171, 319][$categorie];
  42.                     } elseif ('3ème Prépa-Métiers' === $pole) {
  43.                         $tarifMensuel = [66, 129, 144, 270][$categorie];
  44.                     } elseif ('CAP Conduite Routière - 1ère année' === $pole) {
  45.                         $tarifMensuel = [82, 145, 160, 286][$categorie];
  46.                     } elseif ('CAP Conduite Routière - 2ème année' === $pole) {
  47.                         $tarifMensuel = [82, 145, 157, 281][$categorie];
  48.                     } elseif ('CAP Conduite Routière en 1 an' === $pole) {
  49.                         $tarifMensuel = [67, null, null, 129][$categorie];
  50.                     } elseif ('CAP Opérateur Logistique - 1ère année' === $pole) {
  51.                         $tarifMensuel = [82, 139, 152, 266][$categorie];
  52.                     } elseif ('2de BAC Pro CTRM' === $pole || '1re BAC Pro CTRM' === $pole) {
  53.                         $tarifMensuel = [82, 145, 160, 286][$categorie];
  54.                     } elseif ('2de BAC Pro GATL' === $pole || '2de BAC Pro MMV1 et MMV2' === $pole || '2de BAC Pro MPMIA' === $pole || 'Terminal BAC Pro LOG' === $pole || 'Terminal BAC Pro MEI - PLP' === $pole || 'Terminal BAC Pro MVVP' === $pole || 'Terminal BAC Pro MVVTR' === $pole || 'Terminal BAC Pro OTM' === $pole) {
  55.                         $tarifMensuel = [82, 143, 156, 282][$categorie];
  56.                     } elseif ('1re BAC Pro LOG' === $pole || '1re BAC Pro MSPC - PLP' === $pole || '1re BAC Pro MVVP' === $pole || '1re BAC Pro MVVTR' === $pole || '1re BAC Pro OTM' === $pole) {
  57.                         $tarifMensuel = [82, 141, 154, 276][$categorie];
  58.                     } elseif ('Terminal BAC Pro CTRM' === $pole) {
  59.                         $tarifMensuel = [82, 146, 160, 291][$categorie];
  60.                     }
  61.                     break;
  62.                 case 700 >= $quotient:
  63.                     if ('Pôle 6/5/4 - 6ème' === $pole) {
  64.                         $tarifMensuel = [84, 154, 171, 368][$categorie];
  65.                     } elseif ('Pôle 6/5/4 - 5ème / 4ème' === $pole) {
  66.                         $tarifMensuel = [99, 169, 186, 383][$categorie];
  67.                     } elseif ('Pôle 3/2' === $pole) {
  68.                         $tarifMensuel = [101, 173, 190, 417][$categorie];
  69.                     } elseif ('Pôle 1/Terminal' === $pole) {
  70.                         $tarifMensuel = [102, 174, 191, 418][$categorie];
  71.                     } elseif ('Pôle Enseignement Supérieur' === $pole) {
  72.                         $tarifMensuel = [102, 174, 191, 418][$categorie];
  73.                     } elseif ('3ème Prépa-Métiers' === $pole) {
  74.                         $tarifMensuel = [86, 149, 164, 358][$categorie];
  75.                     } elseif ('CAP Conduite Routière - 1ère année' === $pole) {
  76.                         $tarifMensuel = [102, 165, 180, 374][$categorie];
  77.                     } elseif ('CAP Conduite Routière - 2ème année' === $pole) {
  78.                         $tarifMensuel = [102, 165, 177, 368][$categorie];
  79.                     } elseif ('CAP Conduite Routière en 1 an' === $pole) {
  80.                         $tarifMensuel = [87, null, null, 170][$categorie];
  81.                     } elseif ('CAP Opérateur Logistique - 1ère année' === $pole) {
  82.                         $tarifMensuel = [102, 159, 172, 347][$categorie];
  83.                     } elseif ('2de BAC Pro CTRM' === $pole || '1re BAC Pro CTRM' === $pole) {
  84.                         $tarifMensuel = [102, 165, 180, 374][$categorie];
  85.                     } elseif ('2de BAC Pro GATL' === $pole || '2de BAC Pro MMV1 et MMV2' === $pole || '2de BAC Pro MPMIA' === $pole || 'Terminal BAC Pro LOG' === $pole || 'Terminal BAC Pro MEI - PLP' === $pole || 'Terminal BAC Pro MVVP' === $pole || 'Terminal BAC Pro MVVTR' === $pole || 'Terminal BAC Pro OTM' === $pole) {
  86.                         $tarifMensuel = [102, 163, 176, 368][$categorie];
  87.                     } elseif ('1re BAC Pro LOG' === $pole || '1re BAC Pro MSPC - PLP' === $pole || '1re BAC Pro MVVP' === $pole || '1re BAC Pro MVVTR' === $pole || '1re BAC Pro OTM' === $pole) {
  88.                         $tarifMensuel = [102, 161, 174, 360][$categorie];
  89.                     } elseif ('Terminal BAC Pro CTRM' === $pole) {
  90.                         $tarifMensuel = [102, 166, 180, 380][$categorie];
  91.                     }
  92.                     break;
  93.                 case 800 >= $quotient:
  94.                     if ('Pôle 6/5/4 - 6ème' === $pole) {
  95.                         $tarifMensuel = [104, 191, 213, 459][$categorie];
  96.                     } elseif ('Pôle 6/5/4 - 5ème / 4ème' === $pole) {
  97.                         $tarifMensuel = [119, 206, 228, 474][$categorie];
  98.                     } elseif ('Pôle 3/2' === $pole) {
  99.                         $tarifMensuel = [122, 212, 233, 517][$categorie];
  100.                     } elseif ('Pôle 1/Terminal' === $pole) {
  101.                         $tarifMensuel = [123, 213, 234, 518][$categorie];
  102.                     } elseif ('Pôle Enseignement Supérieur' === $pole) {
  103.                         $tarifMensuel = [123, 213, 234, 518][$categorie];
  104.                     } elseif ('3ème Prépa-Métiers' === $pole) {
  105.                         $tarifMensuel = [107, 186, 204, 447][$categorie];
  106.                     } elseif ('CAP Conduite Routière - 1ère année' === $pole) {
  107.                         $tarifMensuel = [123, 202, 220, 463][$categorie];
  108.                     } elseif ('CAP Conduite Routière - 2ème année' === $pole) {
  109.                         $tarifMensuel = [123, 202, 217, 455][$categorie];
  110.                     } elseif ('CAP Conduite Routière en 1 an' === $pole) {
  111.                         $tarifMensuel = [108, null, null, 212][$categorie];
  112.                     } elseif ('CAP Opérateur Logistique - 1ère année' === $pole) {
  113.                         $tarifMensuel = [123, 194, 210, 429][$categorie];
  114.                     } elseif ('2de BAC Pro CTRM' === $pole || '1re BAC Pro CTRM' === $pole) {
  115.                         $tarifMensuel = [123, 202, 220, 463][$categorie];
  116.                     } elseif ('2de BAC Pro GATL' === $pole || '2de BAC Pro MMV1 et MMV2' === $pole || '2de BAC Pro MPMIA' === $pole || 'Terminal BAC Pro LOG' === $pole || 'Terminal BAC Pro MEI - PLP' === $pole || 'Terminal BAC Pro MVVP' === $pole || 'Terminal BAC Pro MVVTR' === $pole || 'Terminal BAC Pro OTM' === $pole) {
  117.                         $tarifMensuel = [123, 199, 216, 456][$categorie];
  118.                     } elseif ('1re BAC Pro LOG' === $pole || '1re BAC Pro MSPC - PLP' === $pole || '1re BAC Pro MVVP' === $pole || '1re BAC Pro MVVTR' === $pole || '1re BAC Pro OTM' === $pole) {
  119.                         $tarifMensuel = [123, 197, 213, 446][$categorie];
  120.                     } elseif ('Terminal BAC Pro CTRM' === $pole) {
  121.                         $tarifMensuel = [123, 203, 221, 471][$categorie];
  122.                     }
  123.                     break;
  124.                 case 900 >= $quotient:
  125.                     if ('Pôle 6/5/4 - 6ème' === $pole) {
  126.                         $tarifMensuel = [123, 210, 232, 478][$categorie];
  127.                     } elseif ('Pôle 6/5/4 - 5ème / 4ème' === $pole) {
  128.                         $tarifMensuel = [138, 225, 247, 493][$categorie];
  129.                     } elseif ('Pôle 3/2' === $pole) {
  130.                         $tarifMensuel = [142, 232, 253, 537][$categorie];
  131.                     } elseif ('Pôle 1/Terminal' === $pole) {
  132.                         $tarifMensuel = [143, 233, 254, 538][$categorie];
  133.                     } elseif ('Pôle Enseignement Supérieur' === $pole) {
  134.                         $tarifMensuel = [143, 233, 254, 538][$categorie];
  135.                     } elseif ('3ème Prépa-Métiers' === $pole) {
  136.                         $tarifMensuel = [127, 206, 224, 467][$categorie];
  137.                     } elseif ('CAP Conduite Routière - 1ère année' === $pole) {
  138.                         $tarifMensuel = [143, 222, 240, 483][$categorie];
  139.                     } elseif ('CAP Conduite Routière - 2ème année' === $pole) {
  140.                         $tarifMensuel = [143, 222, 237, 475][$categorie];
  141.                     } elseif ('CAP Conduite Routière en 1 an' === $pole) {
  142.                         $tarifMensuel = [128, null, null, 232][$categorie];
  143.                     } elseif ('CAP Opérateur Logistique - 1ère année' === $pole) {
  144.                         $tarifMensuel = [143, 214, 230, 449][$categorie];
  145.                     } elseif ('2de BAC Pro CTRM' === $pole || '1re BAC Pro CTRM' === $pole) {
  146.                         $tarifMensuel = [143, 222, 240, 483][$categorie];
  147.                     } elseif ('2de BAC Pro GATL' === $pole || '2de BAC Pro MMV1 et MMV2' === $pole || '2de BAC Pro MPMIA' === $pole || 'Terminal BAC Pro LOG' === $pole || 'Terminal BAC Pro MEI - PLP' === $pole || 'Terminal BAC Pro MVVP' === $pole || 'Terminal BAC Pro MVVTR' === $pole || 'Terminal BAC Pro OTM' === $pole) {
  148.                         $tarifMensuel = [143, 219, 236, 476][$categorie];
  149.                     } elseif ('1re BAC Pro LOG' === $pole || '1re BAC Pro MSPC - PLP' === $pole || '1re BAC Pro MVVP' === $pole || '1re BAC Pro MVVTR' === $pole || '1re BAC Pro OTM' === $pole) {
  150.                         $tarifMensuel = [143, 217, 233, 466][$categorie];
  151.                     } elseif ('Terminal BAC Pro CTRM' === $pole) {
  152.                         $tarifMensuel = [143, 223, 241, 491][$categorie];
  153.                     }
  154.                     break;
  155.                 default:
  156.                     if ('Pôle 6/5/4 - 6ème' === $pole) {
  157.                         $tarifMensuel = [155, 242, 264, 510][$categorie];
  158.                     } elseif ('Pôle 6/5/4 - 5ème / 4ème' === $pole) {
  159.                         $tarifMensuel = [170, 257, 279, 525][$categorie];
  160.                     } elseif ('Pôle 3/2' === $pole) {
  161.                         $tarifMensuel = [175, 265, 286, 570][$categorie];
  162.                     } elseif ('Pôle 1/Terminal' === $pole) {
  163.                         $tarifMensuel = [176, 266, 287, 571][$categorie];
  164.                     } elseif ('Pôle Enseignement Supérieur' === $pole) {
  165.                         $tarifMensuel = [176, 266, 287, 571][$categorie];
  166.                     } elseif ('3ème Prépa-Métiers' === $pole) {
  167.                         $tarifMensuel = [160, 239, 257, 500][$categorie];
  168.                     } elseif ('CAP Conduite Routière - 1ère année' === $pole) {
  169.                         $tarifMensuel = [176, 255, 273, 516][$categorie];
  170.                     } elseif ('CAP Conduite Routière - 2ème année' === $pole) {
  171.                         $tarifMensuel = [176, 255, 270, 508][$categorie];
  172.                     } elseif ('CAP Conduite Routière en 1 an' === $pole) {
  173.                         $tarifMensuel = [161, null, null, 265][$categorie];
  174.                     } elseif ('CAP Opérateur Logistique - 1ère année' === $pole) {
  175.                         $tarifMensuel = [176, 247, 263, 482][$categorie];
  176.                     } elseif ('2de BAC Pro CTRM' === $pole || '1re BAC Pro CTRM' === $pole) {
  177.                         $tarifMensuel = [176, 255, 273, 516][$categorie];
  178.                     } elseif ('2de BAC Pro GATL' === $pole || '2de BAC Pro MMV1 et MMV2' === $pole || '2de BAC Pro MPMIA' === $pole || 'Terminal BAC Pro LOG' === $pole || 'Terminal BAC Pro MEI - PLP' === $pole || 'Terminal BAC Pro MVVP' === $pole || 'Terminal BAC Pro MVVTR' === $pole || 'Terminal BAC Pro OTM' === $pole) {
  179.                         $tarifMensuel = [176, 252, 269, 509][$categorie];
  180.                     } elseif ('1re BAC Pro LOG' === $pole || '1re BAC Pro MSPC - PLP' === $pole || '1re BAC Pro MVVP' === $pole || '1re BAC Pro MVVTR' === $pole || '1re BAC Pro OTM' === $pole) {
  181.                         $tarifMensuel = [176, 250, 266, 499][$categorie];
  182.                     } elseif ('Terminal BAC Pro CTRM' === $pole) {
  183.                         $tarifMensuel = [176, 256, 274, 524][$categorie];
  184.                     }
  185.                     break;
  186.             }
  187.         }
  188.         $categorieSearch = null;
  189.         switch ($categorie) {
  190.             case 0:
  191.                 $categorieSearch = 'Externe';
  192.                 break;
  193.             case 1:
  194.                 $categorieSearch = 'Demi-pensionnaire 4 repas';
  195.                 break;
  196.             case 2:
  197.                 $categorieSearch = 'Demi-pensionnaire 5 repas';
  198.                 break;
  199.             case 3:
  200.                 $categorieSearch = 'Interne';
  201.                 break;
  202.         }
  203.         return $this->render('front/simuler_tarif.html.twig', [
  204.             'formSubmited' => $formSubmited,
  205.             'poleSearch' => $pole,
  206.             'quotientSearch' => $quotient,
  207.             'categorieSearch' => $categorieSearch,
  208.             'poles' => $poles,
  209.             'tarifMensuel' => $tarifMensuel,
  210.         ]);
  211.     }
  212. }