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