src/Controller/EspaceAccompagnateurController.php line 4322

Open in your IDE?
  1. <?php
  2. /*
  3.  * To change this license header, choose License Headers in Project Properties.
  4.  * To change this template file, choose Tools | Templates
  5.  * and open the template in the editor.
  6.  */
  7. namespace App\Controller;
  8. use App\Entity\Fonctions;
  9. use App\Entity\ParentSejour;
  10. use App\Entity\Clipart;
  11. use App\Entity\Produit;
  12. use App\Entity\Page;
  13. use App\Entity\Position;
  14. use App\Entity\Attachment;
  15. use App\Entity\Sejour;
  16. use App\Entity\Typeproduit;
  17. use App\Entity\User;
  18. use App\Entity\Typeref;
  19. use App\Entity\PanierProduit;
  20. use App\Entity\Panier;
  21. use App\Entity\Ref;
  22. use App\Entity\Commande;
  23. use App\Entity\Likephoto;
  24. use App\Entity\SejourAttachment;
  25. use App\Entity\TypeProduitConditionnement;
  26. use App\Message\SendEmail;
  27. use App\Service\AttachementService;
  28. use App\Service\CarteService;
  29. use App\Service\ComandeService;
  30. use App\Service\JetonService;
  31. use Dompdf\Dompdf;
  32. use setasign\Fpdi\Fpdi;
  33. use setasign\Fpdi\PdfReader;
  34. use Dompdf\Options;
  35. use Symfony\Component\Routing\Annotation\Route;
  36. use Symfony\Component\HttpFoundation\Response;
  37. use Symfony\Component\HttpFoundation\Request;
  38. use Symfony\Component\HttpFoundation\JsonResponse;
  39. use Symfony\Component\HttpFoundation\Session\Session;
  40. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  41. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  42. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  43. use Twig\Environment;
  44. use App\Service\EmailsCmdService;
  45. use App\Service\EtablissementService;
  46. use App\Service\SejourService;
  47. use App\Service\SmsService;
  48. use App\Service\TypeProduiteService;
  49. use App\Service\UserService;
  50. use Doctrine\ORM\EntityManagerInterface;
  51. use Doctrine\Persistence\ManagerRegistry;
  52. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  53. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  54. use Symfony\Component\Messenger\MessageBusInterface;
  55. use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
  56. class EspaceAccompagnateurController extends AbstractController
  57. {
  58.     private $em;
  59.     private $session;
  60.     private $templating;
  61.     private $mailer;
  62.     private $EmailServie;
  63.     private $urlGenerator;
  64.     private $sejourService;
  65.     private $userService;
  66.     private $typeProduiteService;
  67.     private $emailsCmdService;
  68.     private $smsService;
  69.     private $attachementService;
  70.     private $carteService;
  71.     private $etablissementService;
  72.     private $CommandeService;
  73.     private $params;
  74.     private MessageBusInterface $messageBus;
  75.     public function __construct(UrlGeneratorInterface $urlGeneratorManagerRegistry $emSessionInterface $session\Swift_Mailer $mailerEnvironment $templatingEmailsCmdService $EmailCommandeServiceSejourService $sejourServiceUserService $userServiceTypeProduiteService $typeProduiteServiceEmailsCmdService $emailsCmdServiceSmsService $smsServiceAttachementService $attachementServiceCarteService $carteServiceEtablissementService $etablissementServiceComandeService $CommandeServiceParameterBagInterface $paramsMessageBusInterface $messageBus)
  76.     {
  77.         $this->em $em;
  78.         $this->session $session;
  79.         $this->templating $templating;
  80.         $this->mailer $mailer;
  81.         $this->EmailServie $EmailCommandeService;
  82.         $this->urlGenerator $urlGenerator;
  83.         $this->sejourService $sejourService;
  84.         $this->userService $userService;
  85.         $this->typeProduiteService $typeProduiteService;
  86.         $this->emailsCmdService $emailsCmdService;
  87.         $this->smsService $smsService;
  88.         $this->attachementService $attachementService;
  89.         $this->carteService $carteService;
  90.         $this->etablissementService $etablissementService;
  91.         $this->CommandeService $CommandeService;
  92.         $this->params $params;
  93.         $this->messageBus $messageBus;
  94.     }
  95.     /**
  96.      * @Route("/Accompagnateur", name="headerAcc_Nouvelle")
  97.      */
  98.     public function headerAcc_Ne(): Response
  99.     {
  100.         $produit $this->typeProduiteService;
  101.         $liste $produit->produitlistType();
  102.         $nblikes 0;
  103.         $nbmesssages 0;
  104.         // dd($liste);
  105.         $session $this->session;
  106.         $panierSession $session->get("Panier");
  107.         $destination $session->get("destionation");
  108.         $nbvocal 0;
  109.         $idSejour $session->get("Sejour");
  110.         $sejour null;
  111.         if ($idSejour != null) {
  112.             $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  113.         }
  114.         $Products $session->get("Panier");
  115.         $numSuivi false;
  116.         if ($sejour != null) {
  117.             $Products $session->get("Panier");
  118.             if ($Products == Null) {
  119.                 $Products = [];
  120.             }
  121.             $UserService $this->userService;
  122.             /** @var \App\Entity\User $user */
  123.             $user $this->getUser();
  124.             $iduser $user->getId();
  125.             $containsProduitType20 false;
  126.             $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  127.             $commandes $this->em->getRepository(Commande::class)->findBy(["idSejour" => $idSejour"idUser" => $iduser]);
  128.             $sejourparent $this->em->getRepository(ParentSejour::class)->findOneBy(['idSejour' => $idSejour"idParent" => $iduser]);
  129.             $payment $sejourparent->getPayment();
  130.             // Check commands
  131.             foreach ($commandes as $commande) {
  132.                 $commandCondition $commande->getNumSuivi();
  133.                 $status $commande->getStatut()->getId();
  134.                 if ($commandCondition == && $status == 33) {
  135.                     $containsProduitType20 true;
  136.                     break; // No need to check further if condition is met
  137.                 }
  138.             }
  139.             // Check panierSession if the condition is not met in commandes
  140.             if (!$containsProduitType20 && is_array($panierSession) && !empty($panierSession)) {
  141.                 foreach ($panierSession as $item) {
  142.                     // Access the details of each item in the Panier
  143.                     $condition $item['condition'];
  144.                     $codesejour $item['codesejour'];
  145.                     if ($condition == 16 && $codesejour == $sejour->getCodeSejour()) {
  146.                         $containsProduitType20 true;
  147.                         break; // No need to check further if condition is met
  148.                     }
  149.                 }
  150.             }
  151.             $sejourservice $this->sejourService;
  152.             $messages $sejourservice->getsejourmessage($idSejour);
  153.             $nbmesssages count($messages);
  154.             $listeattachlikephoto =  $sejourservice->getlikephotosejour($iduser$idSejour);
  155.             $nblikes count($listeattachlikephoto);
  156.             $em $this->em;
  157.             $label "Livre_sejour" $sejour->getCodeSejour();
  158.             $idAcc $sejour->getIdAcommp();
  159.             $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  160.             $livreSej $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  161.             if ($albumAcc == null) {
  162.                 $albumAcc $em->getRepository(Produit::class)->findOneBy(['iduser' => 1'statut' => "Album_sejour"'idsjour' => $sejour]);
  163.             }
  164.             if ($livreSej == null) {
  165.                 $livreSejour $em->getRepository(Produit::class)->findOneBy(['statut' => "Livre_sejour"'idsjour' => $sejour'labele' => $label'version' => "Livre_Admin"]);
  166.             }
  167.             return $this->render('Accompagnateur/headerAcc.html.twig', [
  168.                 'produit' => $liste,
  169.                 'sejour' => $sejour,
  170.                 'livreSejour' => $livreSejour,
  171.                 'Products' => $Products,
  172.                 'destionation' =>  $destination,
  173.                 'nbvocal' =>  $nbmesssages,
  174.                 'albumAcc' => $albumAcc,
  175.                 'nbLikes' => $nblikes,
  176.                 'payment' => $payment
  177.             ]);
  178.         }
  179.         if ($sejour == null) {
  180.             return $this->render('Parent/headerParent2.html.twig');
  181.         }
  182.     }
  183.     /**
  184.      * @Route("/Accompagnateur/AccueilAccompagnateur", name="AccueilAccompagnateur")
  185.      */
  186.     public function AccueilAccompagnateur()
  187.     {
  188.         $sejourservice $this->sejourService;
  189.         $this->session->set('pageMenu''');
  190.         $idSejour $this->session->get("Sejour");
  191.         $sejour $sejourservice->getsejourByAcc($idSejour$this->getUser());
  192.         return $this->render('Accompagnateur/AccueilAccompagnateur.html.twig', ["sejour" => $sejour]);
  193.     }
  194.     /**
  195.      * @Route("/Accompagnateur/SejourAccompagnateur/{id}", name="SejourAccompagnateur")
  196.      */
  197.     public function SejourAccompagnateur($id)
  198.     {
  199.         $session $this->session;
  200.         //$defaultval=0;
  201.         /** @var \App\Entity\User $user */
  202.         $user $this->getUser();
  203.         $userId $user->getId();
  204.         $sejourservice $this->sejourService;
  205.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  206.         $listeattach $sejourservice->getatachmentsejour($id);
  207.         $listeattachM $sejourservice->getsejourmessage($id);
  208.         $listposition $sejourservice->getsejourposition($id);
  209.         $totalParent $sejourservice->getTotalParent($id);
  210.         $totallikes $sejourservice->getTotalLikesSejour($id);
  211.         $counts $sejourservice->countAll($id);
  212.         $listeattachlikephoto $sejourservice->getlikephotosejour($userId$id);
  213.         $date = new \Datetime("midnight");
  214.     
  215.             return $this->render('Accompagnateur/SejourAccompagnateur.html.twig', [
  216.                 'sejour' => $sejour,
  217.                 'photos' => $listeattach,
  218.                 'messages' => $listeattachM,
  219.                 'positions' => $listposition,
  220.                 'dateexpretise' => $date,
  221.                 'datefincode' => $sejour->getDateFinCode(),
  222.                 'totalParent' => $totalParent,
  223.                 'totalLikes' => $totallikes,
  224.                 'like' => count($listeattachlikephoto),
  225.                 'counts' => $counts,
  226.             ]);
  227.     
  228.     }
  229.     /**
  230.      * @Route("/", name="headerAccompagnateurDash")
  231.      */
  232.     public function headerAccompagnateurDash(): Response
  233.     {
  234.         $produit $this->typeProduiteService;
  235.         $liste $produit->produitlistType();
  236.         $nblikes 0;
  237.         $nbmesssages 0;
  238.         // dd($liste);
  239.         $session $this->session;
  240.         $destination $session->get("destionation");
  241.         $nbvocal 0;
  242.         $idSejour $session->get("Sejour");
  243.         $sejour null;
  244.         if ($idSejour != null) {
  245.             $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  246.         }
  247.         if ($sejour != null) {
  248.             $Products $session->get("Panier");
  249.             if ($Products == Null) {
  250.                 $Products = [];
  251.             }
  252.             $UserService $this->userService;
  253.             /** @var \App\Entity\User $user */
  254.             $user $this->getUser();
  255.             $iduser $user->getId();
  256.             $sejourservice $this->sejourService;
  257.             $messages $sejourservice->getsejourmessage($idSejour);
  258.             $nbmesssages count($messages);
  259.             $listeattachlikephoto =  $sejourservice->getlikephotosejour($iduser$idSejour);
  260.             $nblikes count($listeattachlikephoto);
  261.             $em $this->em;
  262.             $idAcc $sejour->getIdAcommp();
  263.             $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  264.             if ($albumAcc == null) {
  265.                 $albumAcc $em->getRepository(Produit::class)->findOneBy(['iduser' => 1'statut' => "Album_sejour"'idsjour' => $sejour]);
  266.             }
  267.             $livreSejour $em->getRepository(Produit::class)->findOneBy(['iduser' => 1'statut' => "Livre_sejour"'idsjour' => $sejour]);
  268.             return $this->render('Accompagnateur/headerAccDash.html.twig', [
  269.                 'produit' => $liste,
  270.                 'sejour' => $sejour,
  271.                 'livreSejour' => $livreSejour,
  272.                 'Products' => $Products,
  273.                 'destionation' =>  $destination,
  274.                 'nbvocal' =>  $nbmesssages,
  275.                 'albumAcc' => $albumAcc,
  276.                 'nbLikes' => $nblikes,
  277.             ]);
  278.         }
  279.         if ($sejour == null) {
  280.             return $this->render('Accompagnateur/header.html.twig');
  281.         }
  282.     }
  283.     /**
  284.      * @Route("/", name="headerAccompagnateur")
  285.      */
  286.     public function headerAccompagnateur(): Response
  287.     {
  288.         $produit $this->typeProduiteService;
  289.         $liste $produit->produitlistType();
  290.         $nblikes 0;
  291.         $nbmesssages 0;
  292.         // dd($liste);
  293.         $session $this->session;
  294.         $destination $session->get("destionation");
  295.         $nbvocal 0;
  296.         $idSejour $session->get("Sejour");
  297.         $sejour null;
  298.         if ($idSejour != null) {
  299.             $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  300.         }
  301.         if ($sejour != null) {
  302.             $Products $session->get("Panier");
  303.             if ($Products == Null) {
  304.                 $Products = [];
  305.             }
  306.             $UserService $this->userService;
  307.             /** @var \App\Entity\User $user */
  308.             $user $this->getUser();
  309.             $iduser $user->getId();
  310.             $sejourservice $this->sejourService;
  311.             $messages $sejourservice->getsejourmessage($idSejour);
  312.             $nbmesssages count($messages);
  313.             $listeattachlikephoto =  $sejourservice->getlikephotosejour($iduser$idSejour);
  314.             $nblikes count($listeattachlikephoto);
  315.             $em $this->em;
  316.             $idAcc $sejour->getIdAcommp();
  317.             $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  318.             if ($albumAcc == null) {
  319.                 $albumAcc $em->getRepository(Produit::class)->findOneBy(['iduser' => 1'statut' => "Album_sejour"'idsjour' => $sejour]);
  320.             }
  321.             $livreSejour $em->getRepository(Produit::class)->findOneBy(['iduser' => 1'statut' => "Livre_sejour"'idsjour' => $sejour]);
  322.             return $this->render('Accompagnateur/headerAcc.html.twig', [
  323.                 'produit' => $liste,
  324.                 'sejour' => $sejour,
  325.                 'livreSejour' => $livreSejour,
  326.                 'Products' => $Products,
  327.                 'destionation' =>  $destination,
  328.                 'nbvocal' =>  $nbmesssages,
  329.                 'albumAcc' => $albumAcc,
  330.                 'nbLikes' => $nblikes,
  331.             ]);
  332.         }
  333.         if ($sejour == null) {
  334.             return $this->render('Accompagnateur/header.html.twig');
  335.         }
  336.     }
  337.     /**
  338.      * @Route("/", name="footerAccompagnateur")
  339.      */
  340.     public function footerAccompagnateur(): Response
  341.     {
  342.         $produit $this->typeProduiteService;
  343.         $liste $produit->produitlistType();
  344.         // dd($liste);
  345.         $session $this->session;
  346.         $destination $session->get("destionation");
  347.         $nbvocal 0;
  348.         $nbSlection 0;
  349.         $nbPhoto 0;
  350.         $sejour null;
  351.         $sejourservice $this->sejourService;
  352.         $idSejour $session->get("Sejour");
  353.         /** @var \App\Entity\User $user */
  354.         $user $this->getUser();
  355.         $userId $user->getId();
  356.         $albumAcc null;
  357.         $em $this->em;
  358.         if ($idSejour != null) {
  359.             $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  360.             // Nb favoris 
  361.             $listeattachlikephoto $sejourservice->getlikephotosejour($userId$idSejour);
  362.             $nbSlection count($listeattachlikephoto);
  363.             // Nb photos 
  364.             $listeattach $sejourservice->getatachmentsejour($idSejour);
  365.             $nbPhoto count($listeattach);
  366.             // Nb messages vocaux 
  367.             $messages $sejourservice->getsejourmessage($idSejour);
  368.             $nbmesssages count($messages);
  369.             // Rechercher s'il y'a un album acompagnateur 
  370.             $idAcc $sejour->getIdAcommp();
  371.             $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  372.         }
  373.         return $this->render('Accompagnateur/footerAccompagnateur.html.twig', [
  374.             'destionation' =>  $destination,
  375.             'nbvocal' =>  $nbvocal,
  376.             'nbSlection' => $nbSlection,
  377.             'nbPhotos' => $nbPhoto,
  378.             'albumAcc' => $albumAcc,
  379.         ]);
  380.         if ($idSejour == null) {
  381.             $this->render('Accompagnateur/footer.html.twig');
  382.         }
  383.     }
  384.     /**
  385.      * @Route("/Accompagnateur/ProjetsAccompagnateur/{id}", name="ProjetsAccompagnateur")
  386.      */
  387.     public function ProjetsAccompagnateur($id)
  388.     {
  389.         $sejourservice $this->sejourService;
  390.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  391.         $session $this->session;
  392.         $session->set('pageMenu''projets');
  393.         $session->set('route''nonlogin');
  394.         $listeattach $sejourservice->getatachmentsejour($id);
  395.         $listeattachM $sejourservice->getsejourmessage($id);
  396.         /** @var \App\Entity\User $user */
  397.         $user $this->getUser();
  398.         $userId $user->getId();
  399.         $AlbumAll $this->em->getRepository(Produit::class)->findby(["iduser" => $userId"idsjour" => $id], ['id' => 'DESC']);
  400.         $produit $this->typeProduiteService;
  401.         $produitlist $produit->produitlistTypeConditionnement();
  402.         return $this->render('Accompagnateur/ProjetsAccompagnateur.html.twig', ['produitlist' => $produitlist'sejour' => $sejour'photos' => $listeattach'messages' => $listeattachM'AlbumAll' => $AlbumAll]);
  403.     }
  404.     /**
  405.      * @Route("/Accompagnateur/PhotosAccompagnateur/{id}", name="PhotosAccompagnateur")
  406.      */
  407.     public function PhotosAccompagnateur($id)
  408.     {
  409.         $session $this->session;
  410.         $session->set('route''nonlogin');
  411.         $session->set('pageMenu''photos');
  412.         $sejourservice $this->sejourService;
  413.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  414.         $SEjourService $this->sejourService;
  415.         $listeattach $SEjourService->getatachmentsejour($id);
  416.         $nbImages count($listeattach);
  417.         $listeVideo $SEjourService->getVideosejour($id);
  418.         $AllAttachements array_merge_recursive($listeattach$listeVideo);
  419.         $listeattachM $SEjourService->getsejourmessage($id);
  420.         $nbMsg count($listeattachM);
  421.         $listposition $sejourservice->getsejourposition($id);
  422.         $nbrpos count($listposition);
  423.         $date = new \Datetime("midnight");
  424.         $date->modify('+1 day');
  425.         $date->modify('-1 seconds');
  426.         //dd($date);
  427.         /** @var \App\Entity\User $user */
  428.         $user $this->getUser();
  429.         $iduser $user->getId();
  430.         $listeattachlikephoto $SEjourService->getlikephotosejour($iduser$id);
  431.         $produits $this->typeProduiteService;
  432.         $liste $produits->produitlistTypeConditionnement();
  433.         return $this->render('Accompagnateur/PhotosAccompagnateur.html.twig', [
  434.             'sejour' => $sejour,
  435.             'prod' => $liste,
  436.             'listeattach' => $AllAttachements,
  437.             'nbImages' => $nbImages,
  438.             'nbrpos' => $nbrpos,
  439.             'nbMessage' => $nbMsg,
  440.             'like' => $listeattachlikephoto,
  441.             'dateexpretise' => $date,
  442.             'datefincode' => $sejour->getDateFinCode(),
  443.         ]);
  444.     }
  445.     /**
  446.      * @Route("/Accompagnateur/CarteAccompagnateur/{id}", name="CarteAccompagnateur")
  447.      */
  448.     public function CarteAccompagnateur($id)
  449.     {
  450.         $session $this->session;
  451.         $session->set('route''nonlogin');
  452.         $session->set('pageMenu''carte');
  453.         $sejourservice $this->sejourService;
  454.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  455.         $date = new \Datetime("midnight");
  456.         $listeattach $sejourservice->getatachmentsejour($id);
  457.         $listeattachM $sejourservice->getsejourmessage($id);
  458.         $listposition $sejourservice->getsejourposition($id);
  459.         $nbImg count($listeattach);
  460.         $nbMsg count($listeattachM);
  461.         $nbrpos count($listposition);
  462.         return $this->render('Accompagnateur/CarteAccompagnateur.html.twig', [
  463.             'sejour' => $sejour,
  464.             'photos' => $listeattach,
  465.             'messages' => $listeattachM,
  466.             'dateexpretise' => $date,
  467.             'nbrpos' => $nbrpos,
  468.             'datefincode' => $sejour->getDateFinCode(),
  469.             'nbImg' => $nbImg,
  470.             'nbMsg' => $nbMsg
  471.         ]);
  472.     }
  473.     /**
  474.      * @Route("/Accompagnateur/ParametresAccompagnateur/{id}", name="ParametresAccompagnateur")
  475.      */
  476.     public function ParametresAccompagnateur($id)
  477.     {
  478.         $sejourservice $this->sejourService;
  479.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  480.         $session $this->session;
  481.         $session->set('route''nonlogin');
  482.         $session->set('pageMenu''parametres');
  483.         $user $this->getUser();
  484.         // dd($user);
  485.         $listeattach $sejourservice->getatachmentsejour($id);
  486.         $listeattachM $sejourservice->getsejourmessage($id);
  487.         $listeFonctions $this->em->getRepository(Fonctions::class)->findBy(array('statut' => 2));
  488.         return $this->render('Accompagnateur/ParametresAccompagnateur.html.twig', ['listeFonctions' => $listeFonctions'user' => $user'sejour' => $sejour'photos' => $listeattach'messages' => $listeattachM,]);
  489.     }
  490.     /**
  491.      * @Route("/Accompagnateur/MessagesAccompagnateur/{id}", name="MessagesAccompagnateur")
  492.      */
  493.     public function MessagesAccompagnateur($id)
  494.     {
  495.         $session $this->session;
  496.         $session->set('route''nonlogin');
  497.         $session->set('pageMenu''messages');
  498.         $sejourservice $this->sejourService;
  499.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  500.         $SEjourService $this->sejourService;
  501.         $listeattachM $SEjourService->getsejourmessage($id);
  502.         $listeattach $SEjourService->getatachmentsejour($id);
  503.         $listposition $sejourservice->getsejourposition($id);
  504.         $nbImages count($listeattach);
  505.         $nbrpos count($listposition);
  506.         $date = new \Datetime("midnight");
  507.         return $this->render('Accompagnateur/MessagesAccompagnateur.html.twig', [
  508.             'sejour' => $sejour,
  509.             'listemessage' => $listeattachM,
  510.             'dateexpretise' => $date,
  511.             'nbrpos' => $nbrpos,
  512.             'datefincode' => $sejour->getDateFinCode(),
  513.             'nbImages' => $nbImages
  514.         ]);
  515.     }
  516.     /**
  517.      * @Route("/Accompagnateur/InterfaceCreationSejour", name="InterfaceCreationSejour")
  518.      */
  519.     public function InterfaceCreationSejour()
  520.     {
  521.         $session $this->session;
  522.         $session->set('pageMenu''messages');
  523.         return $this->render('Accompagnateur/EspaceAccoCreationSejour.html.twig', []);
  524.     }
  525.     /**
  526.      * @Route("/Accompagnateur/AccoSejour", name="CreationSejourAccompagnateur")
  527.      */
  528.     public function CreationSejourAccompagnateur(Request $request)
  529.     {
  530.         $session $this->session;
  531.         $session->set('pageMenu''messages');
  532.         $SejourService $this->sejourService;
  533.         $UserService $this->userService;
  534.         /** @var \App\Entity\User $user */
  535.         $user $this->getUser();
  536.         $iduser $user->getId();
  537.         $accomp $UserService->getUserAcc($iduser);
  538.         $themSejour $request->get('theme_sejour');
  539.         $adressSejour $request->get("adress_sejour");
  540.         $codePostal $request->get("codePostal");
  541.         $dateDebut $request->get("date_debut_sejour");
  542.         $FinSejour $request->get("date_fin_sejour");
  543.         $AgeDugroupe $request->get("age_dugroupe_sejour");
  544.         $NbEnfant $request->get("NbEnfant");
  545.         $connpay $request->get("connpay");
  546.         $pays $request->get("pays");
  547.         $ville $request->get("ville");
  548.         $type $request->get("typeSejour");
  549.         /** @var \App\Entity\User $user */
  550.         $user $this->getUser();
  551.         $userid $user->getId();
  552.         $sejour $SejourService->CreationNouveauSejour($themSejour$adressSejour$codePostal$dateDebut$FinSejour$AgeDugroupe$type$userid$NbEnfant$connpay$pays$ville);
  553.         $SejourService->affecterAccompaniateur($sejour$accomp);
  554.         return new JsonResponse(["idSejour" => $sejour->getId(), "codeSejour" => $sejour->getCodeSejour(), "dateDebutCode" => $sejour->getDateCreationCode()->format('d/m/Y'), "dateFinCode" => $sejour->getDateFinCode()->format('d/m/Y')]);
  555.     }
  556.     /**
  557.      * @Route("/Accompagnateur/uploadAttSej", name="SejourAccompagnateurUploadAudio")
  558.      */
  559.     public function SejourAccompagnateur_UploadAttSej(Request $request)
  560.     {
  561.         date_default_timezone_set('Europe/Paris');
  562.         $Active $this->em->getRepository(Ref::class)->find(5);
  563.         $path $request->get("path");
  564.         $type $request->get("type");
  565.         $sejId $request->get("id");
  566.         $dateSejour $request->get("date");
  567.         $SejourServiceattachh $this->sejourService;
  568.         $Userservicemail $this->userService;
  569.         $EmailsCmdService $this->emailsCmdService;
  570.         $sejourfind $SejourServiceattachh->sejoursansattach($sejId);
  571.         $sejoursend $this->em->getRepository(Sejour::class)->find($sejId);
  572.         $oldSejourAttch $this->em->getRepository(SejourAttachment::class)->findBy(["idSejour" => $sejId]);
  573.         if (count($oldSejourAttch) == 0) {
  574.             $sendmail $Userservicemail->sendmailuserforfirstattach($sejId);
  575.             //$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot1($sejoursend->getIdPartenaire()->getEmail());
  576.             $accmailresp $sejoursend->getIdAcommp()->getReponseemail();
  577.             if ($accmailresp != NULL) {
  578.                 $sendmaildepot_Acompa $EmailsCmdService->MailRemercAccApresPremDepot2($accmailresp);
  579.             } else {
  580.                 $sendmaildepot_partenaire $EmailsCmdService->MailRemercAccApresPremDepot2($sejoursend->getIdPartenaire()->getEmail());
  581.             }
  582.         }
  583.         $SmsNotif $this->smsService;
  584.         $SMS $SmsNotif->saveSmsNotif($sejId"photo");
  585.         $attachementservice $this->attachementService;
  586.         foreach ($path as $key => $path) {
  587.             $src $path['path'];
  588.             $attachement $attachementservice->creationAttachementS($src$type$dateSejour);
  589.             $sejourservice $this->sejourService;
  590.             $sejAttach $sejourservice->affectationAttachement($sejId$attachement);
  591.             if ((array_key_exists("latitude"$path)) && ($path['latitude'] != null)) {
  592.                 $lat $path['latitude'];
  593.                 $lng $path['longitude'];
  594.                 $Cartervice $this->carteService;
  595.                 $position $Cartervice->create_newPositionImage($this->getUser(), $lat$lng);
  596.                 $Cartervice->affecterPosition($attachement$position);
  597.                 $FindSejour $this->em->getRepository(Sejour::class)->find($sejId);
  598.                 $FindSejour->setEtatAdresseCarte(true);
  599.                 $Active $this->em->getRepository(Ref::class)->find(5);
  600.                 $dateNow = new \DateTime();
  601.                 if ($FindSejour->getDateDebutSejour() <= $dateNow) {
  602.                     $FindSejour->setStatut($Active);
  603.                 }
  604.                 $this->em->getManager()->persist($FindSejour);
  605.                 $this->em->getManager()->flush();
  606.             }
  607.         }
  608.         return new JsonResponse(["id" => $attachement->getId()]);;
  609.     }
  610.     /**
  611.      * @Route("/Accompagnateur/uploadVideo", name="SejourAccompagnateurUploadVideo")
  612.      */
  613.     public function SejourAccompagnateur_UploadVideo(Request $request)
  614.     {
  615.         $Active $this->em->getRepository(Ref::class)->find(5);
  616.         $path $request->get("path");
  617.         $type $request->get("type");
  618.         $sejId $request->get("id");
  619.         $dateSejour $request->get("date");
  620.         $SejourServiceattachh $this->sejourService;
  621.         $Userservicemail $this->userService;
  622.         $EmailsCmdService $this->emailsCmdService;
  623.         $sejourfind $SejourServiceattachh->sejoursansattach($sejId);
  624.         $sejoursend $this->em->getRepository(Sejour::class)->find($sejId);
  625.         $oldSejourAttch $this->em->getRepository(SejourAttachment::class)->findBy(["idSejour" => $sejId]);
  626.         if (count($oldSejourAttch) == 0) {
  627.             $sendmail $Userservicemail->sendmailuserforfirstattach($sejId);
  628.             //$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot1($sejoursend->getIdPartenaire()->getEmail());
  629.             $accmailresp $sejoursend->getIdAcommp()->getReponseemail();
  630.             if ($accmailresp != NULL) {
  631.                 $sendmaildepot_Acompa $EmailsCmdService->MailRemercAccApresPremDepot2($accmailresp);
  632.             } else {
  633.                 $sendmaildepot_partenaire $EmailsCmdService->MailRemercAccApresPremDepot2($sejoursend->getIdPartenaire()->getEmail());
  634.             }
  635.         }
  636.         $SmsNotif $this->smsService;
  637.         $SMS $SmsNotif->saveSmsNotif($sejId"video");
  638.         $attachementservice $this->attachementService;
  639.         foreach ($path as $key => $path) {
  640.             $src $path['path'];
  641.             $attachement $attachementservice->creationAttachementS($src$type$dateSejour);
  642.             $sejourservice $this->sejourService;
  643.             $sejAttach $sejourservice->affectationAttachement($sejId$attachement);
  644.         }
  645.         $FindSejour $this->em->getRepository(Sejour::class)->find($sejId);
  646.         $dateNow = new \DateTime();
  647.         if ($FindSejour->getDateDebutSejour() <= $dateNow) {
  648.             $FindSejour->setStatut($Active);
  649.             $this->em->getManager()->persist($FindSejour);
  650.             $this->em->getManager()->flush();
  651.         }
  652.         return new JsonResponse(["id" => $attachement->getId()]);
  653.     }
  654.     /**
  655.      * @Route("/Accompagnateur/UploadMsgSej", name="SejourAccompagnateurUploadMsg")
  656.      */
  657.     public function SejourAccompagnateur_UploadMsgSej(Request $request)
  658.     {
  659.         date_default_timezone_set('Europe/Paris');
  660.         $path $request->get("path");
  661.         $type $request->get("type");
  662.         $sejId $request->get("id");
  663.         $SejourServiceattachh $this->sejourService;
  664.         $EmailsCmdService $this->emailsCmdService;
  665.         $Userservicemail $this->userService;
  666.         $sejoursend $this->em->getRepository(Sejour::class)->find($sejId);
  667.         $oldSejourAttch $this->em->getRepository(SejourAttachment::class)->findBy(["idSejour" => $sejId]);
  668.         $sejourfind $SejourServiceattachh->sejoursansattach($sejId);
  669.         if (count($oldSejourAttch) == 0) {
  670.             $sendmail $Userservicemail->sendmailuserforfirstattach($sejId);
  671.             //$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot1($sejoursend->getIdPartenaire()->getEmail());
  672.             $accmailresp $sejoursend->getIdAcommp()->getReponseemail();
  673.             if ($accmailresp != NULL) {
  674.                 $sendmaildepot_Acompa $EmailsCmdService->MailRemercAccApresPremDepot2($accmailresp);
  675.             } else {
  676.                 $sendmaildepot_partenaire $EmailsCmdService->MailRemercAccApresPremDepot2($sejoursend->getIdPartenaire()->getEmail());
  677.             }
  678.         }
  679.         $SmsNotif $this->smsService;
  680.         $SMS $SmsNotif->saveSmsNotif($sejId"audio");
  681.         $attachementservice $this->attachementService;
  682.         // $path2 = explode("blob:", $path);
  683.         $src $path['path'];
  684.         $attachement $attachementservice->creationAttachementS($src$type);
  685.         $sejourservice $this->sejourService;
  686.         $sejAttach $sejourservice->affectationAttachement($sejId$attachement);
  687.         if ($request->get("latitude") != null) {
  688.             $lat $request->get("latitude");
  689.             $lng $request->get("longitude");
  690.             $Cartervice $this->carteService;
  691.             $position $Cartervice->create_newPositionImage($this->getUser(), $lat$lng);
  692.             $Cartervice->affecterPosition($attachement$position);
  693.         }
  694.         $Active $this->em->getRepository(Ref::class)->find(5);
  695.         $FindSejour $this->em->getRepository(Sejour::class)->find($sejId);
  696.         $dateNow = new \DateTime();
  697.         if ($FindSejour->getDateDebutSejour() <= $dateNow) {
  698.             $FindSejour->setStatut($Active);
  699.             $this->em->getManager()->persist($FindSejour);
  700.             $this->em->getManager()->flush();
  701.         }
  702.         return new response("done");
  703.     }
  704.     /**
  705.      * @Route("/Accompagnateur/saveCarte", name="SejourAccompagnateurSaveCarte")
  706.      */
  707.     public function SejourAccompagnateur_SaveCarte(Request $request)
  708.     {
  709.         $sejourid $request->get("id");
  710.         $num $request->get("num");
  711.         $rue $request->get("rue");
  712.         $CodePostal $request->get("CodePostal");
  713.         $ville $request->get("ville");
  714.         $Pays $request->get("Pays");
  715.         $date $request->get("date");
  716.         $nomCarte $request->get("nomCarte");
  717.         $lat $request->get("lat");
  718.         $lng $request->get("lng");
  719.         $Cartervice $this->carteService;
  720.         $carte $Cartervice->getCardBySej($sejourid);
  721.         if ($carte == null) {
  722.             $carte $Cartervice->carteSave($sejourid);
  723.         }
  724.         $position $Cartervice->create_newPosition($carte$this->getUser(), $num$rue$CodePostal$ville$Pays$date$nomCarte$lat$lng);
  725.         $Active $this->em->getRepository(Ref::class)->find(5);
  726.         $FindSejour $this->em->getRepository(Sejour::class)->find($sejourid);
  727.         $dateNow = new \DateTime();
  728.         if ($FindSejour->getDateDebutSejour() <= $dateNow) {
  729.             $FindSejour->setStatut($Active);
  730.             $this->em->getManager()->persist($FindSejour);
  731.             $this->em->getManager()->flush();
  732.         }
  733.         return new response($position->getId());
  734.     }
  735.     /**
  736.      * @Route("Accompagnateur/Accueil5sur5/ajouteradresslirison", name="Acompaajouteradress_livrson",methods={"POST"})
  737.      */
  738.     public function ajouteradresslivr(Request $request)
  739.     {
  740.         $UserService $this->userService;
  741.         //dd($this->getUser()->getId());
  742.         /** @var \App\Entity\User $user */
  743.         $user $this->getUser();
  744.         $iduser $user->getId();
  745.         $prenom $request->get("prenom");
  746.         $nom $request->get("nom");
  747.         $organism $request->get("organism");
  748.         $num $request->get("num");
  749.         $rue $request->get('ruevoi');
  750.         $ville $request->get("villle");
  751.         $pays $request->get("pays");
  752.         $codepostal $request->get("codpostal");
  753.         //adress facturation if exsist
  754.         $prenomfacturation $request->get("prenomadressfacturation");
  755.         $nomfacturation $request->get("nomadressfacturation");
  756.         $organismfacturation $request->get("etablismadressfacturation");
  757.         $numfacturation $request->get("numdressfacturation");
  758.         $ruefacturation $request->get('rueadressfacturation');
  759.         $villefacturation $request->get("villefacturation");
  760.         $paysfacturation $request->get("payadressfacturation");
  761.         $codepostalfacturation $request->get("codepostalfacturation");
  762.         //modification userAcommpanateur
  763.         $usernomAcommpa $request->get("usernom");
  764.         $userprenomAcommpa $request->get("userprenom");
  765.         $userfonctionAcommpa $request->get("userfonction");
  766.         $EntityFonction $this->em->getRepository(Fonctions::class)->find($userfonctionAcommpa);
  767.         if ($EntityFonction) {
  768.             $userfonctionAcommpa $EntityFonction->getName();
  769.         } else {
  770.             $userfonctionAcommpa "";
  771.         }
  772.         $useretablismentAcommpa $request->get("useretablisment");
  773.         $useremailcommpa $request->get("useremail");
  774.         $sejourthem $request->get("sejourthem");
  775.         $adresssejour $request->get("sejouradresse");
  776.         $id $request->get("id");
  777.         $adress $UserService->setadresslivraison($num$rue$ville$pays$codepostal$iduser$prenom$nom$organism$prenomfacturation$nomfacturation$organismfacturation$numfacturation$ruefacturation$villefacturation$paysfacturation$codepostalfacturation$usernomAcommpa$userprenomAcommpa$userfonctionAcommpa$useretablismentAcommpa$useremailcommpa$sejourthem$adresssejour$id);
  778.         $AttachementService $this->attachementService;
  779.         $ty "logo séjour";
  780.         $AttachementService->creationLogoSejour($adress$request->get('path'), $ty);
  781.         $user->setIdFonction($EntityFonction);
  782.         $this->em->getManager()->persist($user);
  783.         $this->em->getManager()->flush();
  784.         return new JsonResponse('done');
  785.     }
  786.     /**
  787.      * @Route("/Accueil5sur5/ajouteradressfacturation", name="ajouteradress_facturation",methods={"POST","GET"})
  788.      */
  789.     public function ajouteradressfacturation(Request $request)
  790.     {
  791.         $UserService $this->userService;
  792.         /** @var \App\Entity\User $user */
  793.         $user $this->getUser();
  794.         $iduser $user->getId();
  795.         $num $request->get("num");
  796.         $rue $request->get('rue');
  797.         $ville $request->get("ville");
  798.         $pays $request->get("pays");
  799.         $codepostal $request->get("codepostal");
  800.         $adress $UserService->setadressfacturation($num$rue$ville$pays$codepostal$iduser);
  801.         return new JsonResponse('done');
  802.     }
  803.     /**
  804.      * @Route("/Accompagnateur/uploadAudio", name="SejourAccompagnateurUploadAudio1")
  805.      */
  806.     public function SejourAccompagnateur_UploadAdio(Request $request)
  807.     {
  808.         date_default_timezone_set('Europe/Paris');
  809.         $session $this->session;
  810.         /** @var \App\Entity\User $user */
  811.         $user $this->getUser();
  812.         $iduser $user->getId();
  813.         $sejourId $session->get("Sejour");
  814.         $directoryName 'message';
  815.         // Create the directory if it does not exist.
  816.         if (!is_dir($directoryName)) {
  817.             mkdir($directoryName0755);
  818.         }
  819.         $directoryName 'message/' $sejourId;
  820.         if (!is_dir($directoryName)) {
  821.             mkdir($directoryName);
  822.         }
  823.         $date = new \Datetime();
  824.         $Milliseconde $date->format('u');
  825.         $code $sejourId '-' $iduser "-" $Milliseconde;
  826.         $port $request->getPort();
  827.         $file $request->files->get("audio_data");
  828.         $file->move($directoryName$code ".wav");
  829.         $path 'https://' $_SERVER["SERVER_NAME"] . ":" $port '/' $directoryName '/' $code ".wav";
  830.         $type "message";
  831.         // Retrieve the date from the request.
  832.         // If no date is provided, default to an empty string.
  833.         // (Your creationAttachementS method will then use the current date.)
  834.         $dateParam $request->get("date""");
  835.         $attachementservice $this->attachementService;
  836.         // Pass the date parameter to your creation method.
  837.         $attachement $attachementservice->creationAttachementS($path$type$dateParam);
  838.         $sejourservice $this->sejourService;
  839.         // Test if it is the first sejour
  840.         $EmailsCmdService $this->emailsCmdService;
  841.         $Userservicemail $this->userService;
  842.         $sejoursend $this->em->getRepository(Sejour::class)->find($sejourId);
  843.         $oldSejourAttch $this->em->getRepository(SejourAttachment::class)->findBy(["idSejour" => $sejourId]);
  844.         if (count($oldSejourAttch) == 0) {
  845.             $sendmail $Userservicemail->sendmailuserforfirstattach($sejourId);
  846.             $accmailresp $sejoursend->getIdAcommp()->getReponseemail();
  847.             if ($accmailresp != NULL) {
  848.                 $sendmaildepot_Acompa $EmailsCmdService->MailRemercAccApresPremDepot2($accmailresp);
  849.             } else {
  850.                 $sendmaildepot_partenaire $EmailsCmdService->MailRemercAccApresPremDepot2($sejoursend->getIdPartenaire()->getEmail());
  851.             }
  852.         }
  853.         $sejourservice->affectationAttachement($sejourId$attachement);
  854.         if ($request->get("latitude") != null) {
  855.             $lat $request->get("latitude");
  856.             $lng $request->get("longitude");
  857.             $Cartervice $this->carteService;
  858.             $position $Cartervice->create_newPositionImage($this->getUser(), $lat$lng);
  859.             $Cartervice->affecterPosition($attachement$position);
  860.         }
  861.         return new Response("yoyo");
  862.     }
  863.     /**
  864.      * @Route("/Accompagnateur/DetailsSejourAcc", name="DetailsSejourAcc")
  865.      */
  866.     public function DetailsSejourAcc(Request $request)
  867.     {
  868.         $session $this->session;
  869.         //$defaultval=0;
  870.         /** @var \App\Entity\User $user */
  871.         $user $this->getUser();
  872.         $userId $user->getId();
  873.         $idSejour $session->get("Sejour");
  874.         $conxparent $this->sejourService;
  875.         $SEjourService $this->sejourService;
  876.         $sejour $SEjourService->getsejour($idSejour);
  877.         $dateCreationArch = clone $sejour->getDateFinCode();
  878.         if ($dateCreationArch <= new \DateTime()) {
  879.             return $this->render('Parent/SejourDepassee.html.twig');
  880.         }
  881.         $idSejour $sejour->getId();
  882.         $SEjourService $this->sejourService;
  883.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  884.         $this->session->set('Sejour'$idSejour);
  885.         $dateCreationArch = clone $sejour->getDateFinCode();
  886.         if ($dateCreationArch <= new \DateTime()) {
  887.             return $this->render('Parent/SejourDepassee.html.twig');
  888.         }
  889.         $session->set('pageMenu''MonSejour');
  890.         $AllAttachements $SEjourService->getphotosVideosSejour($idSejour'original'$userId);
  891.         $nbImages count($AllAttachements);
  892.         $messages $SEjourService->getCombinedattachSejour($idSejour'message');
  893.         $positions $SEjourService->getsejourposition($idSejour);
  894.         $photoLikes = [];
  895.         foreach ($AllAttachements as $attach) {
  896.             if (!isset($attach['id_attchment'])) {
  897.                 // Skip this attachment if no id is available
  898.                 continue;
  899.             }
  900.             $libiller $attach['libiller'] ?? null;
  901.             // Only count likes for items that are photos (assuming video attachments have 'libiller' set to "video")
  902.             if ($libiller !== 'video') {
  903.                 $photoLikes[$attach['id_attchment']] = $this->sejourService->getTotallikesphotosejour($attach['id_attchment'], $idSejour);
  904.             }
  905.         }
  906.         $em $this->em;
  907.         $idAcc $sejour->getIdAcommp();
  908.         $em $this->em;
  909.         $idAcc $sejour->getIdAcommp();
  910.         //VERIFICATION DE L EXISTANCE DE LIVRE OU D ALBUM SEJOUR 
  911.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  912.         if ($albumAcc == null) {
  913.             $albumAcc $em->getRepository(Produit::class)->findOneBy(['iduser' => 1'statut' => "Album_sejour"'idsjour' => $sejour]);
  914.         }
  915.         $label "Livre_sejour" $sejour->getCodeSejour();
  916.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  917.         $livreSej $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  918.         if ($albumAcc == null) {
  919.             $albumAcc $em->getRepository(Produit::class)->findOneBy(['iduser' => 1'statut' => "Album_sejour"'idsjour' => $sejour]);
  920.         }
  921.         if ($livreSej == null) {
  922.             $livreSejour $em->getRepository(Produit::class)->findOneBy(['statut' => "Livre_sejour"'idsjour' => $sejour'labele' => $label'version' => "Livre_Admin"]);
  923.         }
  924.         $attachementsCount $AllAttachements['total'];
  925.         unset($AllAttachements['total']);
  926.         $date = new \Datetime("midnight");
  927.         $date->modify('+1 day');
  928.         $date->modify('-1 seconds');
  929.         return $this->render('Accompagnateur/DetailsSejourAcc.html.twig', [
  930.             "sejour" => $sejour,
  931.             'listeattach' => $AllAttachements,
  932.             'attachementsCount' => $attachementsCount,
  933.             'albumAcc' => $albumAcc,
  934.             "livreSejour" => $livreSejour,
  935.             'nbImages' => $nbImages,
  936.             'positions' => $positions,
  937.             'dateexpretise' => $date,
  938.             'messages' => $messages,
  939.             'like' => $listeattachlikephoto,
  940.             'nblike' => count($listeattachlikephoto),
  941.             'photoLikes' => $photoLikes,
  942.             'datefincode' => $sejour->getDateFinCode(),
  943.         ]);
  944.     }
  945.     /**
  946.      * @Route("/Accompagnateur/changePageSession", name="changePageSession")
  947.      */
  948.     public function changePageSession(Request $requestsession $session)
  949.     {
  950.         $page $request->get('page');
  951.         $session->set('pageMenu'$page);
  952.         return new Response('ok');
  953.     }
  954.     /**
  955.      * @Route("Accompagnateur/Accueil5sur5/commantaire", name="addd_commantaire",methods={"POST"})
  956.      */
  957.     public function ajoutercomm(Request $request)
  958.     {
  959.         $UserService $this->userService;
  960.         $iduser $this->getUser()->getId();
  961.         $id $request->get('idatach');
  962.         $description $request->get("description");
  963.         $adress $UserService->setDescriptionAttch($id$description);
  964.         return new JsonResponse('done');
  965.     }
  966.     /**
  967.      * @Route("Accompagnateur/Accueil5sur5/deletecommantaire", name="rem_commantaire")
  968.      */
  969.     public function deletecomm(Request $request)
  970.     {
  971.         $UserService $this->userService;
  972.         $iduser $this->getUser()->getId();
  973.         $id $request->get('idatach');
  974.         $adress $UserService->DelDescriptionAttch($id);
  975.         return new JsonResponse('done');
  976.     }
  977.     /**
  978.      * @Route("/Accompagnateur/deletePostion", name="SejourAccompagnateurDeletePosition")
  979.      */
  980.     public function SejourAccompagnateur_deletePosition(Request $request)
  981.     {
  982.         $idPosition $request->get("id");
  983.         $Cartervice $this->carteService;
  984.         $carte $Cartervice->deleteCardPosition($idPosition);
  985.         return new response("done");
  986.     }
  987.     /**
  988.      * @Route("Accompagnateur/Accueil5sur5/supprimermesgeAudio", name="supprimermesgeAudio",methods={"POST"})
  989.      */
  990.     public function supprimmaudio(Request $request)
  991.     {
  992.         $UserService $this->userService;
  993.         $id $request->get('id');
  994.         $adress $UserService->supprimaudio($id);
  995.         return new JsonResponse('done');
  996.     }
  997.     /**
  998.      * @Route("Accompagnateur/testmail", name="testMAil",methods={"GET"})
  999.      */
  1000.     public function testEmail()
  1001.     {
  1002.         $UserService $this->sejourService;
  1003.         $UserService->EnvoyerEmailCodeSejour(33);
  1004.         return new response("test");
  1005.     }
  1006.     /**
  1007.      * @Route("Accompagnateur/Accueil5sur5/ajouterdatesejourdescription", name="ajouterdatesejourdescription",methods={"POST"})
  1008.      */
  1009.     public function ajouterdatesejourdescription(Request $request)
  1010.     {
  1011.         $dateString $request->request->get('datedescription'); // e.g. "02/05/2025"
  1012.         $id $request->get('id');
  1013.         $description $request->get('description');
  1014.         // Pass the raw string:
  1015.         $desc $this->userService->ajouterdatesejourdescription($id$description$dateString);
  1016.         return new JsonResponse('done');
  1017.     }
  1018.     /**
  1019.      * @Route("Accompagnateur/commanderAccompAdress", name="commanderAccompAdress",methods={"POST"})
  1020.      */
  1021.     public function CommanderAccompAdress(Request $request)
  1022.     {
  1023.         $em $this->em;
  1024.         $nbAlbums          $request->request->get('nbAlbums');
  1025.         $email             $request->request->get('email');
  1026.         $phone             $request->request->get('phone');
  1027.         $country           $request->request->get('country');
  1028.         $city              $request->request->get('city');
  1029.         $region            $request->request->get('region');
  1030.         $address           $request->request->get('address');
  1031.         $addressComplement $request->request->get('addressComplement');
  1032.         $postalCode        $request->request->get('postalCode');
  1033.         $idsejour          $request->request->get('idSejour');
  1034.         $sejour $em->getRepository(Sejour::class)->findOneBy(['id' => $idsejour]);
  1035.         $accompagnateur $this->getUser();
  1036.         
  1037.         // Génération de l'URL d'administration pour le séjour
  1038.         $adminUrl $this->generateUrl('DetailsSejourAcc', ['id' => $idsejour], UrlGeneratorInterface::ABSOLUTE_URL);
  1039.         // Envoi aux trois adresses spécifiées
  1040.         $message = new SendEmail(
  1041.             ['contact@5sur5sejour.com''yousra.tlich@gmail.com''ramzi.benlarbi@gmail.com'],
  1042.             'Nouvelle demande de commande groupée - Séjour ' $sejour->getCodeSejour(),
  1043.             'emails/NotificationDemandeCommandeGroupee.html.twig',
  1044.             [
  1045.                 'accompagnateur' => $accompagnateur,
  1046.                 'sejour' => $sejour,
  1047.                 'adminUrl' => $adminUrl,
  1048.                 'nbAlbums' => $nbAlbums,
  1049.                 'email' => $email,
  1050.                 'phone' => $phone,
  1051.                 'adresseLivraison' => [
  1052.                     'pays' => $country,
  1053.                     'ville' => $city,
  1054.                     'region' => $region,
  1055.                     'adresse' => $address,
  1056.                     'complement' => $addressComplement,
  1057.                     'codePostal' => $postalCode
  1058.                 ]
  1059.             ]
  1060.         );
  1061.         $this->messageBus->dispatch($message);
  1062.         return new JsonResponse('done');
  1063.     }
  1064.     /**
  1065.      * @Route("Accompagnateur/Accueil5sur5/supprimdescription", name="supprimdescription")
  1066.      */
  1067.     public function supprimdescription(Request $request)
  1068.     {
  1069.         $UserService $this->userService;
  1070.         $iddescription $request->get('iddescription');
  1071.         $desc $UserService->supprimdescription($iddescription);
  1072.         return new JsonResponse('done');
  1073.     }
  1074.     /**
  1075.      * @Route("Accompagnateur/Accueil5sur5/modificationdescription", name="modificationdescription",methods={"POST"})
  1076.      */
  1077.     public function modificationdescription(Request $request)
  1078.     {
  1079.         $UserService $this->userService;
  1080.         $iddescription $request->get('iddescription');
  1081.         $description $request->get('description');
  1082.         $desc $UserService->modificationdescription($iddescription$description);
  1083.         return new JsonResponse('done');
  1084.     }
  1085.     /**
  1086.      * @Route("Accompagnateur/EditionAlbum", name="VoirProjet")
  1087.      */
  1088.     public function AffichageProjet()
  1089.     {
  1090.         $sejourservice $this->sejourService;
  1091.         $session $this->session;
  1092.         $idSejour $session->get("Sejour");
  1093.         $sejour $sejourservice->getsejourByAcc($idSejour$this->getUser());
  1094.         $session->set('pageMenu''albumSej');
  1095.         $user $this->getUser();
  1096.         // dd($user);
  1097.         $iduser $this->getUser()->getId();
  1098.         $listeattach $sejourservice->getatachmentsejour($idSejour);
  1099.         $listeattachM $sejourservice->getsejourmessage($idSejour);
  1100.         $em $this->em;
  1101.         $clipart null;
  1102.         $random true;
  1103.         $listeattachlikephoto $sejourservice->getlikephotosejour($iduser$idSejour);
  1104.         $listerandom $listeattachlikephoto;
  1105.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'random']);
  1106.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  1107.         $allpagesResult = array();
  1108.         $tabacc = array();
  1109.         $tabacc1 = array();
  1110.         if ($random == true) {
  1111.             foreach ($AllPages as $p) {
  1112.                 $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  1113.                 //dd($arrayexploded);
  1114.                 $rr "";
  1115.                 $elemPath "";
  1116.                 $elemId "";
  1117.                 for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  1118.                     if ($i sizeof($arrayexploded)) {
  1119.                         if (sizeof($listerandom) == 0) {
  1120.                             $listerandom $sejourservice->getlikephotosejour($iduser$idSejour);
  1121.                         }
  1122.                         $arrayRsRandom $this->random_function($listerandom);
  1123.                         array_push($tabacc$arrayRsRandom['idelem']);
  1124.                         $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  1125.                         unset($listerandom[$arrayRsRandom['elem']]);
  1126.                     } else {
  1127.                         $rr $rr $arrayexploded[$i];
  1128.                     }
  1129.                     $listerandom $listerandom;
  1130.                 }
  1131.                 $resultFinal $rr;
  1132.                 $p->setCouleurbordure($resultFinal);
  1133.                 array_push($allpagesResult$p);
  1134.             }
  1135.             $AllPages $allpagesResult;
  1136.             $version 'new';
  1137.         } else {
  1138.             $version $Albumproduct->getVersion();
  1139.         }
  1140.         $tabacc1 array_count_values($tabacc);
  1141.         $part $sejour->getIdPartenaire();
  1142.         $nompart $part->getUsername();
  1143.         $logopart $part->getLogourl();
  1144.         return $this->render('Accompagnateur/NewAlbum2.html.twig', ["tabacc" => $tabacc1"nompart" => $nompart"logopart" => $logopart'user' => $user'sejour' => $sejour'photos' => $listeattach'messages' => $listeattachM'cliparts' => $clipart'like' => $listeattachlikephoto'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  1145.     }
  1146.     function random_function($listerandom)
  1147.     {
  1148.         $elem array_rand($listerandom);
  1149.         $photo $listerandom[$elem];
  1150.         $idelem $photo->getIdSejourAttchment()->getIdAttchment()->getId();
  1151.         $pathelem $photo->getIdSejourAttchment()->getIdAttchment()->getPath();
  1152.         return array('pathelem' => $pathelem'idelem' => $idelem'elem' => $elem);
  1153.     }
  1154.     function random_functionPhoto($listerandom$elem)
  1155.     {
  1156.         $photo $listerandom[$elem];
  1157.         $idelem $photo->getIdSejourAttchment()->getIdAttchment()->getId();
  1158.         $pathelem $photo->getIdSejourAttchment()->getIdAttchment()->getPath();
  1159.         return array('pathelem' => $pathelem'idelem' => $idelem'elem' => $elem);
  1160.     }
  1161.     /**
  1162.      * @Route("Accompagnateur/Condtyg", name="conditiongenerale_Acomp",methods={"POST"})
  1163.      */
  1164.     public function condition(Request $request)
  1165.     {
  1166.         $UserService $this->userService;
  1167.         $id $request->get('id');
  1168.         $sejour $UserService->condition($id);
  1169.         return new JsonResponse('done');
  1170.     }
  1171.     /**
  1172.      * @Route("Accompagnateur/MonPanierAccompaganteur", name="MonPanierAccompaganteur")
  1173.      */
  1174.     public function MonPanierAccompaganteur()
  1175.     {
  1176.         $em $this->em;
  1177.         $sejourservice $this->sejourService;
  1178.         $session $this->session;
  1179.         $idSejour $session->get("Sejour");
  1180.         $sejour $sejourservice->getsejourByAcc($idSejour$this->getUser());
  1181.         $session->set('pageMenu''panier');
  1182.         $user $this->getUser();
  1183.         $products $session->get("Panier_Acompa");
  1184.         $listeproduit $em->getRepository(Produit::class)->findBy(array('iduser' => $user->getId(), "idsjour" => $idSejour));
  1185.         $produit $this->typeProduiteService;
  1186.         $produitlist $produit->produitlistTypeConditionnement();
  1187.         return $this->render('Accompagnateur/MonPanierAccompaganteur.html.twig', ['user' => $user"listeproduit" => $listeproduit'sejour' => $sejour'Panier' => $products'produitlist' => $produitlist]);
  1188.     }
  1189.     /**
  1190.      * @Route("Accompagnateur/SessionPromo", name="SessionPromo")
  1191.      */
  1192.     public function SessionPromo()
  1193.     {
  1194.         $session $this->session;
  1195.         $session->set("promoAcc""true");
  1196.         return new Response('ok');
  1197.     }
  1198.     /**
  1199.      * @Route("/Accompagnateur/suprimerattachAcommpailmag", name="suprimerattachAcommpailmag")
  1200.      */
  1201.     public function suprimerattachAcommpailmag(Request $request)
  1202.     {
  1203.         $serviceuser $this->etablissementService;
  1204.         $id $request->get("prodId");
  1205.         $etablissementDetail $serviceuser->supprisionimageadminfon($id);
  1206.         //dd($etablissementDetail);
  1207.         return new response('done');
  1208.     }
  1209.     /**
  1210.      * @Route("/Accompagnateur/suprimermultiattachAcommp", name="suprimermultiattachAcommp")
  1211.      */
  1212.     public function suprimermultiattachAcommp(Request $request)
  1213.     {
  1214.         // Decode the JSON request body to get the array of photo IDs.
  1215.         $data json_decode($request->getContent(), true);
  1216.         $photoIds = isset($data['photoIds']) ? $data['photoIds'] : [];
  1217.         if (empty($photoIds)) {
  1218.             return new Response('No photos selected'400);
  1219.         }
  1220.         // Call the service to delete all attachments by the given IDs.
  1221.         $this->etablissementService->supprismultiattachAcommp($photoIds);
  1222.         return new Response('done');
  1223.     }
  1224.     /**
  1225.      * @Route("/Accompagnateur/AlbummsavealbumAcompa", name="Albummsavealbum")
  1226.      */
  1227.     public function Albummsavealbum(Request $request)
  1228.     {
  1229.         $serviceuser $this->etablissementService;
  1230.         $page $request->get("pages");
  1231.         $sejour $request->get("sejour");
  1232.         $prodid $request->get('idProd');
  1233.         $nomprod $request->get('nomprod');
  1234.      
  1235.         $version $request->get('new');
  1236.         $user $this->getUser();
  1237.          $stat="Album_sejour";
  1238.         $Album $serviceuser->savealbumAcc($page$user$sejour$prodid$stat$nomprod$version);
  1239.         return new response('done');
  1240.     }
  1241.     /**
  1242.      * @Route("/Accompagnateur/DupliquerAlbumAcco", name="DupliquerAlbumAcco")
  1243.      */
  1244.     public function DupliquerAlbumAcco(Request $request)
  1245.     {
  1246.         $serviceuser $this->etablissementService;
  1247.         $page $request->get("pages");
  1248.         $sejour $request->get("sejour");
  1249.         $prodid $request->get('idProd');
  1250.         $nomprod $request->get('nomprod');
  1251.         $stat $request->get('stat');
  1252.         $user $this->getUser();
  1253.         $Album $serviceuser->savealbumAcc($page$user$sejour$prodid$stat$nomprod);
  1254.         return new response('done');
  1255.     }
  1256.     /**
  1257.      * @Route("/Accompagnateur/AlbummsavealbumAcompa_panier", name="Albummsavealbum_panier")
  1258.      */
  1259.     public function Albummsavealbum_panier(Request $request)
  1260.     {
  1261.         $serviceuser $this->etablissementService;
  1262.         $page $request->get("pages");
  1263.         $sejour $request->get("sejour");
  1264.         $prodid $request->get('idProd');
  1265.         $nomprod $request->get('nomprod');
  1266.         $version $request->get('new');
  1267.         $stat "draft";
  1268.         $em $this->em;
  1269.         $user $this->getUser();
  1270.         $typeref $em->getRepository(Typeref::class)->find(8);
  1271.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1272.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1273.         //fin
  1274.         if ($panierTrace == null) {
  1275.             $panierTrace = new Panier();
  1276.             $dateNow = new \Datetime();
  1277.             $panierTrace->setDateCreation($dateNow);
  1278.             $panierTrace->setCreerPar($user);
  1279.             $panierTrace->setStatut($statutPanier);
  1280.             $em->getManager()->persist($panierTrace);
  1281.             $em->getManager()->flush();
  1282.         }
  1283.         $Album $serviceuser->savealbumAcc($page$user$sejour$prodid$stat$nomprod$version);
  1284.         $inser false;
  1285.         $session $this->session;
  1286.         $Products $session->get("Panier_Acompa");
  1287.         $em $this->em;
  1288.         if ($Products == null) {
  1289.             $Products = [];
  1290.         }
  1291.         foreach ($Products as $key => $p) {
  1292.             if ($p['id'] == $Album->getId()) {
  1293.                 $inser true;
  1294.                 $Products[$key]['qte'] = $p['qte'] + 1;
  1295.                 $Products[$key]['mnt'] = $p['mnt'] + $Album->getIdConditionnement()->getMontantTTC();
  1296.             }
  1297.         }
  1298.         //Touhemi :Rechercher  si le produti existe déja ds panierProduit
  1299.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $Album"idPanier" => $panierTrace));
  1300.         if ($panierProduit == null) {
  1301.             $panierProduit = new PanierProduit();
  1302.             $panierProduit->setIdProduit($Album);
  1303.             $panierProduit->setIdPanier($panierTrace);
  1304.             $em->getManager()->persist($panierProduit);
  1305.             $em->getManager()->flush();
  1306.         }
  1307.         //fin
  1308.         //Touhemi ajouter plus un au produit et modifier prixTotal
  1309.         $oldQte $panierProduit->getQuantite();
  1310.         $newQte $oldQte 1;
  1311.         $panierProduit->setQuantite($newQte);
  1312.         if ($panierProduit->getPrixTotal() == null) {
  1313.             $oldTotal $panierProduit->getPrixTotal();
  1314.         } else {
  1315.             $oldTotal 0;
  1316.         }
  1317.         $newTotal $oldTotal $Album->getIdConditionnement()->getMontantTTC();
  1318.         $panierProduit->setPrixTotal($newTotal);
  1319.         $this->em->getManager()->persist($panierProduit);
  1320.         $this->em->getManager()->flush();
  1321.         //fin
  1322.         if ($inser === false) {
  1323.             //get nessaisire element
  1324.             $p = [];
  1325.             $p["id"] = $Album->getId();
  1326.             $p["nom"] = $Album->getType()->getLabeletype();
  1327.             $p["ident"] = $Album->getLabele();
  1328.             $p["codesejour"] = $Album->getIdsjour()->getcodeSejour();
  1329.             $p["mnt"] = $Album->getIdConditionnement()->getMontantTTC();
  1330.             $p["path"] = $Album->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  1331.             $p["condition"] = $Album->getIdConditionnement()->getId();
  1332.             $p["poids"] = $Album->getIdConditionnement()->getPoidsProduit();
  1333.             $p["statut"] = $Album->getStatut();
  1334.             $p["qte"] = 1;
  1335.             array_push($Products$p);
  1336.         }
  1337.         $session->set('Panier_Acompa'$Products);
  1338.         return new response('done');
  1339.     }
  1340.     /**
  1341.      * @Route("Accompagnateur/MonAlbum/{id}", name="getmonAlbum")
  1342.      */
  1343.     public function getMyAlbumProjet($id)
  1344.     {
  1345.         $sejourservice $this->sejourService;
  1346.         $session $this->session;
  1347.         $idSejour $session->get("Sejour");
  1348.         $sejour $sejourservice->getsejourByAcc($idSejour$this->getUser());
  1349.         $session->set('pageMenu''parametres');
  1350.         $user $this->getUser();
  1351.         // dd($user);
  1352.         $iduser $this->getUser()->getId();
  1353.         $listeattach $sejourservice->getatachmentsejour($idSejour);
  1354.         $listeattachM $sejourservice->getsejourmessage($idSejour);
  1355.         $em $this->em;
  1356.         $clipart null;
  1357.         $random false;
  1358.         $tabacc = array();
  1359.         $tabacc1 = array();
  1360.         $listeattachlikephoto $sejourservice->getlikephotosejour($iduser$idSejour);
  1361.         $Albumproduct $em->getRepository(Produit::class)->find($id);
  1362.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  1363.         foreach ($AllPages as $page) {
  1364.             $pageJ json_decode($page->getCouleurbordure());
  1365.             $pageDec json_decode($pageJ[0]);
  1366.             $attache json_decode($pageDec->attache);
  1367.             if (isset($attache[0])) {
  1368.                 $attachDec json_decode($attache[0]);
  1369.             }
  1370.             if (isset($attachDec->id) && json_decode($attachDec->id) !== null && $attachDec->id !== '') {
  1371.                 $idAttach json_decode($attachDec->id);
  1372.                 array_push($tabacc$idAttach);
  1373.             }
  1374.         }
  1375.         $part $sejour->getIdPartenaire();
  1376.         $nompart $part->getUsername();
  1377.         $logopart $part->getLogourl();
  1378.         $FindSejour $em->getRepository(Sejour::class)->find($idSejour);
  1379.         $FindSejour->setEtatAcompAlbum(true);
  1380.         $em->getManager()->persist($FindSejour);
  1381.         $em->getManager()->flush();
  1382.         $tabacc1 array_count_values($tabacc);
  1383.         $version $Albumproduct->getVersion();
  1384.         if ($version === 'new') {
  1385.             return $this->render('Accompagnateur/NewAlbum2.html.twig', ["tabacc" => $tabacc1"nompart" => $nompart"logopart" => $logopart'user' => $user'sejour' => $sejour'photos' => $listeattach'messages' => $listeattachM'cliparts' => $clipart'like' => $listeattachlikephoto'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  1386.         } else {
  1387.             return $this->render('Accompagnateur/NewAlbum2.html.twig', ["tabacc" => $tabacc1"nompart" => $nompart"logopart" => $logopart'user' => $user'sejour' => $sejour'photos' => $listeattach'messages' => $listeattachM'cliparts' => $clipart'like' => $listeattachlikephoto'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  1388.         }
  1389.     }
  1390.     /**
  1391.      * @Route("/Accompagnateur/modifierLabel_produit_Acompa", name="modifierLabel_produit_Acompa",methods={"POST"})
  1392.      */
  1393.     public function modifierLabel_produit_Acompa(Request $request)
  1394.     {
  1395.         $SEjourService $this->sejourService;
  1396.         $userId $this->getUser()->getId();
  1397.         $session $this->session;
  1398.         $idPrd $request->get("id");
  1399.         $description $request->get("description");
  1400.         $SEjourService->modif_lbel_Produit($idPrd$description);
  1401.         return new Response('done');
  1402.     }
  1403.     /**
  1404.      * @Route("/Accompagnateur/ajouterauPanier_Accompagnateur", name="Ajouter_MonPanier_Acompa")
  1405.      */
  1406.     public function Ajouter_MonPanier(Request $request)
  1407.     {
  1408.         $inser false;
  1409.         $session $this->session;
  1410.         $testsaved false;
  1411.         $Products $session->get("Panier_Acompa");
  1412.         $id $request->get("id");
  1413.         $em $this->em;
  1414.         $produit $em->getRepository(Produit::class)->find($id);
  1415.         //Touhemi :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  1416.         $user $this->getUser();
  1417.         $typeref $em->getRepository(Typeref::class)->find(8);
  1418.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1419.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1420.         //fin
  1421.         if ($panierTrace == null) {
  1422.             $panierTrace = new Panier();
  1423.             $dateNow = new \Datetime();
  1424.             $panierTrace->setDateCreation($dateNow);
  1425.             $panierTrace->setCreerPar($user);
  1426.             $panierTrace->setStatut($statutPanier);
  1427.             $em->getManager()->persist($panierTrace);
  1428.             $em->getManager()->flush();
  1429.         }
  1430.         $sejourFind $produit->getIdsjour();
  1431.         $nrbconnx $em->getRepository(ParentSejour::class)->findBy(["idSejour" => $sejourFind->getId(), "payment" => 1]);
  1432.         $Album_Grtuie $produit->getIdsjour()->getAlbumgratuie();
  1433.         if ($Products == null) {
  1434.             $Products = [];
  1435.         }
  1436.         //Touhemi :Rechercher  si le produti existe déja ds panierProduit
  1437.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  1438.         if ($panierProduit == null) {
  1439.             $panierProduit = new PanierProduit();
  1440.             $panierProduit->setIdProduit($produit);
  1441.             $panierProduit->setIdPanier($panierTrace);
  1442.             $em->getManager()->persist($panierProduit);
  1443.             $em->getManager()->flush();
  1444.         }
  1445.         foreach ($Products as $key => $p) {
  1446.             if ($p['id'] == $produit->getId()) {
  1447.                 $inser true;
  1448.                 $Products[$key]['qte'] = $p['qte'] + 1;
  1449.                 // je regarde dans le panier si j'ai déjà ajouté un album gratuit
  1450.                 if ($p["statut"] == "saved" && $p["qte"] == 0) {
  1451.                     $Products[$key]['mnt'] = $produit->getIdConditionnement()->getMontantTTC();
  1452.                 } elseif ($p["statut"] == "saved" && $p["qte"] > 0) {
  1453.                     $Products[$key]['mnt'] = ($Products[$key]['qte'] - 1) * $produit->getIdConditionnement()->getMontantTTC();
  1454.                 }
  1455.                 // Si je n'ai pas d'album gratuit j'ajoute normalement,
  1456.                 else {
  1457.                     $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  1458.                 }
  1459.             }
  1460.             if ($Products[$key]["statut"] == "saved") {
  1461.                 $testsaved true// *****je sais que le panier contient déjà un album accompagnateur gratuit donc il peut commander un autre  
  1462.             }
  1463.         }
  1464.         //Touhemi ajouter plus un au produit et modifier prixTotal
  1465.         $oldQte $panierProduit->getQuantite();
  1466.         $newQte $oldQte 1;
  1467.         $panierProduit->setQuantite($newQte);
  1468.         if ($panierProduit->getPrixTotal() == null) {
  1469.             $oldTotal $panierProduit->getPrixTotal();
  1470.         } else {
  1471.             $oldTotal 0;
  1472.         }
  1473.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  1474.         $panierProduit->setPrixTotal($newTotal);
  1475.         $this->em->getManager()->persist($panierProduit);
  1476.         $this->em->getManager()->flush();
  1477.         //fin
  1478.         if ($inser === false) {
  1479.             //get nessaisire element
  1480.             $p = [];
  1481.             $p["id"] = $produit->getId();
  1482.             $p["nom"] = $produit->getType()->getLabeletype();
  1483.             $p["ident"] = $produit->getLabele();
  1484.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  1485.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  1486.             $p["condition"] = $produit->getIdConditionnement()->getId();
  1487.             $p["poids"] = $produit->getIdConditionnement()->getPoidsProduit();
  1488.             $p["statut"] = "payment";
  1489.             $p["qte"] = 1;
  1490.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  1491.             // dd($p);
  1492.             array_push($Products$p);
  1493.         }
  1494.         $session->set('Panier_Acompa'$Products);
  1495.         return new JsonResponse('done');
  1496.     }
  1497.     /**
  1498.      * @Route("/Accompagnateur/ActiverSessionAlbum", name="ActiverSessionAlbum")
  1499.      */
  1500.     public function ActiverSessionAlbum(Request $request)
  1501.     {
  1502.         $session->set('Panier_Acompa'$Products);
  1503.         return new JsonResponse('done');
  1504.     }
  1505.     /**
  1506.      * @Route("/Accompagnateur/suprimer_panier_Acompa", name="suprimer_panier_Acompa")
  1507.      */
  1508.     public function suprimer_Album_panier(Request $request)
  1509.     {
  1510.         $session $this->session;
  1511.         $Products $session->get("Panier_Acompa");
  1512.         $id $request->get("p");
  1513.         $idsej "";
  1514.         $gratuit "";
  1515.         foreach ($Products as $key => $p) {
  1516.             if ($p['id'] == $id) {
  1517.                 if ($p['statut'] == "saved") {
  1518.                     $gratuit true;
  1519.                 }
  1520.                 unset($Products[$key]);
  1521.             }
  1522.         }
  1523.         foreach ($Products as $key => $p) {
  1524.             if ($p['condition'] == && $gratuit == true) {
  1525.                 $p[$key]['condition'] = "saved";
  1526.                 $Products[$key]['mnt'] = $Products[$key]['mnt'] - ($Products[$key]['mnt'] / $Products[$key]['qte']);
  1527.                 $gratuit false;
  1528.             }
  1529.         }
  1530.         $em $this->em;
  1531.         $user $this->getUser();
  1532.         $produit $em->getRepository(Produit::class)->find($id);
  1533.         $session->set('Panier_Acompa'$Products);
  1534.         $typeref $em->getRepository(Typeref::class)->find(8);
  1535.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1536.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1537.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  1538.         $em->getManager()->remove($panierProduit);
  1539.         $em->getManager()->flush();
  1540.         return new Response('done');
  1541.     }
  1542.     /**
  1543.      * @Route("/Accompagnateur/Commander", name="Commander_Acompa")
  1544.      */
  1545.     public function Commander()
  1546.     {
  1547.         $session $this->session;
  1548.         #  var_dump($session);
  1549.         $idSejour $session->get("Sejour");
  1550.         $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  1551.         $user $this->getUser();
  1552.         $comande $session->get("comande");
  1553.         $panier $session->get("Panier_Acompa");
  1554.         $typeref $this->em->getRepository(Typeref::class)->find(8);
  1555.         $statutPanier $this->em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1556.         $panierTrace $this->em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1557.         $jetonService = new JetonService($this->em);
  1558.         $promotion 0;
  1559.         //if(($jetonService->checkJetonUser($user->getId()))&&($jetonService->checkApplicablePanier($panier))){
  1560.         //    $jetonService->appliquerJetonUserPanier($panierTrace->getId(),$user->getId());
  1561.         //    $promotion=$jetonService->getPromotion();
  1562.         //}else if($panierTrace->getJeton()==1){
  1563.         //    $promotion=$jetonService->getPromotion();
  1564.         //}
  1565.         $Conditionnement $this->em->getRepository(TypeProduitConditionnement::class)->find(1);
  1566.         $prixphotos $Conditionnement->getMontantTTC();
  1567.         //dd();
  1568.         //var_dump($promotion." ".$panierTrace->getJeton());
  1569.         return $this->render('Accompagnateur/commande.html.twig', ["user" => $user"sejour" => $sejour"x" => $panier'promotion' => $promotion'prixphotos' => $prixphotos]);
  1570.     }
  1571.     /**
  1572.      * @Route("/Accompagnateur/adresse_comande", name="adresse_comande_Acompa",methods={"POST"})
  1573.      */
  1574.     public function adresse_comande_Acompa(Request $request)
  1575.     {
  1576.         $UserService $this->userService;
  1577.         //dd($this->getUser()->getId());
  1578.         $iduser $this->getUser()->getId();
  1579.         $prenom $request->get("prenom");
  1580.         $nom $request->get("nom");
  1581.         $organism $request->get("organism");
  1582.         $rue $request->get('ruevoi');
  1583.         $ville $request->get("villle");
  1584.         $pays $request->get("pays");
  1585.         $codepostal $request->get("codpostal");
  1586.         //adress facturation if exsist
  1587.         $prenomfacturation $request->get("prenomadressfacturation");
  1588.         $nomfacturation $request->get("nomadressfacturation");
  1589.         $organismfacturation $request->get("etablismadressfacturation");
  1590.         $ruefacturation $request->get('rueadressfacturation');
  1591.         $villefacturation $request->get("villefacturation");
  1592.         $paysfacturation $request->get("payadressfacturation");
  1593.         $codepostalfacturation $request->get("codepostalfacturation");
  1594.         //modification userPArent
  1595.         $adress $UserService->modifieradress_comande($rue$ville$pays$codepostal$iduser$prenom$nom$organism$prenomfacturation$nomfacturation$organismfacturation$ruefacturation$villefacturation$paysfacturation$codepostalfacturation);
  1596.         return new JsonResponse('done');
  1597.     }
  1598.     /**
  1599.      * @Route("/Accompagnateur/pass_Comande_Acompa_Alb", name="pass_Comande_Acompa_Alb",methods={"POST"})
  1600.      */
  1601.     public function AcompacomandeProduit(Request $request)
  1602.     {
  1603.         $em $this->em;
  1604.         $comandeservice $this->CommandeService;
  1605.         $userId $this->getUser()->getId();
  1606.         $session $this->session;
  1607.         // $comande = $request->get("x");
  1608.         $frais $request->get("fraiEnvoi");
  1609.         $envoipost $request->get("envoipost");
  1610.         $Products $session->get("Panier_Acompa");
  1611.         $totalepanier $request->get("totalepanier");
  1612.         $session->set('envoipost'$envoipost);
  1613.         $comand $comandeservice->addcomande_parent($Products$userId$frais$totalepanier$envoipost);
  1614.         $comand->setAdresslivraison($this->getUser()->getAdresslivraison());
  1615.         $comand->setAdressfactoration($this->getUser()->getAdressfactoration());
  1616.         $em->getManager()->persist($comand);
  1617.         $em->getManager()->flush();
  1618.         //$session->set('envoipost',$envoipost );
  1619.         //panier retour a zero
  1620.         //$Products=[];
  1621.         $session->set('commandeActual'$comand->getId());
  1622.         return new Response($comand->getId());
  1623.     }
  1624.     /**
  1625.      * @Route("/Accompagnateur/soustractionproduit_panierAcomp", name="soustractionproduit_panierAcomp",methods={"POST"})
  1626.      */
  1627.     public function soustractionproduit_panierAcomp(Request $request)
  1628.     {
  1629.         $session $this->session;
  1630.         $Products $session->get("Panier_Acompa");
  1631.         $id $request->get("p");
  1632.         $em $this->em;
  1633.         $user $this->getUser();
  1634.         $gratuit "";
  1635.         $produit $em->getRepository(Produit::class)->find($id);
  1636.         foreach ($Products as $key => $p) {
  1637.             if ($p['id'] == $id) {
  1638.                 if ($p["statut"] == "saved" && $p["qte"] == 1) {
  1639.                     if ($p['statut'] == "saved") {
  1640.                         $gratuit true;
  1641.                     }
  1642.                     unset($Products[$key]);
  1643.                 } elseif ($p["statut"] == "saved" && $p["qte"] > 1) {
  1644.                     $Products[$key]['qte'] = $p['qte']  - 1;
  1645.                     $Products[$key]['mnt'] = $Products[$key]['mnt'] - $produit->getIdConditionnement()->getMontantTTC();
  1646.                 } elseif ($p["qte"] == 1) {
  1647.                     unset($Products[$key]);
  1648.                 } else {
  1649.                     $Products[$key]['qte'] = $p['qte'] - 1;
  1650.                     $Products[$key]['mnt'] = $Products[$key]['mnt'] - $produit->getIdConditionnement()->getMontantTTC();
  1651.                 }
  1652.             }
  1653.         }
  1654.         foreach ($Products as $key => $p) {
  1655.             if ($p['condition'] == && $gratuit == true) {
  1656.                 $Products[$key]['statut'] = "saved";
  1657.                 $Products[$key]['mnt'] = $Products[$key]['mnt'] - ($Products[$key]['mnt'] / $Products[$key]['qte']);
  1658.                 $gratuit false;
  1659.             }
  1660.         }
  1661.         $session->set('Panier_Acompa'$Products);
  1662.         $typeref $em->getRepository(Typeref::class)->find(8);
  1663.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1664.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1665.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  1666.         if ($panierProduit != null) {
  1667.             $oldQte $panierProduit->getQuantite();
  1668.             $newQte $oldQte 1;
  1669.             if ($newQte 0) {
  1670.                 $panierProduit->setQuantite($newQte);
  1671.                 $oldTotal $panierProduit->getPrixTotal();
  1672.                 $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  1673.                 $panierProduit->setPrixTotal($newTotal);
  1674.                 $em->getManager()->persist($panierProduit);
  1675.                 $em->getManager()->flush();
  1676.             }
  1677.             if ($newQte == 0) {
  1678.                 $em->getManager()->remove($panierProduit);
  1679.                 $em->getManager()->flush();
  1680.             }
  1681.             return new Response('done');
  1682.         }
  1683.     }
  1684.     /**
  1685.      * @Route("/Accompagnateur/Additionproduit_panierAcomp", name="additiondproduit_Acompa",methods={"POST"})
  1686.      */
  1687.     public function additiondproduit_parent(Request $request)
  1688.     {
  1689.         $session $this->session;
  1690.         $Products $session->get("Panier_Acompa");
  1691.         $id $request->get("p");
  1692.         $em $this->em;
  1693.         $user $this->getUser();
  1694.         $produit $em->getRepository(Produit::class)->find($id);
  1695.         foreach ($Products as $key => $p) {
  1696.             if ($p['id'] == $produit->getId()) {
  1697.                 $inser true;
  1698.                 $Products[$key]['qte'] = $p['qte'] + 1;
  1699.                 if ($p["statut"] == "saved" && $p["qte"] == 0) {
  1700.                     $Products[$key]['mnt'] = $produit->getIdConditionnement()->getMontantTTC();
  1701.                 } elseif ($p["statut"] == "saved" && $p["qte"] > 0) {
  1702.                     $Products[$key]['mnt'] = ($Products[$key]['qte'] - 1) * $produit->getIdConditionnement()->getMontantTTC();
  1703.                 } else {
  1704.                     $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  1705.                 }
  1706.             }
  1707.         }
  1708.         $session->set('Panier_Acompa'$Products);
  1709.         $typeref $em->getRepository(Typeref::class)->find(8);
  1710.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1711.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1712.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  1713.         if ($panierProduit != null) {
  1714.             $oldQte $panierProduit->getQuantite();
  1715.             $newQte $oldQte 1;
  1716.             $panierProduit->setQuantite($newQte);
  1717.             $oldTotal $panierProduit->getPrixTotal();
  1718.             $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  1719.             $panierProduit->setPrixTotal($newTotal);
  1720.             $em->getManager()->persist($panierProduit);
  1721.             $em->getManager()->flush();
  1722.         }
  1723.         return new Response('done');
  1724.     }
  1725.     /**
  1726.      * @Route("/Accompagnateur/SupprimerCommande", name="Supprimer_CommandeAcco")
  1727.      */
  1728.     function RemoveCommandeAcco(Request $request)
  1729.     {
  1730.         $CommandeService $this->CommandeService;
  1731.         $idCmd $request->get('id');
  1732.         $result $CommandeService->CommandeCloture($idCmd);
  1733.         return new Response($result);
  1734.     }
  1735.     /**
  1736.      * @Route("/Accompagnateur/delateSession", name="delateSession",methods={"POST"})
  1737.      */
  1738.     public function delateSession(Request $request)
  1739.     {
  1740.         $session $this->session;
  1741.         $em $this->em;
  1742.         $Products = [];
  1743.         if ($session->get("paymentmoniteco") == "succses") {
  1744.             $Products = [];
  1745.             $session->set('Panier_Acompa'$Products);
  1746.             $user $this->getUser();
  1747.             $typeref $em->getRepository(Typeref::class)->find(8);
  1748.             $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1749.             $payer $em->getRepository(Ref::class)->findOneBy(array("libiller" => "payer""typeref" => $typeref));
  1750.             $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1751.             if ($panierTrace) {
  1752.                 $panierTrace->setStatut($payer);
  1753.                 $em->getManager()->persist($panierTrace);
  1754.                 $em->getManager()->flush();
  1755.             }
  1756.         }
  1757.         $this->session->remove('paymentmoniteco');
  1758.         $this->session->remove('montanttotalcomande');
  1759.         $this->session->remove('Panierlength');
  1760.         $this->session->remove('envoipost');
  1761.         return new Response('done');
  1762.     }
  1763.     /**
  1764.      * @Route("/Accompagnateur/SuiviCommande/{id}", name="SuiviCommand")
  1765.      */
  1766.     public function SuiviCommand($id)
  1767.     {
  1768.         $sejourservice $this->sejourService;
  1769.         $cmdservice $this->CommandeService;
  1770.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  1771.         $session $this->session;
  1772.         $session->set('route''nonlogin');
  1773.         $session->set('pageMenu''parametres');
  1774.         $user $this->getUser();
  1775.         $listeCmd $cmdservice->listerCommandeParUser($user$sejour);
  1776.         //dd($listeCmd);
  1777.         return $this->render('Accompagnateur/suivicommande.html.twig', ['user' => $user'sejour' => $sejour'listeCmd' => $listeCmd]);
  1778.     }
  1779.     /**
  1780.      * @Route("/Accompagnateur/pdffactureAccomptest/{id}", name="pdffactureAccomptest")
  1781.      */
  1782.     public function pdffactureAccomptest($id)
  1783.     {
  1784.         $em $this->em;
  1785.         $cmd $em->getRepository(Commande::class)->find($id);
  1786.         return $this->render('Accompagnateur/pdfFactureAccomp.html.twig', [
  1787.             "comande" => $cmd,
  1788.         ]);
  1789.     }
  1790.     /**
  1791.      * @Route("/Accompagnateur/pdffactureAccomp/{id}", name="pdffactureAccomp")
  1792.      */
  1793.     public function pdffactureAccomp($id)
  1794.     {
  1795.         $em $this->em;
  1796.         $cmd $em->getRepository(Commande::class)->find($id);
  1797.         //dd($cmdProd);
  1798.         // Configure Dompdf according to your needs
  1799.         $pdfOptions = new Options();
  1800.         $pdfOptions->set('isRemoteEnabled'TRUE);
  1801.         $pdfOptions->set('defaultFont''Arial');
  1802.         // Instantiate Dompdf with our options
  1803.         $dompdf = new Dompdf($pdfOptions);
  1804.         $dompdf->set_option('isRemoteEnabled'TRUE);
  1805.         // Retrieve the HTML generated in our twig file
  1806.         $html $this->renderView('Accompagnateur/pdfFactureAccomp.html.twig', [
  1807.             "comande" => $cmd,
  1808.         ]);
  1809.         // Load HTML to Dompdf
  1810.         $dompdf->loadHtml($html);
  1811.         // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  1812.         $dompdf->setPaper('A4''portrait');
  1813.         // Render the HTML as PDF
  1814.         $dompdf->render();
  1815.         // Output the generated PDF to Browser (force download)
  1816.         $dompdf->stream("facture.pdf", [
  1817.             "Attachment" => true
  1818.         ]);
  1819.     }
  1820.     /**
  1821.      * @Route("/Accompagnateur/suprimerproduitAcompa", name="suprimerproduitAcompa")
  1822.      */
  1823.     public function suprimerproduitAcompa(Request $request)
  1824.     {
  1825.         $em $this->em;
  1826.         $user $this->getUser();
  1827.         $p $request->get("p");
  1828.         $Album $em->getRepository(Produit::class)->find($p);
  1829.         $Album->setDelated(1);
  1830.         $em->getManager()->persist($Album);
  1831.         $em->getManager()->flush();
  1832.         return new Response('yoopi');
  1833.     }
  1834.     /**
  1835.      * @Route("/Accompagnateur/affectationPositionPhoto", name="affectationPositionPhoto")
  1836.      */
  1837.     public function affectationPositionPhoto(Request $request)
  1838.     {
  1839.         $postionID $request->get("position");
  1840.         $attachs = ($request->get("attach"));
  1841.         $positionOrigin $this->em->getRepository(Position::class)->find($postionID);
  1842.         $Cartervice $this->carteService;
  1843.         foreach ($attachs as $key => $att) {
  1844.             $Attachement $this->em->getRepository(Attachment::class)->find($att);
  1845.             //  $attachement = $this->em->getRepository(Position::class)->find();
  1846.             $lat floatval($positionOrigin->getLatPosition()) + (0.0005 $key);
  1847.             $lng floatval($positionOrigin->getLngPosition()) + (0.0005 $key);
  1848.             $position $Cartervice->create_newPositionImage($this->getUser(), $lat$lng);
  1849.             $Cartervice->affecterPosition($Attachement$position);
  1850.         }
  1851.         //0.0001
  1852.         return new Response("done");
  1853.     }
  1854.     /**
  1855.      * @Route("/Accompagnateur/appActiveAcompt_Acompa/{sejour}", name="appActiveAcompt_Acompa")
  1856.      */
  1857.     public function appActiveAcompt_Acompa($sejour)
  1858.     {
  1859.         ini_set("max_execution_time", -1);
  1860.         ini_set('memory_limit''-1');
  1861.         $em $this->em;
  1862.         $SejourService $this->sejourService;
  1863.         $sejourfind $em->getRepository(Sejour::class)->find($sejour);
  1864.         $user $sejourfind->getIdAcommp();
  1865.         $em->getManager()->persist($user);
  1866.         $em->getManager()->flush();
  1867.         $SejourService->EnvoyerEmailOKActivation_CompteAcc($sejourfind->getId());
  1868.         //$SejourService->EnvoyerEmailPasswordSejourToPartenaireAndAcco($sejourfind->getId());
  1869.         //      $SejourService->EnvoyerEmailNewPartenaire($sejourfind->getIdPartenaire());
  1870.         $providerKey 'main_Acommpa'// your firewall name
  1871.         $token = new UsernamePasswordToken($usernull$providerKey$user->getRoles());
  1872.         $this->container->get('security.token_storage')->setToken($token);
  1873.         $this->session->set('Sejour'$sejourfind->getId());
  1874.         return $this->redirectToRoute('SejourAccompagnateur', ['id' => $sejourfind->getId()]);
  1875.         //return $this->redirectToRoute('Mon_Compte_Activer_Acompa');
  1876.     }
  1877.     /**
  1878.      * @Route("/Accompagnateur/LivrePhotos", name="LivrePhotosAccom")
  1879.      */
  1880.     public function EditionLivrePhotosAccompagnateur()
  1881.     {
  1882.         $SEjourService $this->sejourService;
  1883.         $userId $this->getUser()->getId();
  1884.         $session $this->session;
  1885.         $session->set('pageMenu''');
  1886.         $idSejour $session->get("Sejour");
  1887.         $sejour $SEjourService->getsejourpourparent($idSejour);
  1888.         $em $this->em;
  1889.         $clipart null;
  1890.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  1891.         $listerandom $listeattachlikephoto;
  1892.         $random true;
  1893.         $allpagesResult = array();
  1894.         $tabacc = array();
  1895.         $tabacc1 = array();
  1896.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomLivre']);
  1897.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  1898.         $idAcc $sejour->getIdAcommp();
  1899.         $part $sejour->getIdPartenaire();
  1900.         $nompart $part->getUsername();
  1901.         $logopart $part->getLogourl();
  1902.         foreach ($AllPages as $p) {
  1903.             $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  1904.             $rr "";
  1905.             $elemPath "";
  1906.             $elemId "";
  1907.             for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  1908.                 if ($i sizeof($arrayexploded)) {
  1909.                     if (sizeof($listerandom) == 0) {
  1910.                         $listerandom $SEjourService->getlikephotosejour($userId$idSejour);
  1911.                     }
  1912.                     $arrayRsRandom $this->random_function($listerandom);
  1913.                     array_push($tabacc$arrayRsRandom['idelem']);
  1914.                     $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  1915.                     unset($listerandom[$arrayRsRandom['elem']]);
  1916.                 } else {
  1917.                     $rr $rr $arrayexploded[$i];
  1918.                 }
  1919.                 $listerandom $listerandom;
  1920.             }
  1921.             $resultFinal $rr;
  1922.             $p->setCouleurbordure($resultFinal);
  1923.             array_push($allpagesResult$p);
  1924.         }
  1925.         $tabacc1 array_count_values($tabacc);
  1926.         $AllPages $allpagesResult;
  1927.         return $this->render('Accompagnateur/NewLivre3.html.twig', ["tabacc" => $tabacc1"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  1928.     }
  1929.     /**
  1930.      * @Route("/Accompagnateur/LivrePhotos3", name="LivrePhotosAccom3")
  1931.      */
  1932.     public function EditionLivrePhotosAccompagnateur3()
  1933.     {
  1934.         $SEjourService $this->sejourService;
  1935.         $userId $this->getUser()->getId();
  1936.         $session $this->session;
  1937.         $session->set('pageMenu''');
  1938.         $idSejour $session->get("Sejour");
  1939.         $sejour $SEjourService->getsejourpourparent($idSejour);
  1940.         $em $this->em;
  1941.         $clipart null;
  1942.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  1943.         $listerandom $listeattachlikephoto;
  1944.         $random true;
  1945.         $allpagesResult = array();
  1946.         $tabacc = array();
  1947.         $tabacc1 = array();
  1948.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomLivre']);
  1949.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  1950.         $idAcc $sejour->getIdAcommp();
  1951.         $part $sejour->getIdPartenaire();
  1952.         $nompart $part->getUsername();
  1953.         $logopart $part->getLogourl();
  1954.         foreach ($AllPages as $p) {
  1955.             $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  1956.             $rr "";
  1957.             $elemPath "";
  1958.             $elemId "";
  1959.             for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  1960.                 if ($i sizeof($arrayexploded)) {
  1961.                     if (sizeof($listerandom) == 0) {
  1962.                         $listerandom $SEjourService->getlikephotosejour($userId$idSejour);
  1963.                     }
  1964.                     $arrayRsRandom $this->random_function($listerandom);
  1965.                     array_push($tabacc$arrayRsRandom['idelem']);
  1966.                     $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  1967.                     unset($listerandom[$arrayRsRandom['elem']]);
  1968.                 } else {
  1969.                     $rr $rr $arrayexploded[$i];
  1970.                 }
  1971.                 $listerandom $listerandom;
  1972.             }
  1973.             $resultFinal $rr;
  1974.             $p->setCouleurbordure($resultFinal);
  1975.             array_push($allpagesResult$p);
  1976.         }
  1977.         $tabacc1 array_count_values($tabacc);
  1978.         $AllPages $allpagesResult;
  1979.         return $this->render('Accompagnateur/NewLivre3.html.twig', ["tabacc" => $tabacc1"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  1980.     }
  1981.     /**
  1982.      * @Route("Accompagnateur/LivrePhotos/{idAlbm}", name="EditionlivrefrompanierAccompagnateur")
  1983.      */
  1984.     public function EditionLivrePhotosAccompagnateurparId($idAlbm)
  1985.     {
  1986.         $SEjourService $this->sejourService;
  1987.         $userId $this->getUser()->getId();
  1988.         $user $this->getUser();
  1989.         $session $this->session;
  1990.         $session->set('pageMenu''');
  1991.         $idSejour $session->get("Sejour");
  1992.         $produit $session->get("produit");
  1993.         $sejour $SEjourService->getsejourpourparent($idSejour);
  1994.         $em $this->em;
  1995.         $clipart null;
  1996.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  1997.         $random false;
  1998.         $Albumproduct $em->getRepository(Produit::class)->find($idAlbm);
  1999.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2000.         $allpagesResult = array();
  2001.         $tabacc = array();
  2002.         $tabacc1 = array();
  2003.         foreach ($AllPages as $page) {
  2004.             $pageJ json_decode($page->getCouleurbordure());
  2005.             $pageDec json_decode($pageJ[0]);
  2006.             $attache json_decode($pageDec->attache);
  2007.             if (isset($attache[0])) {
  2008.                 $attachDec json_decode($attache[0]);
  2009.             }
  2010.             //var_dump($attachDec);
  2011.             //var_dump(json_decode($attachDec->id));
  2012.             if (isset($attachDec->id) && json_decode($attachDec->id) !== null && $attachDec->id !== '') {
  2013.                 $idAttach json_decode($attachDec->id);
  2014.                 array_push($tabacc$idAttach);
  2015.             }
  2016.         }
  2017.         $tabacc1 array_count_values($tabacc);
  2018.         $part $sejour->getIdPartenaire();
  2019.         $nompart $part->getUsername();
  2020.         $logopart $part->getLogourl();
  2021.         $session->set('produit'$Albumproduct->gettype());
  2022.         $version $Albumproduct->getVersion();
  2023.         if ($version === 'new') {
  2024.             return $this->render('Accompagnateur/NewLivre3.html.twig', ["tabacc" => $tabacc1"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  2025.         } else {
  2026.             return $this->render('Accompagnateur/NewLivre3.html.twig', ["tabacc" => $tabacc1"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  2027.         }
  2028.     }
  2029.     /**
  2030.      * @Route("/Accompagnateur/saveLivrePhotos", name="saveLivrePhotosAccompagnateur")
  2031.      */
  2032.     public function saveLivrePhotos(Request $request)
  2033.     {
  2034.         $session $this->session;
  2035.         $serviceuser $this->etablissementService;
  2036.         $page $request->get("pages");
  2037.         $sejour $request->get("sejour");
  2038.         $prodid $request->get('idProd');
  2039.         $nomprod $request->get('nomprod');
  2040.         $version $request->get('new');
  2041.         $user $this->getUser();
  2042.         $produitcondition $session->get("produit");
  2043.         $produit $session->get("produittype");
  2044.         $produitcondss $session->get('produitconditionAlbum');
  2045.         $Album $serviceuser->saveOrUpdateLivreParent($page$user$sejour$prodid$produitcondss$nomprod$version);
  2046.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2047.         return new response('done');
  2048.     }
  2049.     /**
  2050.      * @Route("/Accompagnateur/saveLivrePhotosPanier", name="saveLivrePhotosPanierAccompagnateur")
  2051.      */
  2052.     public function saveLivrePhotospuisPanier(Request $request)
  2053.     {
  2054.         $em $this->em;
  2055.         $session $this->session;
  2056.         $produittype $session->get("produit");
  2057.         $produit $session->get("produittype");
  2058.         $serviceuser $this->etablissementService;
  2059.         $page $request->get("pages");
  2060.         $sejour $request->get("sejour");
  2061.         $prodid $request->get('idProd');
  2062.         $nomprod $request->get('nomprod');
  2063.         $version $request->get('new');
  2064.         $user $this->getUser();
  2065.         $Album $serviceuser->savelivreParent($page$user$sejour$prodid$produittype$nomprod$version);
  2066.         $inser false;
  2067.         $session $this->session;
  2068.         $Products $session->get("Panier_Acompa");
  2069.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  2070.         //Touhemi  02-07-2020 :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  2071.         $user $this->getUser();
  2072.         $typeref $em->getRepository(Typeref::class)->find(8);
  2073.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2074.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2075.         //fin
  2076.         if ($panierTrace == null) {
  2077.             $panierTrace = new Panier();
  2078.             $dateNow = new \Datetime();
  2079.             $panierTrace->setDateCreation($dateNow);
  2080.             $panierTrace->setCreerPar($user);
  2081.             $panierTrace->setStatut($statutPanier);
  2082.             $em->getManager()->persist($panierTrace);
  2083.             $em->getManager()->flush();
  2084.         }
  2085.         //Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
  2086.         if ($Products == null) {
  2087.             $Products = [];
  2088.         }
  2089.         foreach ($Products as $key => $p) {
  2090.             if ($p['id'] == $produit->getId()) {
  2091.                 $inser true;
  2092.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2093.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2094.             }
  2095.         }
  2096.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  2097.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2098.         if ($panierProduit == null) {
  2099.             $panierProduit = new PanierProduit();
  2100.             $panierProduit->setIdProduit($produit);
  2101.             $panierProduit->setIdPanier($panierTrace);
  2102.             $em->getManager()->persist($panierProduit);
  2103.             $em->getManager()->flush();
  2104.         }
  2105.         //fin
  2106.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  2107.         $oldQte $panierProduit->getQuantite();
  2108.         $newQte $oldQte 1;
  2109.         $panierProduit->setQuantite($newQte);
  2110.         $oldTotal $panierProduit->getPrixTotal();
  2111.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  2112.         $panierProduit->setPrixTotal($newTotal);
  2113.         $em->getManager()->persist($panierProduit);
  2114.         $em->getManager()->flush();
  2115.         //fin
  2116.         if ($inser === false) {
  2117.             $p = [];
  2118.             $p["id"] = $produit->getId();
  2119.             $p["nom"] = $produit->getType()->getLabeletype();
  2120.             $p["ident"] = $produit->getLabele();
  2121.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  2122.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  2123.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  2124.             $p["condition"] = $produit->getIdConditionnement()->getId();
  2125.             $p["statut"] = $produit->getStatut();
  2126.             $p["qte"] = 1;
  2127.             array_push($Products$p);
  2128.         }
  2129.         $session->set('Panier_Acompa'$Products);
  2130.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2131.         return new response('done');
  2132.     }
  2133.     /**
  2134.      * @Route("Accompagnateur/AjoutPochettePhotos/{nbr}", name="AjoutPochettePhotosAccompagnateur")
  2135.      */
  2136.     public function AjoutPochettePhotosAccompagnateur($nbr)
  2137.     {
  2138.         $SEjourService $this->sejourService;
  2139.         $userId $this->getUser()->getId();
  2140.         $user $this->getUser();
  2141.         $session $this->session;
  2142.         $session->set('pageMenu''');
  2143.         $idSejour $session->get("Sejour");
  2144.         $produitcondition $session->get("produit");
  2145.         $produit $session->get("produittype");
  2146.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2147.         $em $this->em;
  2148.         $clipart $em->getRepository(Clipart::class)->findAll();
  2149.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2150.         $listerandom $listeattachlikephoto;
  2151.         $AllPagesAcc null;
  2152.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'RandomPochette' $nbr]);
  2153.         $random true;
  2154.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2155.         $idAcc $sejour->getIdAcommp();
  2156.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  2157.         $part $sejour->getIdPartenaire();
  2158.         $nompart $part->getUsername();
  2159.         $logopart $part->getLogourl();
  2160.         if ($albumAcc != null and $albumAcc != "") {
  2161.             $AllPagesAcc $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
  2162.         }
  2163.         $allpagesResult = array();
  2164.         $j 0;
  2165.         if ($random == true) {
  2166.             foreach ($AllPages as $p) {
  2167.                 $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  2168.                 //                var_dump($arrayexploded);
  2169.                 $rr "";
  2170.                 $elemPath "";
  2171.                 $elemId "";
  2172.                 for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  2173.                     if ($i sizeof($arrayexploded)) {
  2174.                         if (sizeof($listerandom) == 0) {
  2175.                             $listerandom $listeattachlikephoto;
  2176.                         }
  2177.                         $arrayRsRandom $this->random_functionPhoto($listerandom$j);
  2178.                         $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  2179.                         unset($listerandom[$arrayRsRandom['elem']]);
  2180.                     } else {
  2181.                         $rr $rr $arrayexploded[$i];
  2182.                     }
  2183.                     $listerandom $listerandom;
  2184.                 }
  2185.                 $resultFinal $rr;
  2186.                 $p->setCouleurbordure($resultFinal);
  2187.                 array_push($allpagesResult$p);
  2188.                 if ($j sizeof($listeattachlikephoto) - 1) {
  2189.                     $j $j 1;
  2190.                 } else {
  2191.                     $j 0;
  2192.                 }
  2193.             }
  2194.             $AllPages $allpagesResult;
  2195.         }
  2196.         return $this->render('Accompagnateur/PochettePhotos.html.twig', ["nbr" => $nbr"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'albumAcc' => $albumAcc'AllPagesAcc' => $AllPagesAcc'random' => $random]);
  2197.     }
  2198.     /**
  2199.      * @Route("/Accompagnateur/AjoutPochettePhotosAccompgnateur_Fav/{nbr}", name="NewPochettePhotoAcompagnateurFavoris")
  2200.      */
  2201.     public function NewPochettePhotoAcompagnateurFavoris($nbr)
  2202.     {
  2203.         $SEjourService $this->sejourService;
  2204.         $user $this->getUser();
  2205.         $userId $this->getUser()->getId();
  2206.         $session $this->get('session');
  2207.         $session->set('pageMenu''');
  2208.         $idSejour $session->get("Sejour");
  2209.         $produitcondition $session->get("produit");
  2210.         $produit $session->get("produittype");
  2211.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2212.         $em $this->getDoctrine()->getManager();
  2213.         $listeattachlikephoto $em->getRepository(Likephoto::class)->findBy(['idUser' =>  $userId'idSejour' =>  $idSejour]);
  2214.         foreach ($listeattachlikephoto as $photo) {
  2215.             $idattach $photo->getIdSejourAttchment();
  2216.             $SejattachPhoto  $photo->getIdSejourAttchment();
  2217.             $urlPhoto  =   $SejattachPhoto->getIdAttchment()->getPath();
  2218.             //$urlPhoto =   $attachPhoto->getPath();
  2219.             $new_url str_replace('upload/''upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/',  $urlPhoto);
  2220.             $photosData[] = [
  2221.                 'id' => $photo->getId(),
  2222.                 'url' =>    $new_url,
  2223.                 'caption' => "",
  2224.             ];
  2225.         }
  2226.         $nbLikes count($listeattachlikephoto);
  2227.         $photosDataJSON json_encode($photosData);
  2228.         return $this->render('/Accompagnateur/PochettePhotosLikes.html.twig', ["nbr" => $nbr"sejour" => $sejour,  "nbLikes" => $nbLikes'photosFav' =>    $photosDataJSON]);
  2229.     }
  2230.     /**
  2231.      * @Route("Accompagnateur/AjoutPhotosRetros/{nbr}", name="AjoutPhotosRetrosAccompagnateur")
  2232.      */
  2233.     public function AjoutPhotosRetrosAccompagnateur($nbr)
  2234.     {
  2235.         $SEjourService $this->sejourService;
  2236.         $userId $this->getUser()->getId();
  2237.         $user $this->getUser();
  2238.         $session $this->session;
  2239.         $session->set('pageMenu''');
  2240.         $idSejour $session->get("Sejour");
  2241.         $produitcondition $session->get("produit");
  2242.         $produit $session->get("produittype");
  2243.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2244.         $em $this->em;
  2245.         $clipart $em->getRepository(Clipart::class)->findAll();
  2246.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2247.         $listerandom $listeattachlikephoto;
  2248.         $AllPagesAcc null;
  2249.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'RandomPochette' $nbr]);
  2250.         $random true;
  2251.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2252.         $idAcc $sejour->getIdAcommp();
  2253.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  2254.         $part $sejour->getIdPartenaire();
  2255.         $nompart $part->getUsername();
  2256.         $logopart $part->getLogourl();
  2257.         if ($albumAcc != null and $albumAcc != "") {
  2258.             $AllPagesAcc $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
  2259.         }
  2260.         $allpagesResult = array();
  2261.         $j 0;
  2262.         if ($random == true) {
  2263.             foreach ($AllPages as $p) {
  2264.                 $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  2265.                 //                var_dump($arrayexploded);
  2266.                 $rr "";
  2267.                 $elemPath "";
  2268.                 $elemId "";
  2269.                 for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  2270.                     if ($i sizeof($arrayexploded)) {
  2271.                         if (sizeof($listerandom) == 0) {
  2272.                             $listerandom $listeattachlikephoto;
  2273.                         }
  2274.                         $arrayRsRandom $this->random_functionPhoto($listerandom$j);
  2275.                         $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  2276.                         unset($listerandom[$arrayRsRandom['elem']]);
  2277.                     } else {
  2278.                         $rr $rr $arrayexploded[$i];
  2279.                     }
  2280.                     $listerandom $listerandom;
  2281.                 }
  2282.                 $resultFinal $rr;
  2283.                 $p->setCouleurbordure($resultFinal);
  2284.                 array_push($allpagesResult$p);
  2285.                 if ($j sizeof($listeattachlikephoto) - 1) {
  2286.                     $j $j 1;
  2287.                 } else {
  2288.                     $j 0;
  2289.                 }
  2290.             }
  2291.             $AllPages $allpagesResult;
  2292.         }
  2293.         return $this->render('Accompagnateur/PhotosRetros.html.twig', ["nbr" => $nbr"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'albumAcc' => $albumAcc'AllPagesAcc' => $AllPagesAcc'random' => $random]);
  2294.     }
  2295.     /**
  2296.      * @Route("Accompagnateur/Calendrier", name="CalendrierAccompagnateur")
  2297.      */
  2298.     public function CalendrierAccompagnateur()
  2299.     {
  2300.         $SEjourService $this->sejourService;
  2301.         $userId $this->getUser()->getId();
  2302.         $user $this->getUser();
  2303.         $session $this->session;
  2304.         $session->set('pageMenu''');
  2305.         $idSejour $session->get("Sejour");
  2306.         $produitcondition $session->get("produit");
  2307.         $produit $session->get("produittype");
  2308.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2309.         $em $this->em;
  2310.         $clipart $em->getRepository(Clipart::class)->findAll();
  2311.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2312.         $listerandom $listeattachlikephoto;
  2313.         $AllPagesAcc null;
  2314.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomcalendrier']);
  2315.         $random true;
  2316.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2317.         $idAcc $sejour->getIdAcommp();
  2318.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  2319.         $part $sejour->getIdPartenaire();
  2320.         $nompart $part->getUsername();
  2321.         $logopart $part->getLogourl();
  2322.         if ($albumAcc != null and $albumAcc != "") {
  2323.             $AllPagesAcc $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
  2324.         }
  2325.         $allpagesResult = array();
  2326.         $tabacc = array();
  2327.         $tabacc1 = array();
  2328.         if ($random == true) {
  2329.             foreach ($AllPages as $p) {
  2330.                 $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  2331.                 $rr "";
  2332.                 $elemPath "";
  2333.                 $elemId "";
  2334.                 for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  2335.                     if ($i sizeof($arrayexploded)) {
  2336.                         if (sizeof($listerandom) == 0) {
  2337.                             $listerandom $SEjourService->getlikephotosejour($userId$idSejour);
  2338.                         }
  2339.                         $arrayRsRandom $this->random_function($listerandom);
  2340.                         array_push($tabacc$arrayRsRandom['idelem']);
  2341.                         $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  2342.                         unset($listerandom[$arrayRsRandom['elem']]);
  2343.                     } else {
  2344.                         $rr $rr $arrayexploded[$i];
  2345.                     }
  2346.                     $listerandom $listerandom;
  2347.                 }
  2348.                 $resultFinal $rr;
  2349.                 $p->setCouleurbordure($resultFinal);
  2350.                 array_push($allpagesResult$p);
  2351.             }
  2352.             $tabacc1 array_count_values($tabacc);
  2353.             $AllPages $allpagesResult;
  2354.         }
  2355.         return $this->render('Accompagnateur/Calendrier.html.twig', ["tabacc" => $tabacc1"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'albumAcc' => $albumAcc'AllPagesAcc' => $AllPagesAcc'random' => $random]);
  2356.     }
  2357.     /**
  2358.      * @Route("/Accompagnateur/SaveCalendrier", name="SaveCalendrierAccompagnateur")
  2359.      */
  2360.     public function SaveCalendrierAccompagnateur(Request $request)
  2361.     {
  2362.         $session $this->session;
  2363.         $serviceuser $this->etablissementService;
  2364.         $page $request->get("pages");
  2365.         $sejour $request->get("sejour");
  2366.         $prodid $request->get('idProd');
  2367.         $nomprod $request->get('nomprod');
  2368.         $nbr $request->get('nbr');
  2369.         $user $this->getUser();
  2370.         $nbr strval($nbr);
  2371.         $produittype $session->get("produit");
  2372.         $produit $session->get("produittype");
  2373.         $Album $serviceuser->SaveCalendrierParent($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  2374.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2375.         return new response('done');
  2376.     }
  2377.     /**
  2378.      * @Route("Accompagnateur/ModificationCalendrier/{id}", name="EditionCalendrierAccompagnateurfrompanier")
  2379.      */
  2380.     public function EditionCalendrierfrompanier($id)
  2381.     {
  2382.         $SEjourService $this->sejourService;
  2383.         $userId $this->getUser()->getId();
  2384.         $user $this->getUser();
  2385.         $session $this->session;
  2386.         $session->set('pageMenu''');
  2387.         $idSejour $session->get("Sejour");
  2388.         $produitcondition $session->get("produit");
  2389.         $produit $session->get("produittype");
  2390.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2391.         $em $this->em;
  2392.         $clipart $em->getRepository(Clipart::class)->findAll();
  2393.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2394.         $random false;
  2395.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
  2396.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2397.         $part $sejour->getIdPartenaire();
  2398.         $nompart $part->getUsername();
  2399.         $logopart $part->getLogourl();
  2400.         return $this->render('Accompagnateur/Calendrier.html.twig', ["nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  2401.     }
  2402.     /**
  2403.      * @Route("/Accompagnateur/SaveCommandeCalendrier", name="SaveCommandeCalendrierAccompagnateur")
  2404.      */
  2405.     public function SaveCommandeCalendrierAccompagnateur(Request $request)
  2406.     {
  2407.         $em $this->em;
  2408.         $session $this->session;
  2409.         $serviceuser $this->etablissementService;
  2410.         $page $request->get("pages");
  2411.         $sejour $request->get("sejour");
  2412.         $prodid $request->get('idProd');
  2413.         $nomprod $request->get('nomprod');
  2414.         $nbr $request->get('nbr');
  2415.         $em $this->em;
  2416.         $user $this->getUser();
  2417.         $nbr strval($nbr);
  2418.         $produittype $session->get("produit");
  2419.         $produit $session->get("produittype");
  2420.         $Album $serviceuser->SaveCalendrierParent($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  2421.         $inser false;
  2422.         $Products $session->get("Panier_Acompa");
  2423.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  2424.         //Touhemi  02-07-2020 :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  2425.         $user $this->getUser();
  2426.         $typeref $em->getRepository(Typeref::class)->find(8);
  2427.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2428.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2429.         //fin
  2430.         if ($panierTrace == null) {
  2431.             $panierTrace = new Panier();
  2432.             $dateNow = new \Datetime();
  2433.             $panierTrace->setDateCreation($dateNow);
  2434.             $panierTrace->setCreerPar($user);
  2435.             $panierTrace->setStatut($statutPanier);
  2436.             $em->getManager()->persist($panierTrace);
  2437.             $em->getManager()->flush();
  2438.         }
  2439.         //Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
  2440.         if ($Products == null) {
  2441.             $Products = [];
  2442.         }
  2443.         foreach ($Products as $key => $p) {
  2444.             if ($p['id'] == $produit->getId()) {
  2445.                 $inser true;
  2446.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2447.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2448.             }
  2449.         }
  2450.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  2451.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2452.         if ($panierProduit == null) {
  2453.             $panierProduit = new PanierProduit();
  2454.             $panierProduit->setIdProduit($produit);
  2455.             $panierProduit->setIdPanier($panierTrace);
  2456.             $em->getManager()->persist($panierProduit);
  2457.             $em->getManager()->flush();
  2458.         }
  2459.         //fin
  2460.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  2461.         $oldQte $panierProduit->getQuantite();
  2462.         $newQte $oldQte 1;
  2463.         $panierProduit->setQuantite($newQte);
  2464.         $oldTotal $panierProduit->getPrixTotal();
  2465.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  2466.         $panierProduit->setPrixTotal($newTotal);
  2467.         $em->getManager()->persist($panierProduit);
  2468.         $em->getManager()->flush();
  2469.         //fin
  2470.         if ($inser === false) {
  2471.             $p = [];
  2472.             $p["id"] = $produit->getId();
  2473.             $p["nom"] = $produit->getType()->getLabeletype();
  2474.             $p["ident"] = $produit->getLabele();
  2475.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  2476.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  2477.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  2478.             $p["condition"] = $produit->getIdConditionnement()->getId();
  2479.             $p["statut"] = $produit->getStatut();
  2480.             $p["qte"] = 1;
  2481.             array_push($Products$p);
  2482.         }
  2483.         $session->set('Panier_Acompa'$Products);
  2484.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2485.         return new response('done');
  2486.     }
  2487.     /**
  2488.      * @Route("Accompagnateur/ModificationPochettePhotos/{nbr}/{id}", name="EditionPochettefrompanierAccompagnateur")
  2489.      */
  2490.     public function EditionPochettefrompanierAccompagnateur($nbr$id)
  2491.     {
  2492.         $SEjourService $this->sejourService;
  2493.         $userId $this->getUser()->getId();
  2494.         $user $this->getUser();
  2495.         $session $this->session;
  2496.         $session->set('pageMenu''');
  2497.         $idSejour $session->get("Sejour");
  2498.         $produitcondition $session->get("produit");
  2499.         $produit $session->get("produittype");
  2500.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2501.         $em $this->em;
  2502.         $clipart $em->getRepository(Clipart::class)->findAll();
  2503.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2504.         $listerandom $listeattachlikephoto;
  2505.         $AllPagesAcc null;
  2506.         $random false;
  2507.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
  2508.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2509.         $idAcc $sejour->getIdAcommp();
  2510.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  2511.         $part $sejour->getIdPartenaire();
  2512.         $nompart $part->getUsername();
  2513.         $logopart $part->getLogourl();
  2514.         return $this->render('Accompagnateur/PochettePhotos.html.twig', ["nbr" => $nbr"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'albumAcc' => $albumAcc'AllPagesAcc' => $AllPagesAcc'random' => $random]);
  2515.     }
  2516.     /**
  2517.      * @Route("/Accompagnateur/SavePhotosPochette", name="SavePhotosPochetteAccompagnateur")
  2518.      */
  2519.     public function SavePhotosPochetteAccompagnateur(Request $request)
  2520.     {
  2521.         $session $this->session;
  2522.         $serviceuser $this->etablissementService;
  2523.         $page $request->get("pages");
  2524.         $sejour $request->get("sejour");
  2525.         $prodid $request->get('idProd');
  2526.         $nomprod $request->get('nomprod');
  2527.         $nbr $request->get('nbr');
  2528.         $user $this->getUser();
  2529.         $nbr strval($nbr);
  2530.         $produittype $session->get("produit");
  2531.         $produit $session->get("produittype");
  2532.         $Album $serviceuser->SavePhotosPochetteParent($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  2533.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2534.         return new response('done');
  2535.     }
  2536.     /**
  2537.      * @Route("/Accompagnateur/PochetteCommandeSave", name="PochettePhotosComandeSaveAccompagnateur")
  2538.      */
  2539.     public function PochettePhotosComandeSaveAccompagnateur(Request $request)
  2540.     {
  2541.         $em $this->em;
  2542.         $session $this->session;
  2543.         $serviceuser $this->etablissementService;
  2544.         $page $request->get("pages");
  2545.         $sejour $request->get("sejour");
  2546.         $prodid $request->get('idProd');
  2547.         $nomprod $request->get('nomprod');
  2548.         $nbr $request->get('nbr');
  2549.         $user $this->getUser();
  2550.         $nbr strval($nbr);
  2551.         $produittype $session->get("produit");
  2552.         $produit $session->get("produittype");
  2553.         $Album $serviceuser->SavePhotosPochetteParent($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  2554.         $inser false;
  2555.         $Products $session->get("Panier_Acompa");
  2556.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  2557.         //Touhemi  02-07-2020 :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  2558.         $user $this->getUser();
  2559.         $typeref $em->getRepository(Typeref::class)->find(8);
  2560.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2561.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2562.         //fin
  2563.         if ($panierTrace == null) {
  2564.             $panierTrace = new Panier();
  2565.             $dateNow = new \Datetime();
  2566.             $panierTrace->setDateCreation($dateNow);
  2567.             $panierTrace->setCreerPar($user);
  2568.             $panierTrace->setStatut($statutPanier);
  2569.             $em->getManager()->persist($panierTrace);
  2570.             $em->getManager()->flush();
  2571.         }
  2572.         //Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
  2573.         if ($Products == null) {
  2574.             $Products = [];
  2575.         }
  2576.         foreach ($Products as $key => $p) {
  2577.             if ($p['id'] == $produit->getId()) {
  2578.                 $inser true;
  2579.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2580.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2581.             }
  2582.         }
  2583.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  2584.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2585.         if ($panierProduit == null) {
  2586.             $panierProduit = new PanierProduit();
  2587.             $panierProduit->setIdProduit($produit);
  2588.             $panierProduit->setIdPanier($panierTrace);
  2589.             $em->getManager()->persist($panierProduit);
  2590.             $em->getManager()->flush();
  2591.         }
  2592.         //fin
  2593.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  2594.         $oldQte $panierProduit->getQuantite();
  2595.         $newQte $oldQte 1;
  2596.         $panierProduit->setQuantite($newQte);
  2597.         $oldTotal $panierProduit->getPrixTotal();
  2598.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  2599.         $panierProduit->setPrixTotal($newTotal);
  2600.         $em->getManager()->persist($panierProduit);
  2601.         $em->getManager()->flush();
  2602.         //fin
  2603.         if ($inser === false) {
  2604.             $p = [];
  2605.             $p["id"] = $produit->getId();
  2606.             $p["nom"] = $produit->getType()->getLabeletype();
  2607.             $p["ident"] = $produit->getLabele();
  2608.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  2609.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  2610.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  2611.             $p["condition"] = $produit->getIdConditionnement()->getId();
  2612.             $p["statut"] = $produit->getStatut();
  2613.             $p["qte"] = 1;
  2614.             array_push($Products$p);
  2615.         }
  2616.         $session->set('Panier_Acompa'$Products);
  2617.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2618.         return new response('done');
  2619.     }
  2620.     /**
  2621.      * @Route("/Accompagnateur/AddPochetteAuPanier", name="AddPochetteAuPanierAccompagnateur")
  2622.      */
  2623.     public function AddPochetteAuPanierAccompagnateur(Request $request)
  2624.     {
  2625.         $em $this->em;
  2626.         $session $this->session;
  2627.         $serviceuser $this->etablissementService;
  2628.         $page $request->get("photos");
  2629.         $sejour $request->get("sejour");
  2630.         $nbr $request->get('nbr');
  2631.         $user $this->getUser();
  2632.         $nbr strval($nbr);
  2633.         //Enregistrement des infos de la pochette dans un produit et les photos dans des pages avec JSON
  2634.         $Pochette_photos $serviceuser->photosPochette_Nouvelle($page$user$sejour$nbr);
  2635.         $inser false;
  2636.         $Products $session->get("Panier_Acompa");
  2637.         $produit $em->getRepository(Produit::class)->find($Pochette_photos->getId());
  2638.         // Rechercher si l'utilisateur a déja un panier avec statut créer dans la bd, sinon on crée un panier
  2639.         $typeref $em->getRepository(Typeref::class)->find(8);
  2640.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2641.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2642.         if ($panierTrace == null) {
  2643.             $panierTrace = new Panier();
  2644.             $dateNow = new \Datetime();
  2645.             $panierTrace->setDateCreation($dateNow);
  2646.             $panierTrace->setCreerPar($user);
  2647.             $panierTrace->setStatut($statutPanier);
  2648.             $em->getManager()->persist($panierTrace);
  2649.             $em->getManager()->flush();
  2650.         }
  2651.         // Vérifier si le produit existe déjà dans le panier en session
  2652.         if ($Products == null) {
  2653.             $Products = [];
  2654.         }
  2655.         foreach ($Products as $key => $p) {
  2656.             if ($p['id'] == $produit->getId()) {
  2657.                 $inser true;
  2658.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2659.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2660.             }
  2661.         }
  2662.         // Rechercher si le produit existe déjà dans PanierProduit
  2663.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2664.         if ($panierProduit == null) {
  2665.             $panierProduit = new PanierProduit();
  2666.             $panierProduit->setIdProduit($produit);
  2667.             $panierProduit->setIdPanier($panierTrace);
  2668.             $panierProduit->setQuantite(1);
  2669.             $panierProduit->setPrixTotal($produit->getIdConditionnement()->getMontantTTC());
  2670.             $em->getManager()->persist($panierProduit);
  2671.             $em->getManager()->flush();
  2672.         } else {
  2673.             // Ajouter un au produit et modifier prixTotal
  2674.             $oldQte $panierProduit->getQuantite();
  2675.             $newQte $oldQte 1;
  2676.             $panierProduit->setQuantite($newQte);
  2677.             $oldTotal $panierProduit->getPrixTotal();
  2678.             $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  2679.             $panierProduit->setPrixTotal($newTotal);
  2680.             $em->getManager()->persist($panierProduit);
  2681.             $em->getManager()->flush();
  2682.         }
  2683.         // Si le produit n'existe pas dans le panier en session, on l'ajoute
  2684.         if ($inser === false) {
  2685.             $p = [];
  2686.             $p["id"] = $produit->getId();
  2687.             $p["nom"] = $produit->getType()->getLabeletype();
  2688.             $p["ident"] = $produit->getLabele();
  2689.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  2690.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  2691.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  2692.             $p["condition"] = $produit->getIdConditionnement()->getId();
  2693.             $p["qte"] = 1;
  2694.             array_push($Products$p);
  2695.         }
  2696.         $session->set('Panier_Acompa'$Products);
  2697.         // Enregistrement pour email de relance
  2698.         //   $dateNow = new \Datetime();
  2699.         //   $userEmail = $user->getEmail();
  2700.         //   $this->EmailServie->SaveMailRelancePanier($userEmail);
  2701.         // Commenté comme dans la fonction parent
  2702.         // $this->EmailServie->MailRelancePanier($userEmail);
  2703.         return new response('done');
  2704.     }
  2705.     /**
  2706.      * @Route("Accompagnateur/AjoutRetroPhotosAccomp_Fav/{nbr}", name="AjoutRetroPhotosAccomp_Favoris")
  2707.      */
  2708.     public function AjoutRetroPhotosAccomp_Fav($nbr)
  2709.     {
  2710.         $SEjourService $this->sejourService;
  2711.         $user $this->getUser();
  2712.         $userId $this->getUser()->getId();
  2713.         $session $this->get('session');
  2714.         $session->set('pageMenu''');
  2715.         $idSejour $session->get("Sejour");
  2716.         $produitcondition $session->get("produit");
  2717.         $produit $session->get("produittype");
  2718.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2719.         $em $this->getDoctrine()->getManager();
  2720.         $listeattachlikephoto $em->getRepository(Likephoto::class)->findBy(['idUser' =>  $userId'idSejour' =>  $idSejour]);
  2721.         $photosData = [];
  2722.         foreach ($listeattachlikephoto as $photo) {
  2723.             $SejattachPhoto $photo->getIdSejourAttchment();
  2724.             $urlPhoto $SejattachPhoto->getIdAttchment()->getPath();
  2725.             // Apply the same transformations as parent function
  2726.             $new_url str_replace(
  2727.                 'upload/',
  2728.                 'upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/',
  2729.                 $urlPhoto
  2730.             );
  2731.             $photosData[] = [
  2732.                 'id' => $photo->getId(),
  2733.                 'url' => $new_url,
  2734.                 'caption' => "",
  2735.             ];
  2736.         }
  2737.         $nbLikes count($listeattachlikephoto);
  2738.         // Convertir le tableau PHP en JSON
  2739.         $photosDataJSON json_encode($photosData);
  2740.         dump($photosDataJSON);
  2741.         return $this->render('Accompagnateur/PhotosRetros.html.twig', ["nbr" => $nbr"sejour" => $sejour,  "nbLikes" => $nbLikes'photosFav' =>    $photosDataJSON]);
  2742.     }
  2743.     /**
  2744.      * @Route("/Accompagnateur/AddRetroAuPanier", name="AddRetroAuPanierAccompagnateur", methods={"POST"})
  2745.      */
  2746.     public function AddRetroAuPanierAccompagnateur(Request $request)
  2747.     {
  2748.         $em       $this->em;
  2749.         $session  $this->session;
  2750.         $user     $this->getUser();
  2751.         $service  $this->etablissementService;
  2752.         $photos   $request->get('photos');
  2753.         $sejourId $request->get('sejour');
  2754.         $nbr      strval($request->get('nbr'));
  2755.         // Create the new "Retro" product + store pages
  2756.         $RetroProduit $service->photosRetro_Nouvelle($photos$user$sejourId$nbr);
  2757.         // Handle cart logic
  2758.         $inser false;
  2759.         $Products $session->get("Panier_Acompa"); // Note the different session key for accompagnateur
  2760.         if (!$Products) {
  2761.             $Products = [];
  2762.         }
  2763.         // Get the newly created product
  2764.         $produit $em->getRepository(Produit::class)->find($RetroProduit->getId());
  2765.         // Check if a "Panier" with status "creer" for this user exists, or create one
  2766.         $typeref $em->getRepository(Typeref::class)->find(8);
  2767.         $statutPanier $em->getRepository(Ref::class)->findOneBy([
  2768.             "libiller" => "creer",
  2769.             "typeref" => $typeref
  2770.         ]);
  2771.         $panierTrace $em->getRepository(Panier::class)->findOneBy([
  2772.             "creerPar" => $user,
  2773.             "statut"   => $statutPanier
  2774.         ]);
  2775.         if (!$panierTrace) {
  2776.             $panierTrace = new Panier();
  2777.             $panierTrace->setDateCreation(new \DateTime());
  2778.             $panierTrace->setCreerPar($user);
  2779.             $panierTrace->setStatut($statutPanier);
  2780.             $em->getManager()->persist($panierTrace);
  2781.             $em->getManager()->flush();
  2782.         }
  2783.         // Check if this product already exists in session Products
  2784.         foreach ($Products as $key => $p) {
  2785.             if ($p['id'] == $produit->getId()) {
  2786.                 $inser true;
  2787.                 $Products[$key]['qte'] += 1;
  2788.                 $Products[$key]['mnt'] += $produit->getIdConditionnement()->getMontantTTC();
  2789.             }
  2790.         }
  2791.         // Check if it exists in PanierProduit table
  2792.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy([
  2793.             "idProduit" => $produit,
  2794.             "idPanier"  => $panierTrace
  2795.         ]);
  2796.         if (!$panierProduit) {
  2797.             $panierProduit = new PanierProduit();
  2798.             $panierProduit->setIdProduit($produit);
  2799.             $panierProduit->setIdPanier($panierTrace);
  2800.             $panierProduit->setQuantite(0); // Will be incremented below
  2801.             $panierProduit->setPrixTotal(0); // Will be updated below
  2802.             $em->getManager()->persist($panierProduit);
  2803.             $em->getManager()->flush();
  2804.         }
  2805.         // Increase quantity & total
  2806.         $oldQte $panierProduit->getQuantite();
  2807.         $panierProduit->setQuantite($oldQte 1);
  2808.         $oldTotal $panierProduit->getPrixTotal();
  2809.         $panierProduit->setPrixTotal($oldTotal $produit->getIdConditionnement()->getMontantTTC());
  2810.         $em->getManager()->persist($panierProduit);
  2811.         $em->getManager()->flush();
  2812.         // If not inserted in Products, add it
  2813.         if (!$inser) {
  2814.             $p = [
  2815.                 "id"         => $produit->getId(),
  2816.                 "nom"        => $produit->getType()->getLabeletype(),
  2817.                 "ident"      => $produit->getLabele(),
  2818.                 "codesejour" => $produit->getIdsjour()->getcodeSejour(),
  2819.                 "mnt"        => $produit->getIdConditionnement()->getMontantTTC(),
  2820.                 "path"       => $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath(),
  2821.                 "condition"  => $produit->getIdConditionnement()->getId(),
  2822.                 "statut"     => $produit->getStatut(), // Include status for accompagnateur
  2823.                 "qte"        => 1
  2824.             ];
  2825.             $Products[] = $p;
  2826.         }
  2827.         // Save to session with accompagnateur's session key
  2828.         $session->set('Panier_Acompa'$Products);
  2829.         return new Response('done');
  2830.     }
  2831.     /**
  2832.      * @Route("Accompagnateur/PackPhotosNumeriqueAccomp_Favoris/{nbr}", name="PackPhotosNumeriqueAccomp_Favoris")
  2833.      */
  2834.     public function PackPhotosNumerique_Favoris($nbr)
  2835.     {
  2836.         $SEjourService $this->sejourService;
  2837.         $user $this->getUser();
  2838.         $userId $this->getUser()->getId();
  2839.         $session $this->get('session');
  2840.         $session->set('pageMenu''');
  2841.         $idSejour $session->get("Sejour");
  2842.         $produitcondition $session->get("produit");
  2843.         $produit $session->get("produittype");
  2844.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2845.         $em $this->getDoctrine()->getManager();
  2846.         $listeattachlikephoto $em->getRepository(Likephoto::class)->findBy(['idUser' =>  $userId'idSejour' =>  $idSejour]);
  2847.         foreach ($listeattachlikephoto as $photo) {
  2848.             $idattach $photo->getIdSejourAttchment();
  2849.             $SejattachPhoto  $photo->getIdSejourAttchment();
  2850.             $urlPhoto  =   $SejattachPhoto->getIdAttchment()->getPath();
  2851.             //$urlPhoto =   $attachPhoto->getPath();
  2852.             $new_url str_replace('upload/''upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/',  $urlPhoto);
  2853.             $photosData[] = [
  2854.                 'id' => $photo->getId(),
  2855.                 'url' =>    $new_url,
  2856.                 'caption' => "",
  2857.             ];
  2858.         }
  2859.         $nbLikes count($listeattachlikephoto);
  2860.         // Convertir le tableau PHP en JSON
  2861.         $photosDataJSON json_encode($photosData);
  2862.         return $this->render('Accompagnateur/PackPhotosNumerique_Favoris.html.twig', [
  2863.             "nbr" => $nbr,
  2864.             "sejour" => $sejour,
  2865.             "nbLikes" => $nbLikes,
  2866.             'photosFav' =>    $photosDataJSON
  2867.         ]);
  2868.     }
  2869.     /**
  2870.      * @Route("/Accompagnateur/SavePackPhotosNumeriqueComandeSaveAccomp_panier", name="SavePackPhotosNumeriqueComandeSaveAccomp_panier")
  2871.      */
  2872.     public function AddPackNumeriqueAuPanier(Request $request)
  2873.     {
  2874.         $em $this->em->getManager();
  2875.         $session $this->session;
  2876.         $serviceuser $this->etablissementService;
  2877.         $photos $request->get("photos");
  2878.         $sejour $request->get("sejour");
  2879.         $nbr $request->get('nbr');
  2880.         $user $this->getUser();
  2881.         $nbr strval($nbr);
  2882.         $nomprod "Pack Photos Numerique - " $nbr;
  2883.         // Register the product and associated photos
  2884.         $packPhotos $serviceuser->SavePackPhotosNumerique($photos$user$sejour$nbr$nomprod);
  2885.         $product $em->getRepository(Produit::class)->find($packPhotos->getId());
  2886.         // Check if user has an existing cart with "created" status
  2887.         $typeref $em->getRepository(Typeref::class)->find(8);
  2888.         $statutPanier $em->getRepository(Ref::class)->findOneBy(["libiller" => "creer""typeref" => $typeref]);
  2889.         $panierTrace $em->getRepository(Panier::class)->findOneBy(["creerPar" => $user"statut" => $statutPanier]);
  2890.         if ($panierTrace === null) {
  2891.             $panierTrace = new Panier();
  2892.             $panierTrace->setDateCreation(new \DateTime());
  2893.             $panierTrace->setCreerPar($user);
  2894.             $panierTrace->setStatut($statutPanier);
  2895.             $em->persist($panierTrace);
  2896.             $em->flush();
  2897.         }
  2898.         // Add product to cart session - Note the different session key for Accompagnateur
  2899.         $Products $session->get("Panier_Acompa", []);
  2900.         $inser false;
  2901.         foreach ($Products as $key => $p) {
  2902.             if ($p['id'] === $product->getId()) {
  2903.                 $inser true;
  2904.                 $Products[$key]['qte'] += 1;
  2905.                 $Products[$key]['mnt'] += $product->getIdConditionnement()->getMontantTTC();
  2906.             }
  2907.         }
  2908.         // Check if product exists in PanierProduit
  2909.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(["idProduit" => $product"idPanier" => $panierTrace]);
  2910.         if ($panierProduit === null) {
  2911.             $panierProduit = new PanierProduit();
  2912.             $panierProduit->setIdProduit($product);
  2913.             $panierProduit->setIdPanier($panierTrace);
  2914.             $panierProduit->setQuantite(1);
  2915.             $panierProduit->setPrixTotal($product->getIdConditionnement()->getMontantTTC());
  2916.             $em->persist($panierProduit);
  2917.             $em->flush();
  2918.         } else {
  2919.             // Update existing product quantity and total price
  2920.             $panierProduit->setQuantite($panierProduit->getQuantite() + 1);
  2921.             $panierProduit->setPrixTotal($panierProduit->getPrixTotal() + $product->getIdConditionnement()->getMontantTTC());
  2922.             $em->persist($panierProduit);
  2923.             $em->flush();
  2924.         }
  2925.         if (!$inser) {
  2926.             $p = [
  2927.                 "id" => $product->getId(),
  2928.                 "nom" => $product->getType()->getLabeletype(),
  2929.                 "ident" => $product->getLabele(),
  2930.                 "codesejour" => $product->getIdsjour()->getcodeSejour(),
  2931.                 "mnt" => $product->getIdConditionnement()->getMontantTTC(),
  2932.                 "path" => $product->getType()->getAttachements()[0]->getIdAttachement()->getPath(),
  2933.                 "condition" => $product->getIdConditionnement()->getId(),
  2934.                 "statut" => $product->getStatut(), // Include status for accompagnateur
  2935.                 "qte" => 1
  2936.             ];
  2937.             array_push($Products$p);
  2938.         }
  2939.         // Store in the accompagnateur's session key
  2940.         $session->set('Panier_Acompa'$Products);
  2941.         return new Response('done');
  2942.     }
  2943.     /**
  2944.      * @Route("/Accompagnateur/PochetcomdComandeSave", name="PochettePhotosComandeSave_panierAccompagnateur")
  2945.      */
  2946.     public function PochettePhotosComandeSave_panierAccompagnateur(Request $request)
  2947.     {
  2948.         $em $this->em;
  2949.         $session $this->session;
  2950.         $serviceuser $this->etablissementService;
  2951.         $page $request->get("pages");
  2952.         $sejour $request->get("sejour");
  2953.         $prodid $request->get('idProd');
  2954.         $nbr $request->get('nbr');
  2955.         $user $this->getUser();
  2956.         $nbr strval($nbr);
  2957.         $produittype $session->get("produit");
  2958.         $produit $session->get("produittype");
  2959.         $Album $serviceuser->SavePhotosPochetteParent($page$user$sejour$prodid$produit$produittype$nbr);
  2960.         $inser false;
  2961.         $Products $session->get("Panier_Acompa");
  2962.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  2963.         //Touhemi  02-07-2020 :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  2964.         $user $this->getUser();
  2965.         $typeref $em->getRepository(Typeref::class)->find(8);
  2966.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2967.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2968.         //fin
  2969.         if ($panierTrace == null) {
  2970.             $panierTrace = new Panier();
  2971.             $dateNow = new \Datetime();
  2972.             $panierTrace->setDateCreation($dateNow);
  2973.             $panierTrace->setCreerPar($user);
  2974.             $panierTrace->setStatut($statutPanier);
  2975.             $em->getManager()->persist($panierTrace);
  2976.             $em->getManager()->flush();
  2977.         }
  2978.         //Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
  2979.         if ($Products == null) {
  2980.             $Products = [];
  2981.         }
  2982.         foreach ($Products as $key => $p) {
  2983.             if ($p['id'] == $produit->getId()) {
  2984.                 $inser true;
  2985.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2986.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2987.             }
  2988.         }
  2989.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  2990.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2991.         if ($panierProduit == null) {
  2992.             $panierProduit = new PanierProduit();
  2993.             $panierProduit->setIdProduit($produit);
  2994.             $panierProduit->setIdPanier($panierTrace);
  2995.             $em->getManager()->persist($panierProduit);
  2996.             $em->getManager()->flush();
  2997.         }
  2998.         //fin
  2999.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  3000.         $oldQte $panierProduit->getQuantite();
  3001.         $newQte $oldQte 1;
  3002.         $panierProduit->setQuantite($newQte);
  3003.         $oldTotal $panierProduit->getPrixTotal();
  3004.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  3005.         $panierProduit->setPrixTotal($newTotal);
  3006.         $em->getManager()->persist($panierProduit);
  3007.         $em->getManager()->flush();
  3008.         //fin
  3009.         if ($inser === false) {
  3010.             $p = [];
  3011.             $p["id"] = $produit->getId();
  3012.             $p["nom"] = $produit->getType()->getLabeletype();
  3013.             $p["ident"] = $produit->getLabele();
  3014.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  3015.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  3016.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  3017.             $p["condition"] = $produit->getIdConditionnement()->getId();
  3018.             $p["statut"] = $produit->getStatut();
  3019.             $p["qte"] = 1;
  3020.             array_push($Products$p);
  3021.         }
  3022.         $session->set('Panier_Acompa'$Products);
  3023.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());/
  3024.         return new response('done');
  3025.     }
  3026.     /**
  3027.      * @Route("Accompagnateur/ModificationPhotosRetros/{nbr}/{id}", name="EditionRetrofrompanierAccompagnateur")
  3028.      */
  3029.     public function EditionRetrofrompanierAccompagnateur($nbr$id)
  3030.     {
  3031.         $SEjourService $this->sejourService;
  3032.         $userId $this->getUser()->getId();
  3033.         $user $this->getUser();
  3034.         $session $this->session;
  3035.         $session->set('pageMenu''');
  3036.         $idSejour $session->get("Sejour");
  3037.         $produitcondition $session->get("produit");
  3038.         $produit $session->get("produittype");
  3039.         $sejour $SEjourService->getsejourpourparent($idSejour);
  3040.         $em $this->em;
  3041.         $clipart $em->getRepository(Clipart::class)->findAll();
  3042.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  3043.         $listerandom $listeattachlikephoto;
  3044.         $AllPagesAcc null;
  3045.         $random false;
  3046.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
  3047.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  3048.         $idAcc $sejour->getIdAcommp();
  3049.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  3050.         $part $sejour->getIdPartenaire();
  3051.         $nompart $part->getUsername();
  3052.         $logopart $part->getLogourl();
  3053.         return $this->render('Accompagnateur/PhotosRetros.html.twig', ["nbr" => $nbr"nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'albumAcc' => $albumAcc'AllPagesAcc' => $AllPagesAcc'random' => $random]);
  3054.     }
  3055.     /**
  3056.      * @Route("/Accompagnateur/SavePhotosRetros", name="SavePhotosRetrosAccompagnateur")
  3057.      */
  3058.     public function SavePhotosRetrosAccompagnateur(Request $request)
  3059.     {
  3060.         $em $this->em;
  3061.         $session $this->session;
  3062.         $serviceuser $this->etablissementService;
  3063.         $page $request->get("pages");
  3064.         $sejour $request->get("sejour");
  3065.         $prodid $request->get('idProd');
  3066.         $nomprod $request->get('nomprod');
  3067.         $nbr $request->get('nbr');
  3068.         $comandePanier $request->get('comandePanier');
  3069.         $user $this->getUser();
  3070.         $nbr strval($nbr);
  3071.         $produittype $session->get("produit");
  3072.         $produit $session->get("produittype");
  3073.         $Album $serviceuser->SavePhotosRetrosParents($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  3074.         if ($comandePanier == "comandePanier") {
  3075.             $inser false;
  3076.             $Products $session->get("Panier_Acompa");
  3077.             $produit $this->em->getRepository(Produit::class)->find($Album->getId());
  3078.             //Touhemi  02-07-2020 :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  3079.             $user $this->getUser();
  3080.             $typeref $this->em->getRepository(Typeref::class)->find(8);
  3081.             $statutPanier $this->em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  3082.             $panierTrace $this->em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  3083.             //fin
  3084.             if ($panierTrace == null) {
  3085.                 $panierTrace = new Panier();
  3086.                 $dateNow = new \Datetime();
  3087.                 $panierTrace->setDateCreation($dateNow);
  3088.                 $panierTrace->setCreerPar($user);
  3089.                 $panierTrace->setStatut($statutPanier);
  3090.                 $em->getManager()->persist($panierTrace);
  3091.                 $em->getManager()->flush();
  3092.             }
  3093.             //Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
  3094.             if ($Products == null) {
  3095.                 $Products = [];
  3096.             }
  3097.             foreach ($Products as $key => $p) {
  3098.                 if ($p['id'] == $produit->getId()) {
  3099.                     $inser true;
  3100.                     $Products[$key]['qte'] = $p['qte'] + 1;
  3101.                     $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  3102.                 }
  3103.             }
  3104.             //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  3105.             $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  3106.             if ($panierProduit == null) {
  3107.                 $panierProduit = new PanierProduit();
  3108.                 $panierProduit->setIdProduit($produit);
  3109.                 $panierProduit->setIdPanier($panierTrace);
  3110.                 $em->getManager()->persist($panierProduit);
  3111.                 $em->getManager()->flush();
  3112.             }
  3113.             //fin
  3114.             //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  3115.             $oldQte $panierProduit->getQuantite();
  3116.             $newQte $oldQte 1;
  3117.             $panierProduit->setQuantite($newQte);
  3118.             $oldTotal $panierProduit->getPrixTotal();
  3119.             $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  3120.             $panierProduit->setPrixTotal($newTotal);
  3121.             $em->getManager()->persist($panierProduit);
  3122.             $em->getManager()->flush();
  3123.             //fin
  3124.             if ($inser === false) {
  3125.                 $p = [];
  3126.                 $p["id"] = $produit->getId();
  3127.                 $p["nom"] = $produit->getType()->getLabeletype();
  3128.                 $p["ident"] = $produit->getLabele();
  3129.                 $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  3130.                 $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  3131.                 $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  3132.                 $p["condition"] = $produit->getIdConditionnement()->getId();
  3133.                 $p["statut"] = $produit->getStatut();
  3134.                 $p["qte"] = 1;
  3135.                 array_push($Products$p);
  3136.             }
  3137.             $session->set('Panier_Acompa'$Products);
  3138.         }
  3139.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  3140.         return new response($Album->getId());
  3141.     }
  3142.     /**
  3143.      * @Route("/Accompagnateur/RetrosComandeSaveRetros", name="RetrosComandeSaveRetrosAccompagnateur")
  3144.      */
  3145.     public function RetrosComandeSaveRetrosAccompagnateur(Request $request)
  3146.     {
  3147.         $em $this->em;
  3148.         $session $this->session;
  3149.         $serviceuser $this->etablissementService;
  3150.         $page $request->get("pages");
  3151.         $sejour $request->get("sejour");
  3152.         $prodid $request->get('idProd');
  3153.         $nomprod $request->get('nomprod');
  3154.         $nbr $request->get('nbr');
  3155.         $user $this->getUser();
  3156.         $nbr strval($nbr);
  3157.         $produittype $session->get("produit");
  3158.         $produit $session->get("produittype");
  3159.         $Album $serviceuser->SavePhotosRetrosParents($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  3160.         $inser false;
  3161.         $Products $session->get("Panier_Acompa");
  3162.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  3163.         //Touhemi  02-07-2020 :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  3164.         $user $this->getUser();
  3165.         $typeref $em->getRepository(Typeref::class)->find(8);
  3166.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  3167.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  3168.         //fin
  3169.         if ($panierTrace == null) {
  3170.             $panierTrace = new Panier();
  3171.             $dateNow = new \Datetime();
  3172.             $panierTrace->setDateCreation($dateNow);
  3173.             $panierTrace->setCreerPar($user);
  3174.             $panierTrace->setStatut($statutPanier);
  3175.             $em->getManager()->persist($panierTrace);
  3176.             $em->getManager()->flush();
  3177.         }
  3178.         //Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
  3179.         if ($Products == null) {
  3180.             $Products = [];
  3181.         }
  3182.         foreach ($Products as $key => $p) {
  3183.             if ($p['id'] == $produit->getId()) {
  3184.                 $inser true;
  3185.                 $Products[$key]['qte'] = $p['qte'] + 1;
  3186.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  3187.             }
  3188.         }
  3189.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  3190.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  3191.         if ($panierProduit == null) {
  3192.             $panierProduit = new PanierProduit();
  3193.             $panierProduit->setIdProduit($produit);
  3194.             $panierProduit->setIdPanier($panierTrace);
  3195.             $em->getManager()->persist($panierProduit);
  3196.             $em->getManager()->flush();
  3197.         }
  3198.         //fin
  3199.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  3200.         $oldQte $panierProduit->getQuantite();
  3201.         $newQte $oldQte 1;
  3202.         $panierProduit->setQuantite($newQte);
  3203.         $oldTotal $panierProduit->getPrixTotal();
  3204.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  3205.         $panierProduit->setPrixTotal($newTotal);
  3206.         $em->getManager()->persist($panierProduit);
  3207.         $em->getManager()->flush();
  3208.         //fin
  3209.         if ($inser === false) {
  3210.             $p = [];
  3211.             $p["id"] = $produit->getId();
  3212.             $p["nom"] = $produit->getType()->getLabeletype();
  3213.             $p["ident"] = $produit->getLabele();
  3214.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  3215.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  3216.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  3217.             $p["condition"] = $produit->getIdConditionnement()->getId();
  3218.             $p["statut"] = $produit->getStatut();
  3219.             $p["qte"] = 1;
  3220.             array_push($Products$p);
  3221.         }
  3222.         $session->set('Panier_Acompa'$Products);
  3223.         return new response('done');
  3224.     }
  3225.     /**
  3226.      * @Route("/Accompagnateur/ajouterauPanier_Accompagnateur_coffret", name="comandercoffreAccompagnateur")
  3227.      */
  3228.     public function Ajouter_MonPanier_Coffret()
  3229.     {
  3230.         $inser false;
  3231.         $session $this->session;
  3232.         $idSejour $session->get("Sejour");
  3233.         $userId $this->getUser();
  3234.         $em $this->em;
  3235.         $sejourobj $em->getRepository(Sejour::class)->find($idSejour);
  3236.         $prodct $em->getRepository(Typeproduit::class)->find(15);
  3237.         //        $version = $em->getRepository(Produit::class)->SearchVersionproduit($this->getUser()->getId());
  3238.         $Conditionnement $em->getRepository(TypeProduitConditionnement::class)->find(6);
  3239.         $Products $session->get("Panier_Acompa");
  3240.         //Touhemi  02-07-2020 :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  3241.         $user $this->getUser();
  3242.         $typeref $em->getRepository(Typeref::class)->find(8);
  3243.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  3244.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  3245.         //fin
  3246.         if ($panierTrace == null) {
  3247.             $panierTrace = new Panier();
  3248.             $dateNow = new \Datetime();
  3249.             $panierTrace->setDateCreation($dateNow);
  3250.             $panierTrace->setCreerPar($user);
  3251.             $panierTrace->setStatut($statutPanier);
  3252.             $em->getManager()->persist($panierTrace);
  3253.             $em->getManager()->flush();
  3254.         }
  3255.         //Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
  3256.         $produit $em->getRepository(Produit::class)->findOneBy(array("type" => $prodct'idConditionnement' => $Conditionnement'idsjour' => $sejourobj'iduser' => $user));
  3257.         if ($produit == null) {
  3258.             $produit = new Produit;
  3259.             $produit->setLabele("Coffret cadeau");
  3260.             $produit->setIduser($userId);
  3261.             $produit->setIdsjour($sejourobj);
  3262.             $produit->setIdConditionnement($Conditionnement);
  3263.             $produit->setType($prodct);
  3264.             $produit->setDate(new \DateTime());
  3265.             $em->getManager()->persist($produit);
  3266.             $em->getManager()->flush();
  3267.         }
  3268.         if ($Products == null) {
  3269.             $Products = [];
  3270.         }
  3271.         foreach ($Products as $key => $p) {
  3272.             if ($p['id'] == $produit->getId()) {
  3273.                 $inser true;
  3274.                 $Products[$key]['qte'] = $p['qte'] + 1;
  3275.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getType()->getTraif();
  3276.             }
  3277.         }
  3278.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  3279.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  3280.         if ($panierProduit == null) {
  3281.             $panierProduit = new PanierProduit();
  3282.             $panierProduit->setIdProduit($produit);
  3283.             $panierProduit->setIdPanier($panierTrace);
  3284.             $em->getManager()->persist($panierProduit);
  3285.             $em->getManager()->flush();
  3286.         }
  3287.         //fin
  3288.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  3289.         $oldQte $panierProduit->getQuantite();
  3290.         $newQte $oldQte 1;
  3291.         $panierProduit->setQuantite($newQte);
  3292.         $oldTotal $panierProduit->getPrixTotal();
  3293.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  3294.         $panierProduit->setPrixTotal($newTotal);
  3295.         $em->getManager()->persist($panierProduit);
  3296.         $em->getManager()->flush();
  3297.         //fin
  3298.         if ($inser === false) {
  3299.             $p = [];
  3300.             $p["id"] = $produit->getId();
  3301.             $p["nom"] = $produit->getType()->getLabeletype();
  3302.             $p["ident"] = $produit->getLabele();
  3303.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  3304.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  3305.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  3306.             $p["condition"] = $produit->getIdConditionnement()->getId();
  3307.             $p["statut"] = $produit->getStatut();
  3308.             $p["qte"] = 1;
  3309.             array_push($Products$p);
  3310.         }
  3311.         $session->set('Panier_Acompa'$Products);
  3312.         return new Response('coffert cadeau ajouté');
  3313.     }
  3314.     /**
  3315.      * @Route("/Accompagnateur/boutique5sur5Sejour", name="boutique5sur5Accompagnateur")
  3316.      */
  3317.     public function boutique5sur5Accompagnateur()
  3318.     {
  3319.         $SEjourService $this->sejourService;
  3320.         /** @var \App\Entity\User $userId */
  3321.         $userId $this->getUser();
  3322.         $userId $userId->getId();
  3323.         $session $this->session;
  3324.         $session->set('pageMenu''boutique5su5');
  3325.         $idSejour $session->get("Sejour");
  3326.         $sejour $SEjourService->getsejourpourparent($idSejour);
  3327.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  3328.         $listeattach $SEjourService->getatachmentsejour($idSejour);
  3329.         $messages $SEjourService->getsejourmessage($idSejour);
  3330.         $nbImages count($listeattach);
  3331.         $nbmessages count($messages);
  3332.         $produit $this->typeProduiteService;
  3333.         $liste $produit->produitlistTypeConditionnement();
  3334.         $idAcc $sejour->getIdAcommp();
  3335.         $em $this->em;
  3336.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  3337.         $nbLikes count($listeattachlikephoto);
  3338.         // dd($liste);
  3339.         return $this->render('Accompagnateur/boutique_5sur5.html.twig', [
  3340.             "sejour" => $sejour,
  3341.             'like' => $listeattachlikephoto,
  3342.             'produit' => $liste,
  3343.             'albumAcc' => $albumAcc,
  3344.             'nbImages' => $nbImages,
  3345.             'nbmessages' => $nbmessages,
  3346.             'nbLikes' => $nbLikes
  3347.         ]);
  3348.     }
  3349.     /******* *********/
  3350.     /**
  3351.      * @Route("/Accompagnateur/pdfaccomp/{id}", name="pdfaccomp")
  3352.      */
  3353.     public function ExportPdfAccomp(Request $request$id)
  3354.     {
  3355.         // $json = json_decode(file_get_contents("pdf/pdfaccomp.json"));
  3356.         $sejourservice $this->sejourService;
  3357.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  3358.         $session $this->session;
  3359.         //dd($sejour);
  3360.         $pdf = new Fpdi();
  3361.         $publicDirectory $this->params->get('kernel.project_dir') . '/public/pdf/';
  3362.         $pdfFilepath $publicDirectory "Mode_emploi_5sur5sejour_v5_.pdf";
  3363.         $pageCount $pdf->setSourceFile($pdfFilepath);
  3364.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3365.         $pdf->addPage();
  3366.         $pdf->useImportedPage($pageId0.50.50.5);
  3367.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3368.         $current_date date('d-M-Y');
  3369.         $DateDebut =  "";
  3370.         $DateFin "";
  3371.         $Theme "";
  3372.         $Lieu "";
  3373.         $CodeSejour =  "";
  3374.         $MotPass =  "";
  3375.         $Ville "";
  3376.         $Paye "";
  3377.         if ($sejour) {
  3378.             $DateDebut $sejour->getDateDebutSejour();
  3379.             $DateFin $sejour->getDateFinSejour();
  3380.             $Theme $sejour->getThemSejour();
  3381.             $Lieu $sejour->getAdresseSejour();
  3382.             $CodeSejour $sejour->getCodeSejour();
  3383.             $MotPass $sejour->getIdAcommp()->getPasswordNonCripted();
  3384.             $Ville $sejour->getVille();
  3385.             $Paye $sejour->getPays();
  3386.         }
  3387.         for ($i 0$i $pageCount$i++) {
  3388.             $tplIdx $pdf->importPage($i);
  3389.             $pdf->useTemplate($tplIdx00200300true);
  3390.             $theme $Theme;
  3391.             if (strlen($theme) > 25) {
  3392.                 $pdf->SetFont("Arial"""5);
  3393.             } else {
  3394.                 $pdf->SetFont("Arial"""7);
  3395.             }
  3396.             $strTheme iconv("UTF-8""WINDOWS-1252"$theme);
  3397.             $pdf->Text(35262$strTheme);
  3398.             $pdf->SetFont("Arial"""8);
  3399.             $lieu $Lieu;
  3400.             $ville $Ville;
  3401.             $paye $Paye;
  3402.             if ($Paye && $Ville) {
  3403.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville "  " $paye);
  3404.                 $pdf->Text(125262$strLieu);
  3405.             } else if ($Paye) {
  3406.                 $strLieu iconv("UTF-8""WINDOWS-1252"$paye);
  3407.                 $pdf->Text(125262$strLieu);
  3408.             } else {
  3409.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville);
  3410.                 $pdf->Text(125262$strLieu);
  3411.             }
  3412.             $pdf->SetFont("Arial"""10);
  3413.             $pdf->Text(90271$CodeSejour);
  3414.             $pdf->SetFont("Arial"""10);
  3415.             $pdf->Text(50252$DateDebut->format('d/m/Y'));
  3416.             $pdf->SetFont("Arial"""10);
  3417.             $pdf->Text(90252$DateFin->format('d/m/Y'));
  3418.             $pdf->SetFont("Arial"""10);
  3419.             $pdf->Text(75279$MotPass);
  3420.         }
  3421.         $pdf->Output("Mode d'emploi 5sur5sejour.pdf""D");
  3422.         return new response($pdf->Output(), 200, array('Content-Type' => 'application/pdf'));
  3423.     }
  3424.     /*******Salim *********/
  3425.     /**
  3426.      * @Route("/Accompagnateur/PdfParentP/{id}", name="PdfParentP")
  3427.      */
  3428.     public function ExportPdfParentpaye(Request $request$id)
  3429.     {
  3430.         //  $json = json_decode(file_get_contents("pdf/pdfparentPaye.json"));
  3431.         $sejourservice $this->sejourService;
  3432.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  3433.         $session $this->session;
  3434.         $pdf = new Fpdi();
  3435.         $publicDirectory $this->params->get('kernel.project_dir') . '/public/pdf/';
  3436.         $pdfFilepath $publicDirectory "Mode_emploi_Parent_5sur5sejour_v5_.pdf";
  3437.         $pageCount $pdf->setSourceFile($pdfFilepath);
  3438.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3439.         $pdf->addPage();
  3440.         $pdf->useImportedPage($pageId0.50.50.5);
  3441.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3442.         $current_date date('d-M-Y');
  3443.         $DateDebut =  "";
  3444.         $DateFin "";
  3445.         $Theme "";
  3446.         $Lieu "";
  3447.         $CodeSejour =  "";
  3448.         $Ville "";
  3449.         $Paye "";
  3450.         if ($sejour) {
  3451.             $DateDebut $sejour->getDateDebutSejour();
  3452.             $DateFin $sejour->getDateFinSejour();
  3453.             $Theme $sejour->getThemSejour();
  3454.             $Lieu $sejour->getAdresseSejour();
  3455.             $CodeSejour $sejour->getCodeSejour();
  3456.             $Ville $sejour->getVille();
  3457.             $Paye $sejour->getPays();
  3458.         }
  3459.         for ($i 0$i $pageCount$i++) {
  3460.             $tplIdx $pdf->importPage($i 1);
  3461.             $pdf->useTemplate($tplIdx00200300true);
  3462.             $theme $Theme;
  3463.             if (strlen($theme) > 25) {
  3464.                 $pdf->SetFont("Arial"""5);
  3465.             } else {
  3466.                 $pdf->SetFont("Arial"""7);
  3467.             }
  3468.             $strTheme iconv("UTF-8""WINDOWS-1252"$theme);
  3469.             $pdf->Text(35268$strTheme);
  3470.             $pdf->SetFont("Arial"""8);
  3471.             $lieu $Lieu;
  3472.             $ville $Ville;
  3473.             $paye $Paye;
  3474.             if ($Paye && $Ville) {
  3475.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville "  " $paye);
  3476.                 $pdf->Text(125268$strLieu);
  3477.             } else if ($Paye) {
  3478.                 $strLieu iconv("UTF-8""WINDOWS-1252"$paye);
  3479.                 $pdf->Text(125268$strLieu);
  3480.             } else {
  3481.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville);
  3482.                 $pdf->Text(125268$strLieu);
  3483.             }
  3484.             $pdf->SetFont("Arial"""10);
  3485.             $pdf->Text(80279$CodeSejour);
  3486.             $pdf->SetFont("Arial"""10);
  3487.             $pdf->Text(48258$DateDebut->format('d/m/Y'));
  3488.             $pdf->SetFont("Arial"""10);
  3489.             $pdf->Text(89258$DateFin->format('d/m/Y'));
  3490.         }
  3491.         $pdf->Output("Mode d'emploi Parent 5sur5sejour.pdf""D");
  3492.         return new response($pdf->Output(), 100, array('Content-Type' => 'application/pdf'));
  3493.     }
  3494.     /*******Salim *********/
  3495.     /**
  3496.      * @Route("/Accompagnateur/PdfParentgrat/{id}", name="PdfParentgratt")
  3497.      */
  3498.     public function ExportPdfParentgrat(Request $request$id)
  3499.     {
  3500.         //$json = json_decode(file_get_contents("pdf/pdfparentGratuit.json"));
  3501.         $sejourservice $this->sejourService;
  3502.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  3503.         $session $this->session;
  3504.         //dd($sejour);
  3505.         $pdf = new Fpdi();
  3506.         $publicDirectory $this->params->get('kernel.project_dir') . '/public/pdf/';
  3507.         $pdfFilepath $publicDirectory "Mode_emploi_Parent_G_5sur5sejou_v5_.pdf";
  3508.         $pageCount $pdf->setSourceFile($pdfFilepath);
  3509.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3510.         $pdf->addPage();
  3511.         $pdf->useImportedPage($pageId0.50.50.5);
  3512.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3513.         $current_date date('d-M-Y');
  3514.         $DateDebut =  "";
  3515.         $DateFin "";
  3516.         $Theme "";
  3517.         $Lieu "";
  3518.         $CodeSejour =  "";
  3519.         $Ville "";
  3520.         $Paye "";
  3521.         if ($sejour) {
  3522.             $DateDebut $sejour->getDateDebutSejour();
  3523.             $DateFin $sejour->getDateFinSejour();
  3524.             $Theme $sejour->getThemSejour();
  3525.             $Lieu $sejour->getAdresseSejour();
  3526.             $CodeSejour $sejour->getCodeSejour();
  3527.             $Ville $sejour->getVille();
  3528.             $Paye $sejour->getPays();
  3529.         }
  3530.         for ($i 0$i $pageCount$i++) {
  3531.             $tplIdx $pdf->importPage($i 1);
  3532.             $pdf->useTemplate($tplIdx00200300true);
  3533.             $theme $Theme;
  3534.             if (strlen($theme) > 25) {
  3535.                 $pdf->SetFont("Arial"""5);
  3536.             } else {
  3537.                 $pdf->SetFont("Arial"""7);
  3538.             }
  3539.             $strTheme iconv("UTF-8""WINDOWS-1252"$theme);
  3540.             $pdf->Text(35268$strTheme);
  3541.             $pdf->SetFont("Arial"""8);
  3542.             $lieu $Lieu;
  3543.             $ville $Ville;
  3544.             $paye $Paye;
  3545.             if ($Ville && $Paye) {
  3546.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville "  " $paye);
  3547.                 $pdf->Text(125268$strLieu);
  3548.             } else if ($Paye) {
  3549.                 $strLieu iconv("UTF-8""WINDOWS-1252"$paye);
  3550.                 $pdf->Text(125268$strLieu);
  3551.             } else {
  3552.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville);
  3553.                 $pdf->Text(125268$strLieu);
  3554.             }
  3555.             $pdf->SetFont("Arial"""10);
  3556.             $pdf->Text(80279$CodeSejour);
  3557.             $pdf->SetFont("Arial"""10);
  3558.             $pdf->Text(48258$DateDebut->format('d/m/Y'));
  3559.             $pdf->SetFont("Arial"""10);
  3560.             $pdf->Text(89258$DateFin->format('d/m/Y'));
  3561.         }
  3562.         $pdf->Output("Mode d'emploi Parent G 5sur5sejour.pdf""D");
  3563.         return new response($pdf->Output(), 100, array('Content-Type' => 'application/pdf'));
  3564.     }
  3565.     /*******Salim *********/
  3566.     /**
  3567.      * @Route("/Accompagnateur/Pdfpresentation", name="Pdfpresentation")
  3568.      */
  3569.     public function Pdfpresentation(Request $request)
  3570.     {
  3571.         $pdf = new Fpdi();
  3572.         $pageCount $pdf->setSourceFile('pdf/presentation5sur5.pdf');
  3573.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3574.         $pdf->addPage();
  3575.         $pdf->useImportedPage($pageId201090);
  3576.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3577.         for ($i 1$i $pageCount$i++) {
  3578.             $tplIdx $pdf->importPage(1);
  3579.             $pdf->useTemplate($tplIdx00200300true);
  3580.         }
  3581.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3582.         $pdf->addPage();
  3583.         $pdf->useImportedPage($pageId201090);
  3584.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3585.         for ($i 1$i $pageCount$i++) {
  3586.             $tplIdx $pdf->importPage(2);
  3587.             $pdf->useTemplate($tplIdx00200300true);
  3588.         }
  3589.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3590.         $pdf->addPage();
  3591.         $pdf->useImportedPage($pageId201090);
  3592.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3593.         for ($i 1$i $pageCount$i++) {
  3594.             $tplIdx $pdf->importPage(3);
  3595.             $pdf->useTemplate($tplIdx00200300true);
  3596.         }
  3597.         $pageId $pdf->importPage(3PdfReader\PageBoundaries::MEDIA_BOX);
  3598.         $pdf->addPage();
  3599.         $pdf->useImportedPage($pageId201090);
  3600.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3601.         for ($i 1$i $pageCount$i++) {
  3602.             $tplIdx $pdf->importPage($i);
  3603.             $pdf->useTemplate($tplIdx00200300true);
  3604.         }
  3605.         $pageId $pdf->importPage(3PdfReader\PageBoundaries::MEDIA_BOX);
  3606.         $pdf->addPage();
  3607.         $pdf->useImportedPage($pageId201090);
  3608.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3609.         for ($i 1$i $pageCount$i++) {
  3610.             $tplIdx $pdf->importPage($i 1);
  3611.             $pdf->useTemplate($tplIdx00200300true);
  3612.         }
  3613.         $pdf->Output("Presentation 5sur5Séjour.pdf""D");
  3614.         return new response($pdf->Output(), 200, array('Content-Type' => 'application/pdf'));
  3615.     }
  3616.     /**
  3617.      * @Route("/Accompagnateur/SauvegarderEmailResponse", name="SauvegarderEmailResponse")
  3618.      */
  3619.     public function SauvegarderEmailResponse(Request $request)
  3620.     {
  3621.         $em $this->em;
  3622.         $email $request->get('email');
  3623.         $user $this->getUser();
  3624.         if ($user) {
  3625.             $user->setReponseemail($email);
  3626.             $em->getManager()->persist($user);
  3627.             $em->getManager()->flush();
  3628.         }
  3629.         return new Response('Bingo');
  3630.     }
  3631.     /**
  3632.      * @Route("/Accompagnateur/Besoindaide", name="Besoindaide_Accompa")
  3633.      */
  3634.     public function Besoindaide(): Response
  3635.     {
  3636.         $produit $this->typeProduiteService;
  3637.         $liste $produit->produitlistType();
  3638.         // dd($liste);
  3639.         return $this->render('Accueil/BesoindaideAccomp.html.twig', [
  3640.             'produit' => $liste,
  3641.         ]);
  3642.     }
  3643.     /**
  3644.      * @Route("/Accompagnateur/Mentionlegale", name="Mentionlegale_Accompa")
  3645.      */
  3646.     public function MentionlegaleAccompa()
  3647.     {
  3648.         return $this->render('Accueil/mentionlegal.html.twig', []);
  3649.     }
  3650.     /**
  3651.      * @Route("/Accompagnateur/Conditongeneral", name="Conditongeneral_Accompa")
  3652.      */
  3653.     public function ConditongeneralAccompa()
  3654.     {
  3655.         return $this->render('Accueil/Condition.html.twig', []);
  3656.     }
  3657.     /**
  3658.      * @Route("/Accompagnateur/Politique", name="Politique_Accompa")
  3659.      */
  3660.     public function PolitiqueAccompa()
  3661.     {
  3662.         return $this->render('Accueil/politique.html.twig', []);
  3663.     }
  3664.     /**
  3665.      * @Route("/Accompagnateur/verifemailexist", name="verifemailexist")
  3666.      */
  3667.     public function verifemailexist(Request $request)
  3668.     {
  3669.         $em $this->em;
  3670.         $email $request->get('email');
  3671.         $nbremail $em->getRepository(User::class)->checkEmail($email);
  3672.         if ($nbremail 0) {
  3673.             return new Response('Cet email est déjà utilisé !');
  3674.         } else {
  3675.             return new Response('email valide');
  3676.         }
  3677.     }
  3678.     /**
  3679.      * @Route("/Accompagnateur/hidePubProd",name="hidePubProd")
  3680.      */
  3681.     function hidePubProd(Request $request)
  3682.     {
  3683.         $val $request->get("val");
  3684.         $user $this->getUser();
  3685.         $parent $this->em->getRepository(User::class)->find($user->getId());
  3686.         $parent->setShowpubprod('false');
  3687.         $this->em->getManager()->persist($parent);
  3688.         $this->em->getManager()->flush();
  3689.         return new Response('ok');
  3690.     }
  3691.     /**
  3692.      * @Route("/Accompagnateur/ListeProduits",name="ListeProduits")
  3693.      */
  3694.     function ListeProduits(Request $request)
  3695.     {
  3696.         $SEjourService $this->sejourService;
  3697.         $userId $this->getUser()->getId();
  3698.         $user $this->getUser();
  3699.         $session $this->session;
  3700.         $session->set('pageMenu''');
  3701.         $idSejour $session->get("Sejour");
  3702.         $sejour $SEjourService->getsejourpourparent($idSejour);
  3703.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  3704.         $produit $this->typeProduiteService;
  3705.         $liste $produit->produitlistTypeConditionnement();
  3706.         $idAcc $sejour->getIdAcommp();
  3707.         $em $this->em;
  3708.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  3709.         // dd($liste);
  3710.         return $this->render('Accompagnateur/ListeProduits.html.twig', [
  3711.             "sejour" => $sejour,
  3712.             'like' => $listeattachlikephoto,
  3713.             'produit' => $liste,
  3714.             'albumAcc' => $albumAcc
  3715.         ]);
  3716.     }
  3717.     /**
  3718.      * @Route("/Accompagnateur/getInfoSejour",name="getInfoSejour")
  3719.      */
  3720.     function infoSejourAction()
  3721.     {
  3722.         $sejourService $this->sejourService;
  3723.         $session $this->session;
  3724.         $idSejour $session->get("Sejour");
  3725.         if ($this->getUser()) {
  3726.             if (is_null($idSejour)) {
  3727.                 return new JsonResponse(array('message' => 'merci de verifier sejour'), 401);
  3728.             } else {
  3729.                 $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  3730.                 if (is_null($sejour)) {
  3731.                     return new JsonResponse(array('message' => 'merci de verifier sejour'), 401);
  3732.                 } else {
  3733.                     //get info sejour
  3734.                     $detailsSejour $sejourService->getInfoSejour($sejour);
  3735.                     return new JsonResponse(array('detailsSejour' => $detailsSejour), 200);
  3736.                 }
  3737.             }
  3738.         } else {
  3739.             return new JsonResponse(array('message' => 'merci de se connecter.'), 401);
  3740.         }
  3741.     }
  3742.     /**
  3743.      * @Route("/Accompagnateur/finish-tour", name="finish_tour", methods={"POST"})
  3744.      */
  3745.     public function finishTour(Request $request): JsonResponse
  3746.     {
  3747.         $data json_decode($request->getContent(), true);
  3748.         $submittedToken $data['_token'] ?? '';
  3749.         $em $this->em->getManager();
  3750.         // Get the current user
  3751.         $user $this->getUser();
  3752.         if (!$user) {
  3753.             return new JsonResponse(['status' => 'error''message' => 'User not logged in'], 401);
  3754.         }
  3755.         $id $this->getUser()->getId();
  3756.         $accomp $this->em->getRepository(User::class)->find($id);
  3757.         // Mark the tour as finished (e.g. set showpubprod to 1)
  3758.         $accomp->setShowpubprod(1);
  3759.         $em->persist($user);
  3760.         $em->flush();
  3761.         return new JsonResponse(['status' => 'success']);
  3762.     }
  3763.     /**
  3764.      * @Route("/Accompagnateur/unsubscribe", name="accompagnateur_unsubscribe")
  3765.      */
  3766.     public function unsubscribe(Request $request): Response
  3767.     {
  3768.         return $this->forward('App\Controller\AccueilController::unsubscribeUser', [
  3769.             'email' => $request->query->get('email')
  3770.         ]);
  3771.     }
  3772. }