src/Controller/AccueilController.php line 85

Open in your IDE?
  1. <?php
  2. // src/Controller/AccueilController
  3. /*
  4.  * 
  5.  * Date de modification:16/05/2025
  6.  * Description:Controller LayoutAccueil 5sur5 Séjour
  7.  *
  8.  */
  9. namespace App\Controller;
  10. use App\Entity\Fonctions;
  11. use App\Entity\User;
  12. use App\Service\AttachementService;
  13. use App\Service\BlogService;
  14. use App\Service\SejourService;
  15. use App\Service\SiteService;
  16. use App\Service\TypeProduiteService;
  17. use App\Service\UserService;
  18. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. use Symfony\Component\HttpFoundation\Response;
  21. use Symfony\Component\HttpFoundation\Request;
  22. use Symfony\Component\HttpFoundation\JsonResponse;
  23. class AccueilController extends AbstractController
  24. {
  25.     private $typeProduiteService;
  26.     private $siteService;
  27.     private $blogService;
  28.     private $UserService;
  29.     private $sejourService;
  30.     private $attachementService;
  31.     public function __construct(TypeProduiteService $typeProduiteServiceSiteService $siteServiceBlogService $blogServiceUserService $UserServiceSejourService $sejourServiceAttachementService $attachementService)
  32.     {
  33.         $this->typeProduiteService $typeProduiteService;
  34.         $this->siteService $siteService;
  35.         $this->blogService $blogService;
  36.         $this->UserService $UserService;
  37.         $this->sejourService $sejourService;
  38.         $this->attachementService $attachementService;
  39.     }
  40.     /**
  41.      * @Route("/Accueil5sur5", name="layoutAccueil")
  42.      * */
  43.     public function layoutAccueil()
  44.     {
  45.         return $this->render('Accueil/layoutAccueil.html.twig');
  46.     }
  47.     /**
  48.      * @Route("/Accueil5sur5/header_layoutAccueil", name="header_layoutAccueil")
  49.      */
  50.     public function header(Request $request): Response
  51.     {
  52.         $produit $this->typeProduiteService;
  53.         $liste $produit->produitlistType();
  54.         // dd($liste);
  55.         $session $request->getSession();
  56.         $Products $session->get("Panier");
  57.         if ($Products == Null) {
  58.             $Products = [];
  59.         }
  60.         return $this->render('Accueil/header.html.twig', [
  61.             'produit' => $liste,
  62.             'Products' => $Products,
  63.         ]);
  64.     }
  65.     /**
  66.      * @Route("/Accueil5sur5/header_Parent", name="header_Parent")
  67.      */
  68.     public function header_Parent(Request $request): Response
  69.     {
  70.         $produit $this->typeProduiteService;
  71.         $liste $produit->produitlistType();
  72.         // dd($liste);
  73.         $session $request->getSession();
  74.         $Products $session->get("Panier");
  75.         if ($Products == Null) {
  76.             $Products = [];
  77.         }
  78.         return $this->render('Accueil/headerParents.html.twig', [
  79.             'produit' => $liste,
  80.             'Products' => $Products,
  81.         ]);
  82.     }
  83.     /**
  84.      * @Route("/Accueil5sur5/headerLogin", name="headerLogin")
  85.      */
  86.     public function headerLogin(Request $request): Response
  87.     {
  88.         $produit $this->typeProduiteService;
  89.         $liste $produit->produitlistType();
  90.         // dd($liste);
  91.         $session $request->getSession();
  92.         $Products $session->get("Panier");
  93.         if ($Products == Null) {
  94.             $Products = [];
  95.         }
  96.         return $this->render('Accueil/headerLogin.html.twig', [
  97.             'produit' => $liste,
  98.             'Products' => $Products,
  99.         ]);
  100.     }
  101.     /**
  102.      * @Route("/", name="page_Accueil")
  103.      */
  104.     public function PageAccueil()
  105.     {
  106.         $produit $this->typeProduiteService;
  107.         $liste $produit->produitlistType();
  108.         $siteservice $this->siteService;
  109.         $site $siteservice->getActiveSite();
  110.         $list $this->blogService->allblog();
  111.         //dd($list);
  112.         return $this->render('Accueil/PageAccueil.html.twig', ["site" => $site'list' => $list'produit' => $liste]);
  113.     }
  114.     /**
  115.      * @Route("/Parent/", name="Parent")
  116.      */
  117.     public function Acceuil(Request $request)
  118.     {
  119.         $produit $this->typeProduiteService;
  120.         $liste $produit->produitlistType();
  121.         $siteservice $this->siteService;
  122.         $site $siteservice->getActiveSite();
  123.         $list $this->blogService->allblog();
  124.         $session $request->getSession();
  125.         $Products $session->get("Panier");
  126.         if ($Products == Null) {
  127.             $Products = [];
  128.         }
  129.         return $this->render('Accueil/PageAccueil.html.twig', ["site" => $site'list' => $list'produit' => $liste'Products' => $Products]);
  130.     }
  131.     /**
  132.      * @Route("/Accueil5sur5/footer_layoutAccueil", name="footer_layoutAccueil")
  133.      */
  134.     public function footer()
  135.     {
  136.         return $this->render('Accueil/footer.html.twig');
  137.     }
  138.     /**
  139.      * @Route("/Accompagnateur/register", name="accomp_register",methods={"POST","GET"})
  140.      */
  141.     public function register(Request $request)
  142.     {
  143.         ini_set("max_execution_time", -1);
  144.         ini_set('memory_limit''-1');
  145.         $em $this->getDoctrine()->getManager();
  146.         $UserService $this->UserService;
  147.         $SejourService $this->sejourService;
  148.         $AttachementService $this->attachementService;
  149.         $nom $request->get("nom_acc");
  150.         $prenom $request->get('prenom_acc');
  151.         $etablisment $request->get("etablisment");
  152.         $fonction $request->get("fonction");
  153.         $EntityFonction $em->getRepository(Fonctions::class)->find($fonction);
  154.         if ($EntityFonction) {
  155.             $nameFonction $EntityFonction->getName();
  156.         } else {
  157.             $nameFonction "";
  158.         }
  159.         $adressetablisment $request->get("adressetablisment");
  160.         // prix et reverse
  161.         $prixcnxparent 2.90;
  162.         $prixcnxpartenaire 0;
  163.         $reversecnxpart 0;
  164.         $reverseventepart 0;
  165.         $phoneacc $request->get("phone_acc");
  166.         $mail $request->get("email");
  167.         $password $request->get("password");
  168.         $role "ROLE_ACC";
  169.         $themSejour $request->get('theme_sejour');
  170.         $adressSejour $request->get("adress_sejour");
  171.         $codePostal $request->get("codePostal");
  172.         $dateDebut $request->get("date_debut_sejour");
  173.         $FinSejour $request->get("date_fin_sejour");
  174.         $AgeDugroupe $request->get("age_dugroupe_sejour");
  175.         $NbEnfant $request->get("NbEnfant");
  176.         $connpay $request->get("connpay");
  177.         if ($prixcnxparent != 0) {
  178.             $connpay == 1;
  179.         } else {
  180.             $connpay == 0;
  181.         }
  182.         $pays $request->get("pays");
  183.         $ville $request->get("ville");
  184.         $CODEpOSTALetablisment $request->get("CODEpOSTALetablisment");
  185.         $villeetablisment $request->get("villeetablisment");
  186.         $type "ECOLES/AUTRES";
  187.         $bytes random_bytes(5);
  188.         $passAcommpa bin2hex($bytes);
  189.         if ($NbEnfant) {
  190.             $NbEnfant $NbEnfant;
  191.         } else {
  192.             $NbEnfant 0;
  193.         }
  194.         $dateSJoue = new \Datetime();
  195.         $Milliseconde $dateSJoue->format('u');
  196.         $annes $dateSJoue->format('y');
  197.         $joours $dateSJoue->format('d');
  198.         $joours $dateSJoue->format('t');
  199.         $emailaccf "Acompa" $annes $joours $Milliseconde "@fictif.com";
  200.         //CREATION ACCOMPAGNATEUR
  201.         $accomp $UserService->creationNewAcommpa($nom$prenom$etablisment$nameFonction$adressetablisment$phoneacc$emailaccf$role$passAcommpa$mail);
  202.         $accomp->setIdFonction($EntityFonction);
  203.         $em->persist($accomp);
  204.         $em->flush();
  205.         //CREATION PARTENAIRE
  206.         $part $em->getRepository(User::class)->VerifierAddresseEmailPartenaire($mail'ROLE_PARTENAIRE');
  207.         if (is_null($part)) {
  208.             $part $UserService->creationNewUser($nom$prenom$etablisment$nameFonction$adressetablisment$phoneacc$mail$passAcommpa"ROLE_PARTENAIRE");
  209.             $part->setIdFonction($EntityFonction);
  210.             $em->persist($part);
  211.             $em->flush();
  212.         }
  213.         //CREATION ETABLISSEMENT + PARTENAIRE
  214.         $Etablisment $UserService->creationNewEtablisment($part$nom$prenom$etablisment$fonction$adressetablisment$phoneacc$mail"ROLE_PARTENAIRE"$password$prixcnxparent$prixcnxpartenaire$reversecnxpart$reverseventepart);
  215.         if ($CODEpOSTALetablisment == "") {
  216.             $CODEpOSTALetablisment null;
  217.         }
  218.         $Etablisment->setCodepostaleatb($CODEpOSTALetablisment);
  219.         $Etablisment->setVille($villeetablisment);
  220.         $em->persist($Etablisment);
  221.         $em->flush();
  222.         //CREATION SEJOUR ACCOM + PARTENAIRE + ETABILSSEMENT
  223.         if ($EntityFonction) {
  224.             if ($EntityFonction->getType() == "vip") {
  225.                 $connpay 0;
  226.             }
  227.         }
  228.         $sejour $SejourService->CreationNouveauSejourParAccompagnateur($themSejour$adressSejour$dateDebut$FinSejour$AgeDugroupe$type$NbEnfant$connpay$pays$ville$prixcnxparent$prixcnxpartenaire$reversecnxpart$reverseventepart);
  229.         $sejour->setCodePostal(intval($codePostal));
  230.         $SejourService->affecterAccompaniateur($sejour$accomp);
  231.         $SejourService->affecterPartenaire($sejour$part);
  232.         $SejourService->affecteretablisment($sejour$Etablisment);
  233.         $em->persist($sejour);
  234.         $em->flush();
  235.         //AFFECTAION LOGO TO USER PARTENAIRE ADN ACCOMPAGNATEUR
  236.         if ($request->request->has('path')) {
  237.             $ty "logo séjour";
  238.             $AttachementService->creationLogoSejour($accomp$request->get('path'), $ty);
  239.             $AttachementService->creationLogoSejour($part$request->get('path'), $ty);
  240.         }
  241.         $TypeSejour 8;
  242.         $UserService->EnvoyerEmailSwiftAcommpatActivation($sejour,$accomp);
  243.        // $SejourService->EnvoyerEmailCodeSejourToPartenaireAndAcco($sejour->getId());
  244.         //ENVOI EMAIL ACCOMPAGNATEUR MAIL CREATION COMPTE + MEAIL CODE SEJOUR
  245.         //        $SejourService->EnvoyerEmailNewAccoNewSejour($emailaccf, $accomp, $sejour->getId(), $passAcommpa);
  246.        
  247.         //        $SejourService->EnvoyerEmailCodeSejourAccompagnateur($sejour->getId(), $TypeSejour, $passAcommpa);
  248.         //ENVOI EMAIL PARTENAIRE CREATION COMPTE + MAIL CODE SEJOUR
  249.         //send if Active // verif l activation du l accompagnteur 
  250.    ;
  251.         //  $SejourService->EnvoyerEmailPasswordSejourToPartenaireAndAcco($sejour->getId());
  252.         //  $SejourService->EnvoyerEmailNewPartenaire($part);
  253.         //        $SejourService->EnvoyerEmailCodeSejour($sejour->getId(), $TypeSejour);
  254.         // rederection 
  255.         //  $providerKey = 'main_Acommpa'; // your firewall name
  256.         // $token = new UsernamePasswordToken($accomp, null, $providerKey, $accomp->getRoles());
  257.         // $this->container->get('security.token_storage')->setToken($token);
  258.         //set sejour dans la session oubligatoire
  259.         $session $request->getSession();
  260.         $session->set('Sejour'$sejour->getId());
  261.         //$this->redirectToRoute('app_back_Acommpa');
  262.         return new JsonResponse(["idSejour" => $sejour->getId()]);
  263.     }
  264.     //inscription du parent 
  265.     /**
  266.      * @Route("/Parent/register", name="parent_register",methods={"POST","GET"})
  267.      */
  268.     public function registerparent(Request $request)
  269.     {
  270.         $UserService $this->UserService;
  271.         //
  272.         $nom $request->get("nomparent");
  273.         $prenom $request->get('prenomparent');
  274.         $mailparent $request->get("mailprent");
  275.         $numtel $request->get("numtel");
  276.         $passwordparent $request->get("passwordparent");
  277.         $confirmpassword $request->get("confirmpassword");
  278.         $notifsms $request->get("sms");
  279.         $notifmail $request->get('mailnotif');
  280.         if ($confirmpassword != $passwordparent) {
  281.             return new JsonResponse('erorpasswordconfirm');
  282.         }
  283.         $role "ROLE_PARENT";
  284.         $verification $UserService->verifmailold($mailparent);
  285.         //var_dump($verification);
  286.         if ($verification == NULL) {
  287.             $accomp $UserService->creationNewParent($nom$prenom$mailparent$numtel$role$passwordparent$notifsms$notifmail);
  288.             return new JsonResponse('done');
  289.         } else {
  290.             return new JsonResponse('eror');
  291.         }
  292.     }
  293.     /**
  294.      * @Route("/Accueil5sur5/5sur5", name="sur5")
  295.      */
  296.     public function sur5()
  297.     {
  298.         $produit $this->typeProduiteService;
  299.         $liste $produit->produitlistType();
  300.         //dd($liste);
  301.         return $this->render('Accueil/5sur5.html.twig', [
  302.             'produit' => $liste,
  303.         ]);
  304.     }
  305.     /**
  306.      * @Route("/Parent/Accueil5sur5/5sur5", name="5sur5Parent")
  307.      */
  308.     public function sur5Parent()
  309.     {
  310.         $produit $this->typeProduiteService;
  311.         $liste $produit->produitlistType();
  312.         //dd($liste);
  313.         return $this->render('Accueil/5sur5.html.twig', [
  314.             'produit' => $liste,
  315.         ]);
  316.     }
  317.     /**
  318.      * @Route("/Accueil5sur5/album/{id}", name="album")
  319.      */
  320.     public function produitlist($id)
  321.     {
  322.         $produit $this->typeProduiteService;
  323.         $liste $produit->produitlistType();
  324.         $produit $id;
  325.         //dd($liste);
  326.         return $this->render('Accueil/album.html.twig', [
  327.             'produit' => $liste,
  328.             'showArt' => $produit,
  329.         ]);
  330.     }
  331.     /**
  332.      * @Route("/Parent/Accueil5sur5/album/{id}", name="albumParent")
  333.      */
  334.     public function produitlistParent($id)
  335.     {
  336.         $produit $this->typeProduiteService;
  337.         $liste $produit->produitlistType();
  338.         // dd($liste);
  339.         $produit $id;
  340.         return $this->render('Accueil/album.html.twig', [
  341.             'produit' => $liste,
  342.             'showArt' => $produit,
  343.         ]);
  344.     }
  345.     /**
  346.      * @Route("/Accueil5sur5/AlaUne", name="AlaUne")
  347.      */
  348.     public function AlaUne()
  349.     {
  350.         $blogsbolt $this->blogService;
  351.         $list $blogsbolt->allblog();
  352.         //dd($list);
  353.         return $this->render('Accueil/AlaUne.html.twig', ['list' => $list]);
  354.     }
  355.     /**
  356.      * @Route("/Parent/Accueil5sur5/AlaUne", name="AlaUneParent")
  357.      */
  358.     public function AlaUneParent()
  359.     {
  360.         $blogsbolt $this->blogService;
  361.         $list $blogsbolt->allblog();
  362.         //dd($list);
  363.         return $this->render('Accueil/AlaUneParent.html.twig', ['list' => $list]);
  364.     }
  365.     /**
  366.      * @Route("/Accueil5sur5/DetailsAlaUne/{id}", name="DetailsAlaUne")
  367.      */
  368.     public function DetailsAlaUne($id)
  369.     {
  370.         $blo $this->blogService;
  371.         $blog $blo->myblog($id);
  372.         return $this->render('Accueil/DetailsAlaUne.html.twig', ['blog' => $blog]);
  373.     }
  374.     /**
  375.      * @Route("/ServiceClient", name="ServiceClient")
  376.      * */
  377.     public function ServiceClient()
  378.     {
  379.         $produit $this->typeProduiteService;
  380.         $liste $produit->produitlistType();
  381.         // dd($liste);
  382.         return $this->render('Accueil/ServiceClient.html.twig', [
  383.             'produit' => $liste,
  384.         ]);
  385.     }
  386.     /**
  387.      * @Route("/Besoindaide", name="Besoindaide")
  388.      */
  389.     public function Besoindaide(): Response
  390.     {
  391.         $produit $this->typeProduiteService;
  392.         $liste $produit->produitlistType();
  393.         // dd($liste);
  394.         return $this->render('Accueil/Besoindaide.html.twig', [
  395.             'produit' => $liste,
  396.         ]);
  397.     }
  398.     /**
  399.      * @Route("/Mentionlegale", name="Mentionlegale")
  400.      */
  401.     public function Mentionlegale()
  402.     {
  403.         return $this->render('Accueil/mentionlegal.html.twig', []);
  404.     }
  405.     /**
  406.      * @Route("/Conditongeneral", name="Conditongeneral")
  407.      */
  408.     public function Conditongeneral()
  409.     {
  410.         return $this->render('Accueil/Condition.html.twig', []);
  411.     }
  412.     /**
  413.      * @Route("/Politique", name="Politique")
  414.      */
  415.     public function Politique()
  416.     {
  417.         return $this->render('Accueil/politique.html.twig', []);
  418.     }
  419. }