src/Controller/EspaceAccompagnateurController.php line 2277

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.         // Vérification de l'existence d'un album de séjour
  1038.         $hasAlbum false;
  1039.         $albumInfo '';
  1040.         
  1041.         // Vérifier s'il y a des photos/vidéos dans le séjour
  1042.         $attachments $em->getRepository(SejourAttachment::class)->getSejourAttachById($idsejour);
  1043.         $nbPhotos 0;
  1044.         $nbVideos 0;
  1045.         
  1046.         if ($attachments) {
  1047.             foreach ($attachments as $attachment) {
  1048.                 $typeRef $attachment->getIdAttchment()->getIdref()->getLibiller();
  1049.                 if ($typeRef === 'photo') {
  1050.                     $nbPhotos++;
  1051.                 } elseif ($typeRef === 'video') {
  1052.                     $nbVideos++;
  1053.                 }
  1054.             }
  1055.         }
  1056.         
  1057.         // Vérifier s'il y a un album créé par l'accompagnateur
  1058.         $albumAcc $em->getRepository(Produit::class)->findOneBy([
  1059.             'idsjour' => $idsejour
  1060.             'iduser' => $accompagnateur->getId(), 
  1061.             'statut' => 'saved'
  1062.         ], ['id' => 'DESC']);
  1063.         
  1064.         if (!$albumAcc) {
  1065.             // Vérifier s'il y a un album créé par l'admin
  1066.             $albumAdmin $em->getRepository(Produit::class)->findOneBy([
  1067.                 'iduser' => 1
  1068.                 'statut' => "Album_sejour"
  1069.                 'idsjour' => $sejour
  1070.             ]);
  1071.             $hasAlbum = ($albumAdmin !== null);
  1072.             if ($hasAlbum) {
  1073.                 $albumInfo 'Album créé par l\'administrateur';
  1074.             }
  1075.         } else {
  1076.             $hasAlbum true;
  1077.             $albumInfo 'Album créé par l\'accompagnateur';
  1078.         }
  1079.         $this->userService->sendCommandeGroupeeEmail($sejour$nbAlbums$email$phone$address,$addressComplement,$postalCode$city ,$region,$country,$accompagnateur,$hasAlbum);
  1080.      return new JsonResponse('done');
  1081.     }
  1082.     /**
  1083.      * @Route("Accompagnateur/Accueil5sur5/supprimdescription", name="supprimdescription")
  1084.      */
  1085.     public function supprimdescription(Request $request)
  1086.     {
  1087.         $UserService $this->userService;
  1088.         $iddescription $request->get('iddescription');
  1089.         $desc $UserService->supprimdescription($iddescription);
  1090.         return new JsonResponse('done');
  1091.     }
  1092.     /**
  1093.      * @Route("Accompagnateur/Accueil5sur5/modificationdescription", name="modificationdescription",methods={"POST"})
  1094.      */
  1095.     public function modificationdescription(Request $request)
  1096.     {
  1097.         $UserService $this->userService;
  1098.         $iddescription $request->get('iddescription');
  1099.         $description $request->get('description');
  1100.         $desc $UserService->modificationdescription($iddescription$description);
  1101.         return new JsonResponse('done');
  1102.     }
  1103.     /**
  1104.      * @Route("Accompagnateur/EditionAlbum", name="VoirProjet")
  1105.      */
  1106.     public function AffichageProjet()
  1107.     {
  1108.         $sejourservice $this->sejourService;
  1109.         $session $this->session;
  1110.         $idSejour $session->get("Sejour");
  1111.         $sejour $sejourservice->getsejourByAcc($idSejour$this->getUser());
  1112.         $session->set('pageMenu''albumSej');
  1113.         $user $this->getUser();
  1114.         // dd($user);
  1115.         $iduser $this->getUser()->getId();
  1116.         $listeattach $sejourservice->getatachmentsejour($idSejour);
  1117.         $listeattachM $sejourservice->getsejourmessage($idSejour);
  1118.         $em $this->em;
  1119.         $clipart null;
  1120.         $random true;
  1121.         $listeattachlikephoto $sejourservice->getlikephotosejour($iduser$idSejour);
  1122.         $listerandom $listeattachlikephoto;
  1123.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'random']);
  1124.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  1125.         $allpagesResult = array();
  1126.         $tabacc = array();
  1127.         $tabacc1 = array();
  1128.         if ($random == true) {
  1129.             foreach ($AllPages as $p) {
  1130.                 $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  1131.                 //dd($arrayexploded);
  1132.                 $rr "";
  1133.                 $elemPath "";
  1134.                 $elemId "";
  1135.                 for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  1136.                     if ($i sizeof($arrayexploded)) {
  1137.                         if (sizeof($listerandom) == 0) {
  1138.                             $listerandom $sejourservice->getlikephotosejour($iduser$idSejour);
  1139.                         }
  1140.                         $arrayRsRandom $this->random_function($listerandom);
  1141.                         array_push($tabacc$arrayRsRandom['idelem']);
  1142.                         $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  1143.                         unset($listerandom[$arrayRsRandom['elem']]);
  1144.                     } else {
  1145.                         $rr $rr $arrayexploded[$i];
  1146.                     }
  1147.                     $listerandom $listerandom;
  1148.                 }
  1149.                 $resultFinal $rr;
  1150.                 $p->setCouleurbordure($resultFinal);
  1151.                 array_push($allpagesResult$p);
  1152.             }
  1153.             $AllPages $allpagesResult;
  1154.             $version 'new';
  1155.         } else {
  1156.             $version $Albumproduct->getVersion();
  1157.         }
  1158.         $tabacc1 array_count_values($tabacc);
  1159.         $part $sejour->getIdPartenaire();
  1160.         $nompart $part->getUsername();
  1161.         $logopart $part->getLogourl();
  1162.         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]);
  1163.     }
  1164.     function random_function($listerandom)
  1165.     {
  1166.         $elem array_rand($listerandom);
  1167.         $photo $listerandom[$elem];
  1168.         $idelem $photo->getIdSejourAttchment()->getIdAttchment()->getId();
  1169.         $pathelem $photo->getIdSejourAttchment()->getIdAttchment()->getPath();
  1170.         return array('pathelem' => $pathelem'idelem' => $idelem'elem' => $elem);
  1171.     }
  1172.     function random_functionPhoto($listerandom$elem)
  1173.     {
  1174.         $photo $listerandom[$elem];
  1175.         $idelem $photo->getIdSejourAttchment()->getIdAttchment()->getId();
  1176.         $pathelem $photo->getIdSejourAttchment()->getIdAttchment()->getPath();
  1177.         return array('pathelem' => $pathelem'idelem' => $idelem'elem' => $elem);
  1178.     }
  1179.     /**
  1180.      * @Route("Accompagnateur/Condtyg", name="conditiongenerale_Acomp",methods={"POST"})
  1181.      */
  1182.     public function condition(Request $request)
  1183.     {
  1184.         $UserService $this->userService;
  1185.         $id $request->get('id');
  1186.         $sejour $UserService->condition($id);
  1187.         return new JsonResponse('done');
  1188.     }
  1189.     /**
  1190.      * @Route("Accompagnateur/MonPanierAccompaganteur", name="MonPanierAccompaganteur")
  1191.      */
  1192.     public function MonPanierAccompaganteur()
  1193.     {
  1194.         $em $this->em;
  1195.         $sejourservice $this->sejourService;
  1196.         $session $this->session;
  1197.         $idSejour $session->get("Sejour");
  1198.         $sejour $sejourservice->getsejourByAcc($idSejour$this->getUser());
  1199.         $session->set('pageMenu''panier');
  1200.         $user $this->getUser();
  1201.         $products $session->get("Panier_Acompa");
  1202.         $listeproduit $em->getRepository(Produit::class)->findBy(array('iduser' => $user->getId(), "idsjour" => $idSejour));
  1203.         $produit $this->typeProduiteService;
  1204.         $produitlist $produit->produitlistTypeConditionnement();
  1205.         return $this->render('Accompagnateur/MonPanierAccompaganteur.html.twig', ['user' => $user"listeproduit" => $listeproduit'sejour' => $sejour'Panier' => $products'produitlist' => $produitlist]);
  1206.     }
  1207.     /**
  1208.      * @Route("Accompagnateur/SessionPromo", name="SessionPromo")
  1209.      */
  1210.     public function SessionPromo()
  1211.     {
  1212.         $session $this->session;
  1213.         $session->set("promoAcc""true");
  1214.         return new Response('ok');
  1215.     }
  1216.     /**
  1217.      * @Route("/Accompagnateur/suprimerattachAcommpailmag", name="suprimerattachAcommpailmag")
  1218.      */
  1219.     public function suprimerattachAcommpailmag(Request $request)
  1220.     {
  1221.         $serviceuser $this->etablissementService;
  1222.         $id $request->get("prodId");
  1223.         $etablissementDetail $serviceuser->supprisionimageadminfon($id);
  1224.         //dd($etablissementDetail);
  1225.         return new response('done');
  1226.     }
  1227.     /**
  1228.      * @Route("/Accompagnateur/suprimermultiattachAcommp", name="suprimermultiattachAcommp")
  1229.      */
  1230.     public function suprimermultiattachAcommp(Request $request)
  1231.     {
  1232.         // Decode the JSON request body to get the array of photo IDs.
  1233.         $data json_decode($request->getContent(), true);
  1234.         $photoIds = isset($data['photoIds']) ? $data['photoIds'] : [];
  1235.         if (empty($photoIds)) {
  1236.             return new Response('No photos selected'400);
  1237.         }
  1238.         // Call the service to delete all attachments by the given IDs.
  1239.         $this->etablissementService->supprismultiattachAcommp($photoIds);
  1240.         return new Response('done');
  1241.     }
  1242.     /**
  1243.      * @Route("/Accompagnateur/AlbummsavealbumAcompa", name="Albummsavealbum")
  1244.      */
  1245.     public function Albummsavealbum(Request $request)
  1246.     {
  1247.         $serviceuser $this->etablissementService;
  1248.         $page $request->get("pages");
  1249.         $sejour $request->get("sejour");
  1250.         $prodid $request->get('idProd');
  1251.         $nomprod $request->get('nomprod');
  1252.      
  1253.         $version $request->get('new');
  1254.         $user $this->getUser();
  1255.          $stat="Album_sejour";
  1256.         $Album $serviceuser->savealbumAcc($page$user$sejour$prodid$stat$nomprod$version);
  1257.         return new response('done');
  1258.     }
  1259.     /**
  1260.      * @Route("/Accompagnateur/DupliquerAlbumAcco", name="DupliquerAlbumAcco")
  1261.      */
  1262.     public function DupliquerAlbumAcco(Request $request)
  1263.     {
  1264.         $serviceuser $this->etablissementService;
  1265.         $page $request->get("pages");
  1266.         $sejour $request->get("sejour");
  1267.         $prodid $request->get('idProd');
  1268.         $nomprod $request->get('nomprod');
  1269.         $stat $request->get('stat');
  1270.         $user $this->getUser();
  1271.         $Album $serviceuser->savealbumAcc($page$user$sejour$prodid$stat$nomprod);
  1272.         return new response('done');
  1273.     }
  1274.     /**
  1275.      * @Route("/Accompagnateur/AlbummsavealbumAcompa_panier", name="Albummsavealbum_panier")
  1276.      */
  1277.     public function Albummsavealbum_panier(Request $request)
  1278.     {
  1279.         $serviceuser $this->etablissementService;
  1280.         $page $request->get("pages");
  1281.         $sejour $request->get("sejour");
  1282.         $prodid $request->get('idProd');
  1283.         $nomprod $request->get('nomprod');
  1284.         $version $request->get('new');
  1285.         $stat "draft";
  1286.         $em $this->em;
  1287.         $user $this->getUser();
  1288.         $typeref $em->getRepository(Typeref::class)->find(8);
  1289.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1290.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1291.         //fin
  1292.         if ($panierTrace == null) {
  1293.             $panierTrace = new Panier();
  1294.             $dateNow = new \Datetime();
  1295.             $panierTrace->setDateCreation($dateNow);
  1296.             $panierTrace->setCreerPar($user);
  1297.             $panierTrace->setStatut($statutPanier);
  1298.             $em->getManager()->persist($panierTrace);
  1299.             $em->getManager()->flush();
  1300.         }
  1301.         $Album $serviceuser->savealbumAcc($page$user$sejour$prodid$stat$nomprod$version);
  1302.         $inser false;
  1303.         $session $this->session;
  1304.         $Products $session->get("Panier_Acompa");
  1305.         $em $this->em;
  1306.         if ($Products == null) {
  1307.             $Products = [];
  1308.         }
  1309.         foreach ($Products as $key => $p) {
  1310.             if ($p['id'] == $Album->getId()) {
  1311.                 $inser true;
  1312.                 $Products[$key]['qte'] = $p['qte'] + 1;
  1313.                 $Products[$key]['mnt'] = $p['mnt'] + $Album->getIdConditionnement()->getMontantTTC();
  1314.             }
  1315.         }
  1316.         //Touhemi :Rechercher  si le produti existe déja ds panierProduit
  1317.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $Album"idPanier" => $panierTrace));
  1318.         if ($panierProduit == null) {
  1319.             $panierProduit = new PanierProduit();
  1320.             $panierProduit->setIdProduit($Album);
  1321.             $panierProduit->setIdPanier($panierTrace);
  1322.             $em->getManager()->persist($panierProduit);
  1323.             $em->getManager()->flush();
  1324.         }
  1325.         //fin
  1326.         //Touhemi ajouter plus un au produit et modifier prixTotal
  1327.         $oldQte $panierProduit->getQuantite();
  1328.         $newQte $oldQte 1;
  1329.         $panierProduit->setQuantite($newQte);
  1330.         if ($panierProduit->getPrixTotal() == null) {
  1331.             $oldTotal $panierProduit->getPrixTotal();
  1332.         } else {
  1333.             $oldTotal 0;
  1334.         }
  1335.         $newTotal $oldTotal $Album->getIdConditionnement()->getMontantTTC();
  1336.         $panierProduit->setPrixTotal($newTotal);
  1337.         $this->em->getManager()->persist($panierProduit);
  1338.         $this->em->getManager()->flush();
  1339.         //fin
  1340.         if ($inser === false) {
  1341.             //get nessaisire element
  1342.             $p = [];
  1343.             $p["id"] = $Album->getId();
  1344.             $p["nom"] = $Album->getType()->getLabeletype();
  1345.             $p["ident"] = $Album->getLabele();
  1346.             $p["codesejour"] = $Album->getIdsjour()->getcodeSejour();
  1347.             $p["mnt"] = $Album->getIdConditionnement()->getMontantTTC();
  1348.             $p["path"] = $Album->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  1349.             $p["condition"] = $Album->getIdConditionnement()->getId();
  1350.             $p["poids"] = $Album->getIdConditionnement()->getPoidsProduit();
  1351.             $p["statut"] = $Album->getStatut();
  1352.             $p["qte"] = 1;
  1353.             array_push($Products$p);
  1354.         }
  1355.         $session->set('Panier_Acompa'$Products);
  1356.         return new response('done');
  1357.     }
  1358.     /**
  1359.      * @Route("Accompagnateur/MonAlbum/{id}", name="getmonAlbum")
  1360.      */
  1361.     public function getMyAlbumProjet($id)
  1362.     {
  1363.         $sejourservice $this->sejourService;
  1364.         $session $this->session;
  1365.         $idSejour $session->get("Sejour");
  1366.         $sejour $sejourservice->getsejourByAcc($idSejour$this->getUser());
  1367.         $session->set('pageMenu''parametres');
  1368.         $user $this->getUser();
  1369.         // dd($user);
  1370.         $iduser $this->getUser()->getId();
  1371.         $listeattach $sejourservice->getatachmentsejour($idSejour);
  1372.         $listeattachM $sejourservice->getsejourmessage($idSejour);
  1373.         $em $this->em;
  1374.         $clipart null;
  1375.         $random false;
  1376.         $tabacc = array();
  1377.         $tabacc1 = array();
  1378.         $listeattachlikephoto $sejourservice->getlikephotosejour($iduser$idSejour);
  1379.         $Albumproduct $em->getRepository(Produit::class)->find($id);
  1380.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  1381.         foreach ($AllPages as $page) {
  1382.             $pageJ json_decode($page->getCouleurbordure());
  1383.             $pageDec json_decode($pageJ[0]);
  1384.             $attache json_decode($pageDec->attache);
  1385.             if (isset($attache[0])) {
  1386.                 $attachDec json_decode($attache[0]);
  1387.             }
  1388.             if (isset($attachDec->id) && json_decode($attachDec->id) !== null && $attachDec->id !== '') {
  1389.                 $idAttach json_decode($attachDec->id);
  1390.                 array_push($tabacc$idAttach);
  1391.             }
  1392.         }
  1393.         $part $sejour->getIdPartenaire();
  1394.         $nompart $part->getUsername();
  1395.         $logopart $part->getLogourl();
  1396.         $FindSejour $em->getRepository(Sejour::class)->find($idSejour);
  1397.         $FindSejour->setEtatAcompAlbum(true);
  1398.         $em->getManager()->persist($FindSejour);
  1399.         $em->getManager()->flush();
  1400.         $tabacc1 array_count_values($tabacc);
  1401.         $version $Albumproduct->getVersion();
  1402.         if ($version === 'new') {
  1403.             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]);
  1404.         } else {
  1405.             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]);
  1406.         }
  1407.     }
  1408.     /**
  1409.      * @Route("/Accompagnateur/modifierLabel_produit_Acompa", name="modifierLabel_produit_Acompa",methods={"POST"})
  1410.      */
  1411.     public function modifierLabel_produit_Acompa(Request $request)
  1412.     {
  1413.         $SEjourService $this->sejourService;
  1414.         $userId $this->getUser()->getId();
  1415.         $session $this->session;
  1416.         $idPrd $request->get("id");
  1417.         $description $request->get("description");
  1418.         $SEjourService->modif_lbel_Produit($idPrd$description);
  1419.         return new Response('done');
  1420.     }
  1421.     /**
  1422.      * @Route("/Accompagnateur/ajouterauPanier_Accompagnateur", name="Ajouter_MonPanier_Acompa")
  1423.      */
  1424.     public function Ajouter_MonPanier(Request $request)
  1425.     {
  1426.         $inser false;
  1427.         $session $this->session;
  1428.         $testsaved false;
  1429.         $Products $session->get("Panier_Acompa");
  1430.         $id $request->get("id");
  1431.         $em $this->em;
  1432.         $produit $em->getRepository(Produit::class)->find($id);
  1433.         //Touhemi :Rechercher  si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
  1434.         $user $this->getUser();
  1435.         $typeref $em->getRepository(Typeref::class)->find(8);
  1436.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1437.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1438.         //fin
  1439.         if ($panierTrace == null) {
  1440.             $panierTrace = new Panier();
  1441.             $dateNow = new \Datetime();
  1442.             $panierTrace->setDateCreation($dateNow);
  1443.             $panierTrace->setCreerPar($user);
  1444.             $panierTrace->setStatut($statutPanier);
  1445.             $em->getManager()->persist($panierTrace);
  1446.             $em->getManager()->flush();
  1447.         }
  1448.         $sejourFind $produit->getIdsjour();
  1449.         $nrbconnx $em->getRepository(ParentSejour::class)->findBy(["idSejour" => $sejourFind->getId(), "payment" => 1]);
  1450.         $Album_Grtuie $produit->getIdsjour()->getAlbumgratuie();
  1451.         if ($Products == null) {
  1452.             $Products = [];
  1453.         }
  1454.         //Touhemi :Rechercher  si le produti existe déja ds panierProduit
  1455.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  1456.         if ($panierProduit == null) {
  1457.             $panierProduit = new PanierProduit();
  1458.             $panierProduit->setIdProduit($produit);
  1459.             $panierProduit->setIdPanier($panierTrace);
  1460.             $em->getManager()->persist($panierProduit);
  1461.             $em->getManager()->flush();
  1462.         }
  1463.         foreach ($Products as $key => $p) {
  1464.             if ($p['id'] == $produit->getId()) {
  1465.                 $inser true;
  1466.                 $Products[$key]['qte'] = $p['qte'] + 1;
  1467.                 // je regarde dans le panier si j'ai déjà ajouté un album gratuit
  1468.                 if ($p["statut"] == "saved" && $p["qte"] == 0) {
  1469.                     $Products[$key]['mnt'] = $produit->getIdConditionnement()->getMontantTTC();
  1470.                 } elseif ($p["statut"] == "saved" && $p["qte"] > 0) {
  1471.                     $Products[$key]['mnt'] = ($Products[$key]['qte'] - 1) * $produit->getIdConditionnement()->getMontantTTC();
  1472.                 }
  1473.                 // Si je n'ai pas d'album gratuit j'ajoute normalement,
  1474.                 else {
  1475.                     $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  1476.                 }
  1477.             }
  1478.             if ($Products[$key]["statut"] == "saved") {
  1479.                 $testsaved true// *****je sais que le panier contient déjà un album accompagnateur gratuit donc il peut commander un autre  
  1480.             }
  1481.         }
  1482.         //Touhemi ajouter plus un au produit et modifier prixTotal
  1483.         $oldQte $panierProduit->getQuantite();
  1484.         $newQte $oldQte 1;
  1485.         $panierProduit->setQuantite($newQte);
  1486.         if ($panierProduit->getPrixTotal() == null) {
  1487.             $oldTotal $panierProduit->getPrixTotal();
  1488.         } else {
  1489.             $oldTotal 0;
  1490.         }
  1491.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  1492.         $panierProduit->setPrixTotal($newTotal);
  1493.         $this->em->getManager()->persist($panierProduit);
  1494.         $this->em->getManager()->flush();
  1495.         //fin
  1496.         if ($inser === false) {
  1497.             //get nessaisire element
  1498.             $p = [];
  1499.             $p["id"] = $produit->getId();
  1500.             $p["nom"] = $produit->getType()->getLabeletype();
  1501.             $p["ident"] = $produit->getLabele();
  1502.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  1503.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  1504.             $p["condition"] = $produit->getIdConditionnement()->getId();
  1505.             $p["poids"] = $produit->getIdConditionnement()->getPoidsProduit();
  1506.             $p["statut"] = "payment";
  1507.             $p["qte"] = 1;
  1508.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  1509.             // dd($p);
  1510.             array_push($Products$p);
  1511.         }
  1512.         $session->set('Panier_Acompa'$Products);
  1513.         return new JsonResponse('done');
  1514.     }
  1515.     /**
  1516.      * @Route("/Accompagnateur/ActiverSessionAlbum", name="ActiverSessionAlbum")
  1517.      */
  1518.     public function ActiverSessionAlbum(Request $request)
  1519.     {
  1520.         $session->set('Panier_Acompa'$Products);
  1521.         return new JsonResponse('done');
  1522.     }
  1523.     /**
  1524.      * @Route("/Accompagnateur/suprimer_panier_Acompa", name="suprimer_panier_Acompa")
  1525.      */
  1526.     public function suprimer_Album_panier(Request $request)
  1527.     {
  1528.         $session $this->session;
  1529.         $Products $session->get("Panier_Acompa");
  1530.         $id $request->get("p");
  1531.         $idsej "";
  1532.         $gratuit "";
  1533.         foreach ($Products as $key => $p) {
  1534.             if ($p['id'] == $id) {
  1535.                 if ($p['statut'] == "saved") {
  1536.                     $gratuit true;
  1537.                 }
  1538.                 unset($Products[$key]);
  1539.             }
  1540.         }
  1541.         foreach ($Products as $key => $p) {
  1542.             if ($p['condition'] == && $gratuit == true) {
  1543.                 $p[$key]['condition'] = "saved";
  1544.                 $Products[$key]['mnt'] = $Products[$key]['mnt'] - ($Products[$key]['mnt'] / $Products[$key]['qte']);
  1545.                 $gratuit false;
  1546.             }
  1547.         }
  1548.         $em $this->em;
  1549.         $user $this->getUser();
  1550.         $produit $em->getRepository(Produit::class)->find($id);
  1551.         $session->set('Panier_Acompa'$Products);
  1552.         $typeref $em->getRepository(Typeref::class)->find(8);
  1553.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1554.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1555.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  1556.         $em->getManager()->remove($panierProduit);
  1557.         $em->getManager()->flush();
  1558.         return new Response('done');
  1559.     }
  1560.     /**
  1561.      * @Route("/Accompagnateur/Commander", name="Commander_Acompa")
  1562.      */
  1563.     public function Commander()
  1564.     {
  1565.         $session $this->session;
  1566.         #  var_dump($session);
  1567.         $idSejour $session->get("Sejour");
  1568.         $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  1569.         $user $this->getUser();
  1570.         $comande $session->get("comande");
  1571.         $panier $session->get("Panier_Acompa");
  1572.         $typeref $this->em->getRepository(Typeref::class)->find(8);
  1573.         $statutPanier $this->em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1574.         $panierTrace $this->em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1575.         $jetonService = new JetonService($this->em);
  1576.         $promotion 0;
  1577.         //if(($jetonService->checkJetonUser($user->getId()))&&($jetonService->checkApplicablePanier($panier))){
  1578.         //    $jetonService->appliquerJetonUserPanier($panierTrace->getId(),$user->getId());
  1579.         //    $promotion=$jetonService->getPromotion();
  1580.         //}else if($panierTrace->getJeton()==1){
  1581.         //    $promotion=$jetonService->getPromotion();
  1582.         //}
  1583.         $Conditionnement $this->em->getRepository(TypeProduitConditionnement::class)->find(1);
  1584.         $prixphotos $Conditionnement->getMontantTTC();
  1585.         //dd();
  1586.         //var_dump($promotion." ".$panierTrace->getJeton());
  1587.         return $this->render('Accompagnateur/commande.html.twig', ["user" => $user"sejour" => $sejour"x" => $panier'promotion' => $promotion'prixphotos' => $prixphotos]);
  1588.     }
  1589.     /**
  1590.      * @Route("/Accompagnateur/adresse_comande", name="adresse_comande_Acompa",methods={"POST"})
  1591.      */
  1592.     public function adresse_comande_Acompa(Request $request)
  1593.     {
  1594.         $UserService $this->userService;
  1595.         //dd($this->getUser()->getId());
  1596.         $iduser $this->getUser()->getId();
  1597.         $prenom $request->get("prenom");
  1598.         $nom $request->get("nom");
  1599.         $organism $request->get("organism");
  1600.         $rue $request->get('ruevoi');
  1601.         $ville $request->get("villle");
  1602.         $pays $request->get("pays");
  1603.         $codepostal $request->get("codpostal");
  1604.         //adress facturation if exsist
  1605.         $prenomfacturation $request->get("prenomadressfacturation");
  1606.         $nomfacturation $request->get("nomadressfacturation");
  1607.         $organismfacturation $request->get("etablismadressfacturation");
  1608.         $ruefacturation $request->get('rueadressfacturation');
  1609.         $villefacturation $request->get("villefacturation");
  1610.         $paysfacturation $request->get("payadressfacturation");
  1611.         $codepostalfacturation $request->get("codepostalfacturation");
  1612.         //modification userPArent
  1613.         $adress $UserService->modifieradress_comande($rue$ville$pays$codepostal$iduser$prenom$nom$organism$prenomfacturation$nomfacturation$organismfacturation$ruefacturation$villefacturation$paysfacturation$codepostalfacturation);
  1614.         return new JsonResponse('done');
  1615.     }
  1616.     /**
  1617.      * @Route("/Accompagnateur/pass_Comande_Acompa_Alb", name="pass_Comande_Acompa_Alb",methods={"POST"})
  1618.      */
  1619.     public function AcompacomandeProduit(Request $request)
  1620.     {
  1621.         $em $this->em;
  1622.         $comandeservice $this->CommandeService;
  1623.         $userId $this->getUser()->getId();
  1624.         $session $this->session;
  1625.         // $comande = $request->get("x");
  1626.         $frais $request->get("fraiEnvoi");
  1627.         $envoipost $request->get("envoipost");
  1628.         $Products $session->get("Panier_Acompa");
  1629.         $totalepanier $request->get("totalepanier");
  1630.         $session->set('envoipost'$envoipost);
  1631.         $comand $comandeservice->addcomande_parent($Products$userId$frais$totalepanier$envoipost);
  1632.         $comand->setAdresslivraison($this->getUser()->getAdresslivraison());
  1633.         $comand->setAdressfactoration($this->getUser()->getAdressfactoration());
  1634.         $em->getManager()->persist($comand);
  1635.         $em->getManager()->flush();
  1636.         //$session->set('envoipost',$envoipost );
  1637.         //panier retour a zero
  1638.         //$Products=[];
  1639.         $session->set('commandeActual'$comand->getId());
  1640.         return new Response($comand->getId());
  1641.     }
  1642.     /**
  1643.      * @Route("/Accompagnateur/soustractionproduit_panierAcomp", name="soustractionproduit_panierAcomp",methods={"POST"})
  1644.      */
  1645.     public function soustractionproduit_panierAcomp(Request $request)
  1646.     {
  1647.         $session $this->session;
  1648.         $Products $session->get("Panier_Acompa");
  1649.         $id $request->get("p");
  1650.         $em $this->em;
  1651.         $user $this->getUser();
  1652.         $gratuit "";
  1653.         $produit $em->getRepository(Produit::class)->find($id);
  1654.         foreach ($Products as $key => $p) {
  1655.             if ($p['id'] == $id) {
  1656.                 if ($p["statut"] == "saved" && $p["qte"] == 1) {
  1657.                     if ($p['statut'] == "saved") {
  1658.                         $gratuit true;
  1659.                     }
  1660.                     unset($Products[$key]);
  1661.                 } elseif ($p["statut"] == "saved" && $p["qte"] > 1) {
  1662.                     $Products[$key]['qte'] = $p['qte']  - 1;
  1663.                     $Products[$key]['mnt'] = $Products[$key]['mnt'] - $produit->getIdConditionnement()->getMontantTTC();
  1664.                 } elseif ($p["qte"] == 1) {
  1665.                     unset($Products[$key]);
  1666.                 } else {
  1667.                     $Products[$key]['qte'] = $p['qte'] - 1;
  1668.                     $Products[$key]['mnt'] = $Products[$key]['mnt'] - $produit->getIdConditionnement()->getMontantTTC();
  1669.                 }
  1670.             }
  1671.         }
  1672.         foreach ($Products as $key => $p) {
  1673.             if ($p['condition'] == && $gratuit == true) {
  1674.                 $Products[$key]['statut'] = "saved";
  1675.                 $Products[$key]['mnt'] = $Products[$key]['mnt'] - ($Products[$key]['mnt'] / $Products[$key]['qte']);
  1676.                 $gratuit false;
  1677.             }
  1678.         }
  1679.         $session->set('Panier_Acompa'$Products);
  1680.         $typeref $em->getRepository(Typeref::class)->find(8);
  1681.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1682.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1683.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  1684.         if ($panierProduit != null) {
  1685.             $oldQte $panierProduit->getQuantite();
  1686.             $newQte $oldQte 1;
  1687.             if ($newQte 0) {
  1688.                 $panierProduit->setQuantite($newQte);
  1689.                 $oldTotal $panierProduit->getPrixTotal();
  1690.                 $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  1691.                 $panierProduit->setPrixTotal($newTotal);
  1692.                 $em->getManager()->persist($panierProduit);
  1693.                 $em->getManager()->flush();
  1694.             }
  1695.             if ($newQte == 0) {
  1696.                 $em->getManager()->remove($panierProduit);
  1697.                 $em->getManager()->flush();
  1698.             }
  1699.             return new Response('done');
  1700.         }
  1701.     }
  1702.     /**
  1703.      * @Route("/Accompagnateur/Additionproduit_panierAcomp", name="additiondproduit_Acompa",methods={"POST"})
  1704.      */
  1705.     public function additiondproduit_parent(Request $request)
  1706.     {
  1707.         $session $this->session;
  1708.         $Products $session->get("Panier_Acompa");
  1709.         $id $request->get("p");
  1710.         $em $this->em;
  1711.         $user $this->getUser();
  1712.         $produit $em->getRepository(Produit::class)->find($id);
  1713.         foreach ($Products as $key => $p) {
  1714.             if ($p['id'] == $produit->getId()) {
  1715.                 $inser true;
  1716.                 $Products[$key]['qte'] = $p['qte'] + 1;
  1717.                 if ($p["statut"] == "saved" && $p["qte"] == 0) {
  1718.                     $Products[$key]['mnt'] = $produit->getIdConditionnement()->getMontantTTC();
  1719.                 } elseif ($p["statut"] == "saved" && $p["qte"] > 0) {
  1720.                     $Products[$key]['mnt'] = ($Products[$key]['qte'] - 1) * $produit->getIdConditionnement()->getMontantTTC();
  1721.                 } else {
  1722.                     $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  1723.                 }
  1724.             }
  1725.         }
  1726.         $session->set('Panier_Acompa'$Products);
  1727.         $typeref $em->getRepository(Typeref::class)->find(8);
  1728.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1729.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1730.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  1731.         if ($panierProduit != null) {
  1732.             $oldQte $panierProduit->getQuantite();
  1733.             $newQte $oldQte 1;
  1734.             $panierProduit->setQuantite($newQte);
  1735.             $oldTotal $panierProduit->getPrixTotal();
  1736.             $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  1737.             $panierProduit->setPrixTotal($newTotal);
  1738.             $em->getManager()->persist($panierProduit);
  1739.             $em->getManager()->flush();
  1740.         }
  1741.         return new Response('done');
  1742.     }
  1743.     /**
  1744.      * @Route("/Accompagnateur/SupprimerCommande", name="Supprimer_CommandeAcco")
  1745.      */
  1746.     function RemoveCommandeAcco(Request $request)
  1747.     {
  1748.         $CommandeService $this->CommandeService;
  1749.         $idCmd $request->get('id');
  1750.         $result $CommandeService->CommandeCloture($idCmd);
  1751.         return new Response($result);
  1752.     }
  1753.     /**
  1754.      * @Route("/Accompagnateur/delateSession", name="delateSession",methods={"POST"})
  1755.      */
  1756.     public function delateSession(Request $request)
  1757.     {
  1758.         $session $this->session;
  1759.         $em $this->em;
  1760.         $Products = [];
  1761.         if ($session->get("paymentmoniteco") == "succses") {
  1762.             $Products = [];
  1763.             $session->set('Panier_Acompa'$Products);
  1764.             $user $this->getUser();
  1765.             $typeref $em->getRepository(Typeref::class)->find(8);
  1766.             $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  1767.             $payer $em->getRepository(Ref::class)->findOneBy(array("libiller" => "payer""typeref" => $typeref));
  1768.             $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  1769.             if ($panierTrace) {
  1770.                 $panierTrace->setStatut($payer);
  1771.                 $em->getManager()->persist($panierTrace);
  1772.                 $em->getManager()->flush();
  1773.             }
  1774.         }
  1775.         $this->session->remove('paymentmoniteco');
  1776.         $this->session->remove('montanttotalcomande');
  1777.         $this->session->remove('Panierlength');
  1778.         $this->session->remove('envoipost');
  1779.         return new Response('done');
  1780.     }
  1781.     /**
  1782.      * @Route("/Accompagnateur/SuiviCommande/{id}", name="SuiviCommand")
  1783.      */
  1784.     public function SuiviCommand($id)
  1785.     {
  1786.         $sejourservice $this->sejourService;
  1787.         $cmdservice $this->CommandeService;
  1788.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  1789.         $session $this->session;
  1790.         $session->set('route''nonlogin');
  1791.         $session->set('pageMenu''parametres');
  1792.         $user $this->getUser();
  1793.         $listeCmd $cmdservice->listerCommandeParUser($user$sejour);
  1794.         //dd($listeCmd);
  1795.         return $this->render('Accompagnateur/suivicommande.html.twig', ['user' => $user'sejour' => $sejour'listeCmd' => $listeCmd]);
  1796.     }
  1797.     /**
  1798.      * @Route("/Accompagnateur/pdffactureAccomptest/{id}", name="pdffactureAccomptest")
  1799.      */
  1800.     public function pdffactureAccomptest($id)
  1801.     {
  1802.         $em $this->em;
  1803.         $cmd $em->getRepository(Commande::class)->find($id);
  1804.         return $this->render('Accompagnateur/pdfFactureAccomp.html.twig', [
  1805.             "comande" => $cmd,
  1806.         ]);
  1807.     }
  1808.     /**
  1809.      * @Route("/Accompagnateur/pdffactureAccomp/{id}", name="pdffactureAccomp")
  1810.      */
  1811.     public function pdffactureAccomp($id)
  1812.     {
  1813.         $em $this->em;
  1814.         $cmd $em->getRepository(Commande::class)->find($id);
  1815.         //dd($cmdProd);
  1816.         // Configure Dompdf according to your needs
  1817.         $pdfOptions = new Options();
  1818.         $pdfOptions->set('isRemoteEnabled'TRUE);
  1819.         $pdfOptions->set('defaultFont''Arial');
  1820.         // Instantiate Dompdf with our options
  1821.         $dompdf = new Dompdf($pdfOptions);
  1822.         $dompdf->set_option('isRemoteEnabled'TRUE);
  1823.         // Retrieve the HTML generated in our twig file
  1824.         $html $this->renderView('Accompagnateur/pdfFactureAccomp.html.twig', [
  1825.             "comande" => $cmd,
  1826.         ]);
  1827.         // Load HTML to Dompdf
  1828.         $dompdf->loadHtml($html);
  1829.         // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  1830.         $dompdf->setPaper('A4''portrait');
  1831.         // Render the HTML as PDF
  1832.         $dompdf->render();
  1833.         // Output the generated PDF to Browser (force download)
  1834.         $dompdf->stream("facture.pdf", [
  1835.             "Attachment" => true
  1836.         ]);
  1837.     }
  1838.     /**
  1839.      * @Route("/Accompagnateur/suprimerproduitAcompa", name="suprimerproduitAcompa")
  1840.      */
  1841.     public function suprimerproduitAcompa(Request $request)
  1842.     {
  1843.         $em $this->em;
  1844.         $user $this->getUser();
  1845.         $p $request->get("p");
  1846.         $Album $em->getRepository(Produit::class)->find($p);
  1847.         $Album->setDelated(1);
  1848.         $em->getManager()->persist($Album);
  1849.         $em->getManager()->flush();
  1850.         return new Response('yoopi');
  1851.     }
  1852.     /**
  1853.      * @Route("/Accompagnateur/affectationPositionPhoto", name="affectationPositionPhoto")
  1854.      */
  1855.     public function affectationPositionPhoto(Request $request)
  1856.     {
  1857.         $postionID $request->get("position");
  1858.         $attachs = ($request->get("attach"));
  1859.         $positionOrigin $this->em->getRepository(Position::class)->find($postionID);
  1860.         $Cartervice $this->carteService;
  1861.         foreach ($attachs as $key => $att) {
  1862.             $Attachement $this->em->getRepository(Attachment::class)->find($att);
  1863.             //  $attachement = $this->em->getRepository(Position::class)->find();
  1864.             $lat floatval($positionOrigin->getLatPosition()) + (0.0005 $key);
  1865.             $lng floatval($positionOrigin->getLngPosition()) + (0.0005 $key);
  1866.             $position $Cartervice->create_newPositionImage($this->getUser(), $lat$lng);
  1867.             $Cartervice->affecterPosition($Attachement$position);
  1868.         }
  1869.         //0.0001
  1870.         return new Response("done");
  1871.     }
  1872.     /**
  1873.      * @Route("/Accompagnateur/appActiveAcompt_Acompa/{sejour}", name="appActiveAcompt_Acompa")
  1874.      */
  1875.     public function appActiveAcompt_Acompa($sejour)
  1876.     {
  1877.         ini_set("max_execution_time", -1);
  1878.         ini_set('memory_limit''-1');
  1879.         $em $this->em;
  1880.         $SejourService $this->sejourService;
  1881.         $sejourfind $em->getRepository(Sejour::class)->find($sejour);
  1882.         $user $sejourfind->getIdAcommp();
  1883.         $em->getManager()->persist($user);
  1884.         $em->getManager()->flush();
  1885.         $SejourService->EnvoyerEmailOKActivation_CompteAcc($sejourfind->getId());
  1886.         //$SejourService->EnvoyerEmailPasswordSejourToPartenaireAndAcco($sejourfind->getId());
  1887.         //      $SejourService->EnvoyerEmailNewPartenaire($sejourfind->getIdPartenaire());
  1888.         $providerKey 'main_Acommpa'// your firewall name
  1889.         $token = new UsernamePasswordToken($usernull$providerKey$user->getRoles());
  1890.         $this->container->get('security.token_storage')->setToken($token);
  1891.         $this->session->set('Sejour'$sejourfind->getId());
  1892.         return $this->redirectToRoute('SejourAccompagnateur', ['id' => $sejourfind->getId()]);
  1893.         //return $this->redirectToRoute('Mon_Compte_Activer_Acompa');
  1894.     }
  1895.     /**
  1896.      * @Route("/Accompagnateur/LivrePhotos", name="LivrePhotosAccom")
  1897.      */
  1898.     public function EditionLivrePhotosAccompagnateur()
  1899.     {
  1900.         $SEjourService $this->sejourService;
  1901.         $userId $this->getUser()->getId();
  1902.         $session $this->session;
  1903.         $session->set('pageMenu''');
  1904.         $idSejour $session->get("Sejour");
  1905.         $sejour $SEjourService->getsejourpourparent($idSejour);
  1906.         $em $this->em;
  1907.         $clipart null;
  1908.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  1909.         $listerandom $listeattachlikephoto;
  1910.         $random true;
  1911.         $allpagesResult = array();
  1912.         $tabacc = array();
  1913.         $tabacc1 = array();
  1914.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomLivre']);
  1915.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  1916.         $idAcc $sejour->getIdAcommp();
  1917.         $part $sejour->getIdPartenaire();
  1918.         $nompart $part->getUsername();
  1919.         $logopart $part->getLogourl();
  1920.         foreach ($AllPages as $p) {
  1921.             $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  1922.             $rr "";
  1923.             $elemPath "";
  1924.             $elemId "";
  1925.             for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  1926.                 if ($i sizeof($arrayexploded)) {
  1927.                     if (sizeof($listerandom) == 0) {
  1928.                         $listerandom $SEjourService->getlikephotosejour($userId$idSejour);
  1929.                     }
  1930.                     $arrayRsRandom $this->random_function($listerandom);
  1931.                     array_push($tabacc$arrayRsRandom['idelem']);
  1932.                     $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  1933.                     unset($listerandom[$arrayRsRandom['elem']]);
  1934.                 } else {
  1935.                     $rr $rr $arrayexploded[$i];
  1936.                 }
  1937.                 $listerandom $listerandom;
  1938.             }
  1939.             $resultFinal $rr;
  1940.             $p->setCouleurbordure($resultFinal);
  1941.             array_push($allpagesResult$p);
  1942.         }
  1943.         $tabacc1 array_count_values($tabacc);
  1944.         $AllPages $allpagesResult;
  1945.         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]);
  1946.     }
  1947.     /**
  1948.      * @Route("/Accompagnateur/LivrePhotos3", name="LivrePhotosAccom3")
  1949.      */
  1950.     public function EditionLivrePhotosAccompagnateur3()
  1951.     {
  1952.         $SEjourService $this->sejourService;
  1953.         $userId $this->getUser()->getId();
  1954.         $session $this->session;
  1955.         $session->set('pageMenu''');
  1956.         $idSejour $session->get("Sejour");
  1957.         $sejour $SEjourService->getsejourpourparent($idSejour);
  1958.         $em $this->em;
  1959.         $clipart null;
  1960.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  1961.         $listerandom $listeattachlikephoto;
  1962.         $random true;
  1963.         $allpagesResult = array();
  1964.         $tabacc = array();
  1965.         $tabacc1 = array();
  1966.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomLivre']);
  1967.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  1968.         $idAcc $sejour->getIdAcommp();
  1969.         $part $sejour->getIdPartenaire();
  1970.         $nompart $part->getUsername();
  1971.         $logopart $part->getLogourl();
  1972.         foreach ($AllPages as $p) {
  1973.             $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  1974.             $rr "";
  1975.             $elemPath "";
  1976.             $elemId "";
  1977.             for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  1978.                 if ($i sizeof($arrayexploded)) {
  1979.                     if (sizeof($listerandom) == 0) {
  1980.                         $listerandom $SEjourService->getlikephotosejour($userId$idSejour);
  1981.                     }
  1982.                     $arrayRsRandom $this->random_function($listerandom);
  1983.                     array_push($tabacc$arrayRsRandom['idelem']);
  1984.                     $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  1985.                     unset($listerandom[$arrayRsRandom['elem']]);
  1986.                 } else {
  1987.                     $rr $rr $arrayexploded[$i];
  1988.                 }
  1989.                 $listerandom $listerandom;
  1990.             }
  1991.             $resultFinal $rr;
  1992.             $p->setCouleurbordure($resultFinal);
  1993.             array_push($allpagesResult$p);
  1994.         }
  1995.         $tabacc1 array_count_values($tabacc);
  1996.         $AllPages $allpagesResult;
  1997.         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]);
  1998.     }
  1999.     /**
  2000.      * @Route("Accompagnateur/LivrePhotos/{idAlbm}", name="EditionlivrefrompanierAccompagnateur")
  2001.      */
  2002.     public function EditionLivrePhotosAccompagnateurparId($idAlbm)
  2003.     {
  2004.         $SEjourService $this->sejourService;
  2005.         $userId $this->getUser()->getId();
  2006.         $user $this->getUser();
  2007.         $session $this->session;
  2008.         $session->set('pageMenu''');
  2009.         $idSejour $session->get("Sejour");
  2010.         $produit $session->get("produit");
  2011.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2012.         $em $this->em;
  2013.         $clipart null;
  2014.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2015.         $random false;
  2016.         $Albumproduct $em->getRepository(Produit::class)->find($idAlbm);
  2017.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2018.         $allpagesResult = array();
  2019.         $tabacc = array();
  2020.         $tabacc1 = array();
  2021.         foreach ($AllPages as $page) {
  2022.             $pageJ json_decode($page->getCouleurbordure());
  2023.             $pageDec json_decode($pageJ[0]);
  2024.             $attache json_decode($pageDec->attache);
  2025.             if (isset($attache[0])) {
  2026.                 $attachDec json_decode($attache[0]);
  2027.             }
  2028.             //var_dump($attachDec);
  2029.             //var_dump(json_decode($attachDec->id));
  2030.             if (isset($attachDec->id) && json_decode($attachDec->id) !== null && $attachDec->id !== '') {
  2031.                 $idAttach json_decode($attachDec->id);
  2032.                 array_push($tabacc$idAttach);
  2033.             }
  2034.         }
  2035.         $tabacc1 array_count_values($tabacc);
  2036.         $part $sejour->getIdPartenaire();
  2037.         $nompart $part->getUsername();
  2038.         $logopart $part->getLogourl();
  2039.         $session->set('produit'$Albumproduct->gettype());
  2040.         $version $Albumproduct->getVersion();
  2041.         if ($version === 'new') {
  2042.             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]);
  2043.         } else {
  2044.             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]);
  2045.         }
  2046.     }
  2047.     /**
  2048.      * @Route("/Accompagnateur/saveLivrePhotos", name="saveLivrePhotosAccompagnateur")
  2049.      */
  2050.     public function saveLivrePhotos(Request $request)
  2051.     {
  2052.         $session $this->session;
  2053.         $serviceuser $this->etablissementService;
  2054.         $page $request->get("pages");
  2055.         $sejour $request->get("sejour");
  2056.         $prodid $request->get('idProd');
  2057.         $nomprod $request->get('nomprod');
  2058.         $version $request->get('new');
  2059.         $user $this->getUser();
  2060.         $produitcondition $session->get("produit");
  2061.         $produit $session->get("produittype");
  2062.         $produitcondss $session->get('produitconditionAlbum');
  2063.         $Album $serviceuser->saveOrUpdateLivreParent($page$user$sejour$prodid$produitcondss$nomprod$version);
  2064.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2065.         return new response('done');
  2066.     }
  2067.     /**
  2068.      * @Route("/Accompagnateur/saveLivrePhotosPanier", name="saveLivrePhotosPanierAccompagnateur")
  2069.      */
  2070.     public function saveLivrePhotospuisPanier(Request $request)
  2071.     {
  2072.         $em $this->em;
  2073.         $session $this->session;
  2074.         $produittype $session->get("produit");
  2075.         $produit $session->get("produittype");
  2076.         $serviceuser $this->etablissementService;
  2077.         $page $request->get("pages");
  2078.         $sejour $request->get("sejour");
  2079.         $prodid $request->get('idProd');
  2080.         $nomprod $request->get('nomprod');
  2081.         $version $request->get('new');
  2082.         $user $this->getUser();
  2083.         $Album $serviceuser->savelivreParent($page$user$sejour$prodid$produittype$nomprod$version);
  2084.         $inser false;
  2085.         $session $this->session;
  2086.         $Products $session->get("Panier_Acompa");
  2087.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  2088.         //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
  2089.         $user $this->getUser();
  2090.         $typeref $em->getRepository(Typeref::class)->find(8);
  2091.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2092.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2093.         //fin
  2094.         if ($panierTrace == null) {
  2095.             $panierTrace = new Panier();
  2096.             $dateNow = new \Datetime();
  2097.             $panierTrace->setDateCreation($dateNow);
  2098.             $panierTrace->setCreerPar($user);
  2099.             $panierTrace->setStatut($statutPanier);
  2100.             $em->getManager()->persist($panierTrace);
  2101.             $em->getManager()->flush();
  2102.         }
  2103.         //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
  2104.         if ($Products == null) {
  2105.             $Products = [];
  2106.         }
  2107.         foreach ($Products as $key => $p) {
  2108.             if ($p['id'] == $produit->getId()) {
  2109.                 $inser true;
  2110.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2111.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2112.             }
  2113.         }
  2114.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  2115.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2116.         if ($panierProduit == null) {
  2117.             $panierProduit = new PanierProduit();
  2118.             $panierProduit->setIdProduit($produit);
  2119.             $panierProduit->setIdPanier($panierTrace);
  2120.             $em->getManager()->persist($panierProduit);
  2121.             $em->getManager()->flush();
  2122.         }
  2123.         //fin
  2124.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  2125.         $oldQte $panierProduit->getQuantite();
  2126.         $newQte $oldQte 1;
  2127.         $panierProduit->setQuantite($newQte);
  2128.         $oldTotal $panierProduit->getPrixTotal();
  2129.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  2130.         $panierProduit->setPrixTotal($newTotal);
  2131.         $em->getManager()->persist($panierProduit);
  2132.         $em->getManager()->flush();
  2133.         //fin
  2134.         if ($inser === false) {
  2135.             $p = [];
  2136.             $p["id"] = $produit->getId();
  2137.             $p["nom"] = $produit->getType()->getLabeletype();
  2138.             $p["ident"] = $produit->getLabele();
  2139.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  2140.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  2141.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  2142.             $p["condition"] = $produit->getIdConditionnement()->getId();
  2143.             $p["statut"] = $produit->getStatut();
  2144.             $p["qte"] = 1;
  2145.             array_push($Products$p);
  2146.         }
  2147.         $session->set('Panier_Acompa'$Products);
  2148.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2149.         return new response('done');
  2150.     }
  2151.     /**
  2152.      * @Route("Accompagnateur/AjoutPochettePhotos/{nbr}", name="AjoutPochettePhotosAccompagnateur")
  2153.      */
  2154.     public function AjoutPochettePhotosAccompagnateur($nbr)
  2155.     {
  2156.         $SEjourService $this->sejourService;
  2157.         $userId $this->getUser()->getId();
  2158.         $user $this->getUser();
  2159.         $session $this->session;
  2160.         $session->set('pageMenu''');
  2161.         $idSejour $session->get("Sejour");
  2162.         $produitcondition $session->get("produit");
  2163.         $produit $session->get("produittype");
  2164.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2165.         $em $this->em;
  2166.         $clipart $em->getRepository(Clipart::class)->findAll();
  2167.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2168.         $listerandom $listeattachlikephoto;
  2169.         $AllPagesAcc null;
  2170.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'RandomPochette' $nbr]);
  2171.         $random true;
  2172.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2173.         $idAcc $sejour->getIdAcommp();
  2174.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  2175.         $part $sejour->getIdPartenaire();
  2176.         $nompart $part->getUsername();
  2177.         $logopart $part->getLogourl();
  2178.         if ($albumAcc != null and $albumAcc != "") {
  2179.             $AllPagesAcc $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
  2180.         }
  2181.         $allpagesResult = array();
  2182.         $j 0;
  2183.         if ($random == true) {
  2184.             foreach ($AllPages as $p) {
  2185.                 $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  2186.                 //                var_dump($arrayexploded);
  2187.                 $rr "";
  2188.                 $elemPath "";
  2189.                 $elemId "";
  2190.                 for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  2191.                     if ($i sizeof($arrayexploded)) {
  2192.                         if (sizeof($listerandom) == 0) {
  2193.                             $listerandom $listeattachlikephoto;
  2194.                         }
  2195.                         $arrayRsRandom $this->random_functionPhoto($listerandom$j);
  2196.                         $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  2197.                         unset($listerandom[$arrayRsRandom['elem']]);
  2198.                     } else {
  2199.                         $rr $rr $arrayexploded[$i];
  2200.                     }
  2201.                     $listerandom $listerandom;
  2202.                 }
  2203.                 $resultFinal $rr;
  2204.                 $p->setCouleurbordure($resultFinal);
  2205.                 array_push($allpagesResult$p);
  2206.                 if ($j sizeof($listeattachlikephoto) - 1) {
  2207.                     $j $j 1;
  2208.                 } else {
  2209.                     $j 0;
  2210.                 }
  2211.             }
  2212.             $AllPages $allpagesResult;
  2213.         }
  2214.         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]);
  2215.     }
  2216.     /**
  2217.      * @Route("/Accompagnateur/AjoutPochettePhotosAccompgnateur_Fav/{nbr}", name="NewPochettePhotoAcompagnateurFavoris")
  2218.      */
  2219.     public function NewPochettePhotoAcompagnateurFavoris($nbr)
  2220.     {
  2221.         $SEjourService $this->sejourService;
  2222.         $user $this->getUser();
  2223.         $userId $this->getUser()->getId();
  2224.         $session $this->get('session');
  2225.         $session->set('pageMenu''');
  2226.         $idSejour $session->get("Sejour");
  2227.         $produitcondition $session->get("produit");
  2228.         $produit $session->get("produittype");
  2229.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2230.         $em $this->getDoctrine()->getManager();
  2231.         $listeattachlikephoto $em->getRepository(Likephoto::class)->findBy(['idUser' =>  $userId'idSejour' =>  $idSejour]);
  2232.         foreach ($listeattachlikephoto as $photo) {
  2233.             $idattach $photo->getIdSejourAttchment();
  2234.             $SejattachPhoto  $photo->getIdSejourAttchment();
  2235.             $urlPhoto  =   $SejattachPhoto->getIdAttchment()->getPath();
  2236.             //$urlPhoto =   $attachPhoto->getPath();
  2237.             $new_url str_replace('upload/''upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/',  $urlPhoto);
  2238.             $photosData[] = [
  2239.                 'id' => $photo->getId(),
  2240.                 'url' =>    $new_url,
  2241.                 'caption' => "",
  2242.             ];
  2243.         }
  2244.         $nbLikes count($listeattachlikephoto);
  2245.         $photosDataJSON json_encode($photosData);
  2246.         return $this->render('/Accompagnateur/PochettePhotosLikes.html.twig', ["nbr" => $nbr"sejour" => $sejour,  "nbLikes" => $nbLikes'photosFav' =>    $photosDataJSON]);
  2247.     }
  2248.     /**
  2249.      * @Route("Accompagnateur/AjoutPhotosRetros/{nbr}", name="AjoutPhotosRetrosAccompagnateur")
  2250.      */
  2251.     public function AjoutPhotosRetrosAccompagnateur($nbr)
  2252.     {
  2253.         $SEjourService $this->sejourService;
  2254.         $userId $this->getUser()->getId();
  2255.         $user $this->getUser();
  2256.         $session $this->session;
  2257.         $session->set('pageMenu''');
  2258.         $idSejour $session->get("Sejour");
  2259.         $produitcondition $session->get("produit");
  2260.         $produit $session->get("produittype");
  2261.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2262.         $em $this->em;
  2263.         $clipart $em->getRepository(Clipart::class)->findAll();
  2264.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2265.         $listerandom $listeattachlikephoto;
  2266.         $AllPagesAcc null;
  2267.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'RandomPochette' $nbr]);
  2268.         $random true;
  2269.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2270.         $idAcc $sejour->getIdAcommp();
  2271.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  2272.         $part $sejour->getIdPartenaire();
  2273.         $nompart $part->getUsername();
  2274.         $logopart $part->getLogourl();
  2275.         if ($albumAcc != null and $albumAcc != "") {
  2276.             $AllPagesAcc $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
  2277.         }
  2278.         $allpagesResult = array();
  2279.         $j 0;
  2280.         if ($random == true) {
  2281.             foreach ($AllPages as $p) {
  2282.                 $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  2283.                 //                var_dump($arrayexploded);
  2284.                 $rr "";
  2285.                 $elemPath "";
  2286.                 $elemId "";
  2287.                 for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  2288.                     if ($i sizeof($arrayexploded)) {
  2289.                         if (sizeof($listerandom) == 0) {
  2290.                             $listerandom $listeattachlikephoto;
  2291.                         }
  2292.                         $arrayRsRandom $this->random_functionPhoto($listerandom$j);
  2293.                         $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  2294.                         unset($listerandom[$arrayRsRandom['elem']]);
  2295.                     } else {
  2296.                         $rr $rr $arrayexploded[$i];
  2297.                     }
  2298.                     $listerandom $listerandom;
  2299.                 }
  2300.                 $resultFinal $rr;
  2301.                 $p->setCouleurbordure($resultFinal);
  2302.                 array_push($allpagesResult$p);
  2303.                 if ($j sizeof($listeattachlikephoto) - 1) {
  2304.                     $j $j 1;
  2305.                 } else {
  2306.                     $j 0;
  2307.                 }
  2308.             }
  2309.             $AllPages $allpagesResult;
  2310.         }
  2311.         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]);
  2312.     }
  2313.     /**
  2314.      * @Route("Accompagnateur/Calendrier", name="CalendrierAccompagnateur")
  2315.      */
  2316.     public function CalendrierAccompagnateur()
  2317.     {
  2318.         $SEjourService $this->sejourService;
  2319.         $userId $this->getUser()->getId();
  2320.         $user $this->getUser();
  2321.         $session $this->session;
  2322.         $session->set('pageMenu''');
  2323.         $idSejour $session->get("Sejour");
  2324.         $produitcondition $session->get("produit");
  2325.         $produit $session->get("produittype");
  2326.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2327.         $em $this->em;
  2328.         $clipart $em->getRepository(Clipart::class)->findAll();
  2329.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2330.         $listerandom $listeattachlikephoto;
  2331.         $AllPagesAcc null;
  2332.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomcalendrier']);
  2333.         $random true;
  2334.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2335.         $idAcc $sejour->getIdAcommp();
  2336.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  2337.         $part $sejour->getIdPartenaire();
  2338.         $nompart $part->getUsername();
  2339.         $logopart $part->getLogourl();
  2340.         if ($albumAcc != null and $albumAcc != "") {
  2341.             $AllPagesAcc $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
  2342.         }
  2343.         $allpagesResult = array();
  2344.         $tabacc = array();
  2345.         $tabacc1 = array();
  2346.         if ($random == true) {
  2347.             foreach ($AllPages as $p) {
  2348.                 $arrayexploded preg_split('[randomid|randompath]'$p->getCouleurbordure());
  2349.                 $rr "";
  2350.                 $elemPath "";
  2351.                 $elemId "";
  2352.                 for ($i 0$i sizeof($arrayexploded); $i $i 2) {
  2353.                     if ($i sizeof($arrayexploded)) {
  2354.                         if (sizeof($listerandom) == 0) {
  2355.                             $listerandom $SEjourService->getlikephotosejour($userId$idSejour);
  2356.                         }
  2357.                         $arrayRsRandom $this->random_function($listerandom);
  2358.                         array_push($tabacc$arrayRsRandom['idelem']);
  2359.                         $rr $rr $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i 1] . $arrayRsRandom['pathelem'];
  2360.                         unset($listerandom[$arrayRsRandom['elem']]);
  2361.                     } else {
  2362.                         $rr $rr $arrayexploded[$i];
  2363.                     }
  2364.                     $listerandom $listerandom;
  2365.                 }
  2366.                 $resultFinal $rr;
  2367.                 $p->setCouleurbordure($resultFinal);
  2368.                 array_push($allpagesResult$p);
  2369.             }
  2370.             $tabacc1 array_count_values($tabacc);
  2371.             $AllPages $allpagesResult;
  2372.         }
  2373.         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]);
  2374.     }
  2375.     /**
  2376.      * @Route("/Accompagnateur/SaveCalendrier", name="SaveCalendrierAccompagnateur")
  2377.      */
  2378.     public function SaveCalendrierAccompagnateur(Request $request)
  2379.     {
  2380.         $session $this->session;
  2381.         $serviceuser $this->etablissementService;
  2382.         $page $request->get("pages");
  2383.         $sejour $request->get("sejour");
  2384.         $prodid $request->get('idProd');
  2385.         $nomprod $request->get('nomprod');
  2386.         $nbr $request->get('nbr');
  2387.         $user $this->getUser();
  2388.         $nbr strval($nbr);
  2389.         $produittype $session->get("produit");
  2390.         $produit $session->get("produittype");
  2391.         $Album $serviceuser->SaveCalendrierParent($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  2392.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2393.         return new response('done');
  2394.     }
  2395.     /**
  2396.      * @Route("Accompagnateur/ModificationCalendrier/{id}", name="EditionCalendrierAccompagnateurfrompanier")
  2397.      */
  2398.     public function EditionCalendrierfrompanier($id)
  2399.     {
  2400.         $SEjourService $this->sejourService;
  2401.         $userId $this->getUser()->getId();
  2402.         $user $this->getUser();
  2403.         $session $this->session;
  2404.         $session->set('pageMenu''');
  2405.         $idSejour $session->get("Sejour");
  2406.         $produitcondition $session->get("produit");
  2407.         $produit $session->get("produittype");
  2408.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2409.         $em $this->em;
  2410.         $clipart $em->getRepository(Clipart::class)->findAll();
  2411.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2412.         $random false;
  2413.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
  2414.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2415.         $part $sejour->getIdPartenaire();
  2416.         $nompart $part->getUsername();
  2417.         $logopart $part->getLogourl();
  2418.         return $this->render('Accompagnateur/Calendrier.html.twig', ["nompart" => $nompart"logopart" => $logopart"sejour" => $sejour'like' => $listeattachlikephoto'cliparts' => $clipart'Album' => $Albumproduct'AllPages' => $AllPages'random' => $random]);
  2419.     }
  2420.     /**
  2421.      * @Route("/Accompagnateur/SaveCommandeCalendrier", name="SaveCommandeCalendrierAccompagnateur")
  2422.      */
  2423.     public function SaveCommandeCalendrierAccompagnateur(Request $request)
  2424.     {
  2425.         $em $this->em;
  2426.         $session $this->session;
  2427.         $serviceuser $this->etablissementService;
  2428.         $page $request->get("pages");
  2429.         $sejour $request->get("sejour");
  2430.         $prodid $request->get('idProd');
  2431.         $nomprod $request->get('nomprod');
  2432.         $nbr $request->get('nbr');
  2433.         $em $this->em;
  2434.         $user $this->getUser();
  2435.         $nbr strval($nbr);
  2436.         $produittype $session->get("produit");
  2437.         $produit $session->get("produittype");
  2438.         $Album $serviceuser->SaveCalendrierParent($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  2439.         $inser false;
  2440.         $Products $session->get("Panier_Acompa");
  2441.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  2442.         //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
  2443.         $user $this->getUser();
  2444.         $typeref $em->getRepository(Typeref::class)->find(8);
  2445.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2446.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2447.         //fin
  2448.         if ($panierTrace == null) {
  2449.             $panierTrace = new Panier();
  2450.             $dateNow = new \Datetime();
  2451.             $panierTrace->setDateCreation($dateNow);
  2452.             $panierTrace->setCreerPar($user);
  2453.             $panierTrace->setStatut($statutPanier);
  2454.             $em->getManager()->persist($panierTrace);
  2455.             $em->getManager()->flush();
  2456.         }
  2457.         //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
  2458.         if ($Products == null) {
  2459.             $Products = [];
  2460.         }
  2461.         foreach ($Products as $key => $p) {
  2462.             if ($p['id'] == $produit->getId()) {
  2463.                 $inser true;
  2464.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2465.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2466.             }
  2467.         }
  2468.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  2469.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2470.         if ($panierProduit == null) {
  2471.             $panierProduit = new PanierProduit();
  2472.             $panierProduit->setIdProduit($produit);
  2473.             $panierProduit->setIdPanier($panierTrace);
  2474.             $em->getManager()->persist($panierProduit);
  2475.             $em->getManager()->flush();
  2476.         }
  2477.         //fin
  2478.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  2479.         $oldQte $panierProduit->getQuantite();
  2480.         $newQte $oldQte 1;
  2481.         $panierProduit->setQuantite($newQte);
  2482.         $oldTotal $panierProduit->getPrixTotal();
  2483.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  2484.         $panierProduit->setPrixTotal($newTotal);
  2485.         $em->getManager()->persist($panierProduit);
  2486.         $em->getManager()->flush();
  2487.         //fin
  2488.         if ($inser === false) {
  2489.             $p = [];
  2490.             $p["id"] = $produit->getId();
  2491.             $p["nom"] = $produit->getType()->getLabeletype();
  2492.             $p["ident"] = $produit->getLabele();
  2493.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  2494.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  2495.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  2496.             $p["condition"] = $produit->getIdConditionnement()->getId();
  2497.             $p["statut"] = $produit->getStatut();
  2498.             $p["qte"] = 1;
  2499.             array_push($Products$p);
  2500.         }
  2501.         $session->set('Panier_Acompa'$Products);
  2502.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2503.         return new response('done');
  2504.     }
  2505.     /**
  2506.      * @Route("Accompagnateur/ModificationPochettePhotos/{nbr}/{id}", name="EditionPochettefrompanierAccompagnateur")
  2507.      */
  2508.     public function EditionPochettefrompanierAccompagnateur($nbr$id)
  2509.     {
  2510.         $SEjourService $this->sejourService;
  2511.         $userId $this->getUser()->getId();
  2512.         $user $this->getUser();
  2513.         $session $this->session;
  2514.         $session->set('pageMenu''');
  2515.         $idSejour $session->get("Sejour");
  2516.         $produitcondition $session->get("produit");
  2517.         $produit $session->get("produittype");
  2518.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2519.         $em $this->em;
  2520.         $clipart $em->getRepository(Clipart::class)->findAll();
  2521.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  2522.         $listerandom $listeattachlikephoto;
  2523.         $AllPagesAcc null;
  2524.         $random false;
  2525.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
  2526.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  2527.         $idAcc $sejour->getIdAcommp();
  2528.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  2529.         $part $sejour->getIdPartenaire();
  2530.         $nompart $part->getUsername();
  2531.         $logopart $part->getLogourl();
  2532.         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]);
  2533.     }
  2534.     /**
  2535.      * @Route("/Accompagnateur/SavePhotosPochette", name="SavePhotosPochetteAccompagnateur")
  2536.      */
  2537.     public function SavePhotosPochetteAccompagnateur(Request $request)
  2538.     {
  2539.         $session $this->session;
  2540.         $serviceuser $this->etablissementService;
  2541.         $page $request->get("pages");
  2542.         $sejour $request->get("sejour");
  2543.         $prodid $request->get('idProd');
  2544.         $nomprod $request->get('nomprod');
  2545.         $nbr $request->get('nbr');
  2546.         $user $this->getUser();
  2547.         $nbr strval($nbr);
  2548.         $produittype $session->get("produit");
  2549.         $produit $session->get("produittype");
  2550.         $Album $serviceuser->SavePhotosPochetteParent($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  2551.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2552.         return new response('done');
  2553.     }
  2554.     /**
  2555.      * @Route("/Accompagnateur/PochetteCommandeSave", name="PochettePhotosComandeSaveAccompagnateur")
  2556.      */
  2557.     public function PochettePhotosComandeSaveAccompagnateur(Request $request)
  2558.     {
  2559.         $em $this->em;
  2560.         $session $this->session;
  2561.         $serviceuser $this->etablissementService;
  2562.         $page $request->get("pages");
  2563.         $sejour $request->get("sejour");
  2564.         $prodid $request->get('idProd');
  2565.         $nomprod $request->get('nomprod');
  2566.         $nbr $request->get('nbr');
  2567.         $user $this->getUser();
  2568.         $nbr strval($nbr);
  2569.         $produittype $session->get("produit");
  2570.         $produit $session->get("produittype");
  2571.         $Album $serviceuser->SavePhotosPochetteParent($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  2572.         $inser false;
  2573.         $Products $session->get("Panier_Acompa");
  2574.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  2575.         //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
  2576.         $user $this->getUser();
  2577.         $typeref $em->getRepository(Typeref::class)->find(8);
  2578.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2579.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2580.         //fin
  2581.         if ($panierTrace == null) {
  2582.             $panierTrace = new Panier();
  2583.             $dateNow = new \Datetime();
  2584.             $panierTrace->setDateCreation($dateNow);
  2585.             $panierTrace->setCreerPar($user);
  2586.             $panierTrace->setStatut($statutPanier);
  2587.             $em->getManager()->persist($panierTrace);
  2588.             $em->getManager()->flush();
  2589.         }
  2590.         //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
  2591.         if ($Products == null) {
  2592.             $Products = [];
  2593.         }
  2594.         foreach ($Products as $key => $p) {
  2595.             if ($p['id'] == $produit->getId()) {
  2596.                 $inser true;
  2597.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2598.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2599.             }
  2600.         }
  2601.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  2602.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2603.         if ($panierProduit == null) {
  2604.             $panierProduit = new PanierProduit();
  2605.             $panierProduit->setIdProduit($produit);
  2606.             $panierProduit->setIdPanier($panierTrace);
  2607.             $em->getManager()->persist($panierProduit);
  2608.             $em->getManager()->flush();
  2609.         }
  2610.         //fin
  2611.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  2612.         $oldQte $panierProduit->getQuantite();
  2613.         $newQte $oldQte 1;
  2614.         $panierProduit->setQuantite($newQte);
  2615.         $oldTotal $panierProduit->getPrixTotal();
  2616.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  2617.         $panierProduit->setPrixTotal($newTotal);
  2618.         $em->getManager()->persist($panierProduit);
  2619.         $em->getManager()->flush();
  2620.         //fin
  2621.         if ($inser === false) {
  2622.             $p = [];
  2623.             $p["id"] = $produit->getId();
  2624.             $p["nom"] = $produit->getType()->getLabeletype();
  2625.             $p["ident"] = $produit->getLabele();
  2626.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  2627.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  2628.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  2629.             $p["condition"] = $produit->getIdConditionnement()->getId();
  2630.             $p["statut"] = $produit->getStatut();
  2631.             $p["qte"] = 1;
  2632.             array_push($Products$p);
  2633.         }
  2634.         $session->set('Panier_Acompa'$Products);
  2635.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  2636.         return new response('done');
  2637.     }
  2638.     /**
  2639.      * @Route("/Accompagnateur/AddPochetteAuPanier", name="AddPochetteAuPanierAccompagnateur")
  2640.      */
  2641.     public function AddPochetteAuPanierAccompagnateur(Request $request)
  2642.     {
  2643.         $em $this->em;
  2644.         $session $this->session;
  2645.         $serviceuser $this->etablissementService;
  2646.         $page $request->get("photos");
  2647.         $sejour $request->get("sejour");
  2648.         $nbr $request->get('nbr');
  2649.         $user $this->getUser();
  2650.         $nbr strval($nbr);
  2651.         //Enregistrement des infos de la pochette dans un produit et les photos dans des pages avec JSON
  2652.         $Pochette_photos $serviceuser->photosPochette_Nouvelle($page$user$sejour$nbr);
  2653.         $inser false;
  2654.         $Products $session->get("Panier_Acompa");
  2655.         $produit $em->getRepository(Produit::class)->find($Pochette_photos->getId());
  2656.         // Rechercher si l'utilisateur a déja un panier avec statut créer dans la bd, sinon on crée un panier
  2657.         $typeref $em->getRepository(Typeref::class)->find(8);
  2658.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2659.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2660.         if ($panierTrace == null) {
  2661.             $panierTrace = new Panier();
  2662.             $dateNow = new \Datetime();
  2663.             $panierTrace->setDateCreation($dateNow);
  2664.             $panierTrace->setCreerPar($user);
  2665.             $panierTrace->setStatut($statutPanier);
  2666.             $em->getManager()->persist($panierTrace);
  2667.             $em->getManager()->flush();
  2668.         }
  2669.         // Vérifier si le produit existe déjà dans le panier en session
  2670.         if ($Products == null) {
  2671.             $Products = [];
  2672.         }
  2673.         foreach ($Products as $key => $p) {
  2674.             if ($p['id'] == $produit->getId()) {
  2675.                 $inser true;
  2676.                 $Products[$key]['qte'] = $p['qte'] + 1;
  2677.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  2678.             }
  2679.         }
  2680.         // Rechercher si le produit existe déjà dans PanierProduit
  2681.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  2682.         if ($panierProduit == null) {
  2683.             $panierProduit = new PanierProduit();
  2684.             $panierProduit->setIdProduit($produit);
  2685.             $panierProduit->setIdPanier($panierTrace);
  2686.             $panierProduit->setQuantite(1);
  2687.             $panierProduit->setPrixTotal($produit->getIdConditionnement()->getMontantTTC());
  2688.             $em->getManager()->persist($panierProduit);
  2689.             $em->getManager()->flush();
  2690.         } else {
  2691.             // Ajouter un au produit et modifier prixTotal
  2692.             $oldQte $panierProduit->getQuantite();
  2693.             $newQte $oldQte 1;
  2694.             $panierProduit->setQuantite($newQte);
  2695.             $oldTotal $panierProduit->getPrixTotal();
  2696.             $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  2697.             $panierProduit->setPrixTotal($newTotal);
  2698.             $em->getManager()->persist($panierProduit);
  2699.             $em->getManager()->flush();
  2700.         }
  2701.         // Si le produit n'existe pas dans le panier en session, on l'ajoute
  2702.         if ($inser === false) {
  2703.             $p = [];
  2704.             $p["id"] = $produit->getId();
  2705.             $p["nom"] = $produit->getType()->getLabeletype();
  2706.             $p["ident"] = $produit->getLabele();
  2707.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  2708.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  2709.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  2710.             $p["condition"] = $produit->getIdConditionnement()->getId();
  2711.             $p["qte"] = 1;
  2712.             array_push($Products$p);
  2713.         }
  2714.         $session->set('Panier_Acompa'$Products);
  2715.         // Enregistrement pour email de relance
  2716.         //   $dateNow = new \Datetime();
  2717.         //   $userEmail = $user->getEmail();
  2718.         //   $this->EmailServie->SaveMailRelancePanier($userEmail);
  2719.         // Commenté comme dans la fonction parent
  2720.         // $this->EmailServie->MailRelancePanier($userEmail);
  2721.         return new response('done');
  2722.     }
  2723.     /**
  2724.      * @Route("Accompagnateur/AjoutRetroPhotosAccomp_Fav/{nbr}", name="AjoutRetroPhotosAccomp_Favoris")
  2725.      */
  2726.     public function AjoutRetroPhotosAccomp_Fav($nbr)
  2727.     {
  2728.         $SEjourService $this->sejourService;
  2729.         $user $this->getUser();
  2730.         $userId $this->getUser()->getId();
  2731.         $session $this->get('session');
  2732.         $session->set('pageMenu''');
  2733.         $idSejour $session->get("Sejour");
  2734.         $produitcondition $session->get("produit");
  2735.         $produit $session->get("produittype");
  2736.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2737.         $em $this->getDoctrine()->getManager();
  2738.         $listeattachlikephoto $em->getRepository(Likephoto::class)->findBy(['idUser' =>  $userId'idSejour' =>  $idSejour]);
  2739.         $photosData = [];
  2740.         foreach ($listeattachlikephoto as $photo) {
  2741.             $SejattachPhoto $photo->getIdSejourAttchment();
  2742.             $urlPhoto $SejattachPhoto->getIdAttchment()->getPath();
  2743.             // Apply the same transformations as parent function
  2744.             $new_url str_replace(
  2745.                 'upload/',
  2746.                 'upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/',
  2747.                 $urlPhoto
  2748.             );
  2749.             $photosData[] = [
  2750.                 'id' => $photo->getId(),
  2751.                 'url' => $new_url,
  2752.                 'caption' => "",
  2753.             ];
  2754.         }
  2755.         $nbLikes count($listeattachlikephoto);
  2756.         // Convertir le tableau PHP en JSON
  2757.         $photosDataJSON json_encode($photosData);
  2758.         dump($photosDataJSON);
  2759.         return $this->render('Accompagnateur/PhotosRetros.html.twig', ["nbr" => $nbr"sejour" => $sejour,  "nbLikes" => $nbLikes'photosFav' =>    $photosDataJSON]);
  2760.     }
  2761.     /**
  2762.      * @Route("/Accompagnateur/AddRetroAuPanier", name="AddRetroAuPanierAccompagnateur", methods={"POST"})
  2763.      */
  2764.     public function AddRetroAuPanierAccompagnateur(Request $request)
  2765.     {
  2766.         $em       $this->em;
  2767.         $session  $this->session;
  2768.         $user     $this->getUser();
  2769.         $service  $this->etablissementService;
  2770.         $photos   $request->get('photos');
  2771.         $sejourId $request->get('sejour');
  2772.         $nbr      strval($request->get('nbr'));
  2773.         // Create the new "Retro" product + store pages
  2774.         $RetroProduit $service->photosRetro_Nouvelle($photos$user$sejourId$nbr);
  2775.         // Handle cart logic
  2776.         $inser false;
  2777.         $Products $session->get("Panier_Acompa"); // Note the different session key for accompagnateur
  2778.         if (!$Products) {
  2779.             $Products = [];
  2780.         }
  2781.         // Get the newly created product
  2782.         $produit $em->getRepository(Produit::class)->find($RetroProduit->getId());
  2783.         // Check if a "Panier" with status "creer" for this user exists, or create one
  2784.         $typeref $em->getRepository(Typeref::class)->find(8);
  2785.         $statutPanier $em->getRepository(Ref::class)->findOneBy([
  2786.             "libiller" => "creer",
  2787.             "typeref" => $typeref
  2788.         ]);
  2789.         $panierTrace $em->getRepository(Panier::class)->findOneBy([
  2790.             "creerPar" => $user,
  2791.             "statut"   => $statutPanier
  2792.         ]);
  2793.         if (!$panierTrace) {
  2794.             $panierTrace = new Panier();
  2795.             $panierTrace->setDateCreation(new \DateTime());
  2796.             $panierTrace->setCreerPar($user);
  2797.             $panierTrace->setStatut($statutPanier);
  2798.             $em->getManager()->persist($panierTrace);
  2799.             $em->getManager()->flush();
  2800.         }
  2801.         // Check if this product already exists in session Products
  2802.         foreach ($Products as $key => $p) {
  2803.             if ($p['id'] == $produit->getId()) {
  2804.                 $inser true;
  2805.                 $Products[$key]['qte'] += 1;
  2806.                 $Products[$key]['mnt'] += $produit->getIdConditionnement()->getMontantTTC();
  2807.             }
  2808.         }
  2809.         // Check if it exists in PanierProduit table
  2810.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy([
  2811.             "idProduit" => $produit,
  2812.             "idPanier"  => $panierTrace
  2813.         ]);
  2814.         if (!$panierProduit) {
  2815.             $panierProduit = new PanierProduit();
  2816.             $panierProduit->setIdProduit($produit);
  2817.             $panierProduit->setIdPanier($panierTrace);
  2818.             $panierProduit->setQuantite(0); // Will be incremented below
  2819.             $panierProduit->setPrixTotal(0); // Will be updated below
  2820.             $em->getManager()->persist($panierProduit);
  2821.             $em->getManager()->flush();
  2822.         }
  2823.         // Increase quantity & total
  2824.         $oldQte $panierProduit->getQuantite();
  2825.         $panierProduit->setQuantite($oldQte 1);
  2826.         $oldTotal $panierProduit->getPrixTotal();
  2827.         $panierProduit->setPrixTotal($oldTotal $produit->getIdConditionnement()->getMontantTTC());
  2828.         $em->getManager()->persist($panierProduit);
  2829.         $em->getManager()->flush();
  2830.         // If not inserted in Products, add it
  2831.         if (!$inser) {
  2832.             $p = [
  2833.                 "id"         => $produit->getId(),
  2834.                 "nom"        => $produit->getType()->getLabeletype(),
  2835.                 "ident"      => $produit->getLabele(),
  2836.                 "codesejour" => $produit->getIdsjour()->getcodeSejour(),
  2837.                 "mnt"        => $produit->getIdConditionnement()->getMontantTTC(),
  2838.                 "path"       => $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath(),
  2839.                 "condition"  => $produit->getIdConditionnement()->getId(),
  2840.                 "statut"     => $produit->getStatut(), // Include status for accompagnateur
  2841.                 "qte"        => 1
  2842.             ];
  2843.             $Products[] = $p;
  2844.         }
  2845.         // Save to session with accompagnateur's session key
  2846.         $session->set('Panier_Acompa'$Products);
  2847.         return new Response('done');
  2848.     }
  2849.     /**
  2850.      * @Route("Accompagnateur/PackPhotosNumeriqueAccomp_Favoris/{nbr}", name="PackPhotosNumeriqueAccomp_Favoris")
  2851.      */
  2852.     public function PackPhotosNumerique_Favoris($nbr)
  2853.     {
  2854.         $SEjourService $this->sejourService;
  2855.         $user $this->getUser();
  2856.         $userId $this->getUser()->getId();
  2857.         $session $this->get('session');
  2858.         $session->set('pageMenu''');
  2859.         $idSejour $session->get("Sejour");
  2860.         $produitcondition $session->get("produit");
  2861.         $produit $session->get("produittype");
  2862.         $sejour $SEjourService->getsejourpourparent($idSejour);
  2863.         $em $this->getDoctrine()->getManager();
  2864.         $listeattachlikephoto $em->getRepository(Likephoto::class)->findBy(['idUser' =>  $userId'idSejour' =>  $idSejour]);
  2865.         foreach ($listeattachlikephoto as $photo) {
  2866.             $idattach $photo->getIdSejourAttchment();
  2867.             $SejattachPhoto  $photo->getIdSejourAttchment();
  2868.             $urlPhoto  =   $SejattachPhoto->getIdAttchment()->getPath();
  2869.             //$urlPhoto =   $attachPhoto->getPath();
  2870.             $new_url str_replace('upload/''upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/',  $urlPhoto);
  2871.             $photosData[] = [
  2872.                 'id' => $photo->getId(),
  2873.                 'url' =>    $new_url,
  2874.                 'caption' => "",
  2875.             ];
  2876.         }
  2877.         $nbLikes count($listeattachlikephoto);
  2878.         // Convertir le tableau PHP en JSON
  2879.         $photosDataJSON json_encode($photosData);
  2880.         return $this->render('Accompagnateur/PackPhotosNumerique_Favoris.html.twig', [
  2881.             "nbr" => $nbr,
  2882.             "sejour" => $sejour,
  2883.             "nbLikes" => $nbLikes,
  2884.             'photosFav' =>    $photosDataJSON
  2885.         ]);
  2886.     }
  2887.     /**
  2888.      * @Route("/Accompagnateur/SavePackPhotosNumeriqueComandeSaveAccomp_panier", name="SavePackPhotosNumeriqueComandeSaveAccomp_panier")
  2889.      */
  2890.     public function AddPackNumeriqueAuPanier(Request $request)
  2891.     {
  2892.         $em $this->em->getManager();
  2893.         $session $this->session;
  2894.         $serviceuser $this->etablissementService;
  2895.         $photos $request->get("photos");
  2896.         $sejour $request->get("sejour");
  2897.         $nbr $request->get('nbr');
  2898.         $user $this->getUser();
  2899.         $nbr strval($nbr);
  2900.         $nomprod "Pack Photos Numerique - " $nbr;
  2901.         // Register the product and associated photos
  2902.         $packPhotos $serviceuser->SavePackPhotosNumerique($photos$user$sejour$nbr$nomprod);
  2903.         $product $em->getRepository(Produit::class)->find($packPhotos->getId());
  2904.         // Check if user has an existing cart with "created" status
  2905.         $typeref $em->getRepository(Typeref::class)->find(8);
  2906.         $statutPanier $em->getRepository(Ref::class)->findOneBy(["libiller" => "creer""typeref" => $typeref]);
  2907.         $panierTrace $em->getRepository(Panier::class)->findOneBy(["creerPar" => $user"statut" => $statutPanier]);
  2908.         if ($panierTrace === null) {
  2909.             $panierTrace = new Panier();
  2910.             $panierTrace->setDateCreation(new \DateTime());
  2911.             $panierTrace->setCreerPar($user);
  2912.             $panierTrace->setStatut($statutPanier);
  2913.             $em->persist($panierTrace);
  2914.             $em->flush();
  2915.         }
  2916.         // Add product to cart session - Note the different session key for Accompagnateur
  2917.         $Products $session->get("Panier_Acompa", []);
  2918.         $inser false;
  2919.         foreach ($Products as $key => $p) {
  2920.             if ($p['id'] === $product->getId()) {
  2921.                 $inser true;
  2922.                 $Products[$key]['qte'] += 1;
  2923.                 $Products[$key]['mnt'] += $product->getIdConditionnement()->getMontantTTC();
  2924.             }
  2925.         }
  2926.         // Check if product exists in PanierProduit
  2927.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(["idProduit" => $product"idPanier" => $panierTrace]);
  2928.         if ($panierProduit === null) {
  2929.             $panierProduit = new PanierProduit();
  2930.             $panierProduit->setIdProduit($product);
  2931.             $panierProduit->setIdPanier($panierTrace);
  2932.             $panierProduit->setQuantite(1);
  2933.             $panierProduit->setPrixTotal($product->getIdConditionnement()->getMontantTTC());
  2934.             $em->persist($panierProduit);
  2935.             $em->flush();
  2936.         } else {
  2937.             // Update existing product quantity and total price
  2938.             $panierProduit->setQuantite($panierProduit->getQuantite() + 1);
  2939.             $panierProduit->setPrixTotal($panierProduit->getPrixTotal() + $product->getIdConditionnement()->getMontantTTC());
  2940.             $em->persist($panierProduit);
  2941.             $em->flush();
  2942.         }
  2943.         if (!$inser) {
  2944.             $p = [
  2945.                 "id" => $product->getId(),
  2946.                 "nom" => $product->getType()->getLabeletype(),
  2947.                 "ident" => $product->getLabele(),
  2948.                 "codesejour" => $product->getIdsjour()->getcodeSejour(),
  2949.                 "mnt" => $product->getIdConditionnement()->getMontantTTC(),
  2950.                 "path" => $product->getType()->getAttachements()[0]->getIdAttachement()->getPath(),
  2951.                 "condition" => $product->getIdConditionnement()->getId(),
  2952.                 "statut" => $product->getStatut(), // Include status for accompagnateur
  2953.                 "qte" => 1
  2954.             ];
  2955.             array_push($Products$p);
  2956.         }
  2957.         // Store in the accompagnateur's session key
  2958.         $session->set('Panier_Acompa'$Products);
  2959.         return new Response('done');
  2960.     }
  2961.     /**
  2962.      * @Route("/Accompagnateur/PochetcomdComandeSave", name="PochettePhotosComandeSave_panierAccompagnateur")
  2963.      */
  2964.     public function PochettePhotosComandeSave_panierAccompagnateur(Request $request)
  2965.     {
  2966.         $em $this->em;
  2967.         $session $this->session;
  2968.         $serviceuser $this->etablissementService;
  2969.         $page $request->get("pages");
  2970.         $sejour $request->get("sejour");
  2971.         $prodid $request->get('idProd');
  2972.         $nbr $request->get('nbr');
  2973.         $user $this->getUser();
  2974.         $nbr strval($nbr);
  2975.         $produittype $session->get("produit");
  2976.         $produit $session->get("produittype");
  2977.         $Album $serviceuser->SavePhotosPochetteParent($page$user$sejour$prodid$produit$produittype$nbr);
  2978.         $inser false;
  2979.         $Products $session->get("Panier_Acompa");
  2980.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  2981.         //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
  2982.         $user $this->getUser();
  2983.         $typeref $em->getRepository(Typeref::class)->find(8);
  2984.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  2985.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  2986.         //fin
  2987.         if ($panierTrace == null) {
  2988.             $panierTrace = new Panier();
  2989.             $dateNow = new \Datetime();
  2990.             $panierTrace->setDateCreation($dateNow);
  2991.             $panierTrace->setCreerPar($user);
  2992.             $panierTrace->setStatut($statutPanier);
  2993.             $em->getManager()->persist($panierTrace);
  2994.             $em->getManager()->flush();
  2995.         }
  2996.         //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
  2997.         if ($Products == null) {
  2998.             $Products = [];
  2999.         }
  3000.         foreach ($Products as $key => $p) {
  3001.             if ($p['id'] == $produit->getId()) {
  3002.                 $inser true;
  3003.                 $Products[$key]['qte'] = $p['qte'] + 1;
  3004.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  3005.             }
  3006.         }
  3007.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  3008.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  3009.         if ($panierProduit == null) {
  3010.             $panierProduit = new PanierProduit();
  3011.             $panierProduit->setIdProduit($produit);
  3012.             $panierProduit->setIdPanier($panierTrace);
  3013.             $em->getManager()->persist($panierProduit);
  3014.             $em->getManager()->flush();
  3015.         }
  3016.         //fin
  3017.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  3018.         $oldQte $panierProduit->getQuantite();
  3019.         $newQte $oldQte 1;
  3020.         $panierProduit->setQuantite($newQte);
  3021.         $oldTotal $panierProduit->getPrixTotal();
  3022.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  3023.         $panierProduit->setPrixTotal($newTotal);
  3024.         $em->getManager()->persist($panierProduit);
  3025.         $em->getManager()->flush();
  3026.         //fin
  3027.         if ($inser === false) {
  3028.             $p = [];
  3029.             $p["id"] = $produit->getId();
  3030.             $p["nom"] = $produit->getType()->getLabeletype();
  3031.             $p["ident"] = $produit->getLabele();
  3032.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  3033.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  3034.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  3035.             $p["condition"] = $produit->getIdConditionnement()->getId();
  3036.             $p["statut"] = $produit->getStatut();
  3037.             $p["qte"] = 1;
  3038.             array_push($Products$p);
  3039.         }
  3040.         $session->set('Panier_Acompa'$Products);
  3041.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());/
  3042.         return new response('done');
  3043.     }
  3044.     /**
  3045.      * @Route("Accompagnateur/ModificationPhotosRetros/{nbr}/{id}", name="EditionRetrofrompanierAccompagnateur")
  3046.      */
  3047.     public function EditionRetrofrompanierAccompagnateur($nbr$id)
  3048.     {
  3049.         $SEjourService $this->sejourService;
  3050.         $userId $this->getUser()->getId();
  3051.         $user $this->getUser();
  3052.         $session $this->session;
  3053.         $session->set('pageMenu''');
  3054.         $idSejour $session->get("Sejour");
  3055.         $produitcondition $session->get("produit");
  3056.         $produit $session->get("produittype");
  3057.         $sejour $SEjourService->getsejourpourparent($idSejour);
  3058.         $em $this->em;
  3059.         $clipart $em->getRepository(Clipart::class)->findAll();
  3060.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  3061.         $listerandom $listeattachlikephoto;
  3062.         $AllPagesAcc null;
  3063.         $random false;
  3064.         $Albumproduct $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
  3065.         $AllPages $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
  3066.         $idAcc $sejour->getIdAcommp();
  3067.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  3068.         $part $sejour->getIdPartenaire();
  3069.         $nompart $part->getUsername();
  3070.         $logopart $part->getLogourl();
  3071.         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]);
  3072.     }
  3073.     /**
  3074.      * @Route("/Accompagnateur/SavePhotosRetros", name="SavePhotosRetrosAccompagnateur")
  3075.      */
  3076.     public function SavePhotosRetrosAccompagnateur(Request $request)
  3077.     {
  3078.         $em $this->em;
  3079.         $session $this->session;
  3080.         $serviceuser $this->etablissementService;
  3081.         $page $request->get("pages");
  3082.         $sejour $request->get("sejour");
  3083.         $prodid $request->get('idProd');
  3084.         $nomprod $request->get('nomprod');
  3085.         $nbr $request->get('nbr');
  3086.         $comandePanier $request->get('comandePanier');
  3087.         $user $this->getUser();
  3088.         $nbr strval($nbr);
  3089.         $produittype $session->get("produit");
  3090.         $produit $session->get("produittype");
  3091.         $Album $serviceuser->SavePhotosRetrosParents($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  3092.         if ($comandePanier == "comandePanier") {
  3093.             $inser false;
  3094.             $Products $session->get("Panier_Acompa");
  3095.             $produit $this->em->getRepository(Produit::class)->find($Album->getId());
  3096.             //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
  3097.             $user $this->getUser();
  3098.             $typeref $this->em->getRepository(Typeref::class)->find(8);
  3099.             $statutPanier $this->em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  3100.             $panierTrace $this->em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  3101.             //fin
  3102.             if ($panierTrace == null) {
  3103.                 $panierTrace = new Panier();
  3104.                 $dateNow = new \Datetime();
  3105.                 $panierTrace->setDateCreation($dateNow);
  3106.                 $panierTrace->setCreerPar($user);
  3107.                 $panierTrace->setStatut($statutPanier);
  3108.                 $em->getManager()->persist($panierTrace);
  3109.                 $em->getManager()->flush();
  3110.             }
  3111.             //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
  3112.             if ($Products == null) {
  3113.                 $Products = [];
  3114.             }
  3115.             foreach ($Products as $key => $p) {
  3116.                 if ($p['id'] == $produit->getId()) {
  3117.                     $inser true;
  3118.                     $Products[$key]['qte'] = $p['qte'] + 1;
  3119.                     $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  3120.                 }
  3121.             }
  3122.             //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  3123.             $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  3124.             if ($panierProduit == null) {
  3125.                 $panierProduit = new PanierProduit();
  3126.                 $panierProduit->setIdProduit($produit);
  3127.                 $panierProduit->setIdPanier($panierTrace);
  3128.                 $em->getManager()->persist($panierProduit);
  3129.                 $em->getManager()->flush();
  3130.             }
  3131.             //fin
  3132.             //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  3133.             $oldQte $panierProduit->getQuantite();
  3134.             $newQte $oldQte 1;
  3135.             $panierProduit->setQuantite($newQte);
  3136.             $oldTotal $panierProduit->getPrixTotal();
  3137.             $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  3138.             $panierProduit->setPrixTotal($newTotal);
  3139.             $em->getManager()->persist($panierProduit);
  3140.             $em->getManager()->flush();
  3141.             //fin
  3142.             if ($inser === false) {
  3143.                 $p = [];
  3144.                 $p["id"] = $produit->getId();
  3145.                 $p["nom"] = $produit->getType()->getLabeletype();
  3146.                 $p["ident"] = $produit->getLabele();
  3147.                 $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  3148.                 $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  3149.                 $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  3150.                 $p["condition"] = $produit->getIdConditionnement()->getId();
  3151.                 $p["statut"] = $produit->getStatut();
  3152.                 $p["qte"] = 1;
  3153.                 array_push($Products$p);
  3154.             }
  3155.             $session->set('Panier_Acompa'$Products);
  3156.         }
  3157.         //$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
  3158.         return new response($Album->getId());
  3159.     }
  3160.     /**
  3161.      * @Route("/Accompagnateur/RetrosComandeSaveRetros", name="RetrosComandeSaveRetrosAccompagnateur")
  3162.      */
  3163.     public function RetrosComandeSaveRetrosAccompagnateur(Request $request)
  3164.     {
  3165.         $em $this->em;
  3166.         $session $this->session;
  3167.         $serviceuser $this->etablissementService;
  3168.         $page $request->get("pages");
  3169.         $sejour $request->get("sejour");
  3170.         $prodid $request->get('idProd');
  3171.         $nomprod $request->get('nomprod');
  3172.         $nbr $request->get('nbr');
  3173.         $user $this->getUser();
  3174.         $nbr strval($nbr);
  3175.         $produittype $session->get("produit");
  3176.         $produit $session->get("produittype");
  3177.         $Album $serviceuser->SavePhotosRetrosParents($page$user$sejour$prodid$produit$produittype$nbr$nomprod);
  3178.         $inser false;
  3179.         $Products $session->get("Panier_Acompa");
  3180.         $produit $em->getRepository(Produit::class)->find($Album->getId());
  3181.         //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
  3182.         $user $this->getUser();
  3183.         $typeref $em->getRepository(Typeref::class)->find(8);
  3184.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  3185.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  3186.         //fin
  3187.         if ($panierTrace == null) {
  3188.             $panierTrace = new Panier();
  3189.             $dateNow = new \Datetime();
  3190.             $panierTrace->setDateCreation($dateNow);
  3191.             $panierTrace->setCreerPar($user);
  3192.             $panierTrace->setStatut($statutPanier);
  3193.             $em->getManager()->persist($panierTrace);
  3194.             $em->getManager()->flush();
  3195.         }
  3196.         //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
  3197.         if ($Products == null) {
  3198.             $Products = [];
  3199.         }
  3200.         foreach ($Products as $key => $p) {
  3201.             if ($p['id'] == $produit->getId()) {
  3202.                 $inser true;
  3203.                 $Products[$key]['qte'] = $p['qte'] + 1;
  3204.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
  3205.             }
  3206.         }
  3207.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  3208.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  3209.         if ($panierProduit == null) {
  3210.             $panierProduit = new PanierProduit();
  3211.             $panierProduit->setIdProduit($produit);
  3212.             $panierProduit->setIdPanier($panierTrace);
  3213.             $em->getManager()->persist($panierProduit);
  3214.             $em->getManager()->flush();
  3215.         }
  3216.         //fin
  3217.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  3218.         $oldQte $panierProduit->getQuantite();
  3219.         $newQte $oldQte 1;
  3220.         $panierProduit->setQuantite($newQte);
  3221.         $oldTotal $panierProduit->getPrixTotal();
  3222.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  3223.         $panierProduit->setPrixTotal($newTotal);
  3224.         $em->getManager()->persist($panierProduit);
  3225.         $em->getManager()->flush();
  3226.         //fin
  3227.         if ($inser === false) {
  3228.             $p = [];
  3229.             $p["id"] = $produit->getId();
  3230.             $p["nom"] = $produit->getType()->getLabeletype();
  3231.             $p["ident"] = $produit->getLabele();
  3232.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  3233.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  3234.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  3235.             $p["condition"] = $produit->getIdConditionnement()->getId();
  3236.             $p["statut"] = $produit->getStatut();
  3237.             $p["qte"] = 1;
  3238.             array_push($Products$p);
  3239.         }
  3240.         $session->set('Panier_Acompa'$Products);
  3241.         return new response('done');
  3242.     }
  3243.     /**
  3244.      * @Route("/Accompagnateur/ajouterauPanier_Accompagnateur_coffret", name="comandercoffreAccompagnateur")
  3245.      */
  3246.     public function Ajouter_MonPanier_Coffret()
  3247.     {
  3248.         $inser false;
  3249.         $session $this->session;
  3250.         $idSejour $session->get("Sejour");
  3251.         $userId $this->getUser();
  3252.         $em $this->em;
  3253.         $sejourobj $em->getRepository(Sejour::class)->find($idSejour);
  3254.         $prodct $em->getRepository(Typeproduit::class)->find(15);
  3255.         //        $version = $em->getRepository(Produit::class)->SearchVersionproduit($this->getUser()->getId());
  3256.         $Conditionnement $em->getRepository(TypeProduitConditionnement::class)->find(6);
  3257.         $Products $session->get("Panier_Acompa");
  3258.         //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
  3259.         $user $this->getUser();
  3260.         $typeref $em->getRepository(Typeref::class)->find(8);
  3261.         $statutPanier $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer""typeref" => $typeref));
  3262.         $panierTrace $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user"statut" => $statutPanier));
  3263.         //fin
  3264.         if ($panierTrace == null) {
  3265.             $panierTrace = new Panier();
  3266.             $dateNow = new \Datetime();
  3267.             $panierTrace->setDateCreation($dateNow);
  3268.             $panierTrace->setCreerPar($user);
  3269.             $panierTrace->setStatut($statutPanier);
  3270.             $em->getManager()->persist($panierTrace);
  3271.             $em->getManager()->flush();
  3272.         }
  3273.         //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
  3274.         $produit $em->getRepository(Produit::class)->findOneBy(array("type" => $prodct'idConditionnement' => $Conditionnement'idsjour' => $sejourobj'iduser' => $user));
  3275.         if ($produit == null) {
  3276.             $produit = new Produit;
  3277.             $produit->setLabele("Coffret cadeau");
  3278.             $produit->setIduser($userId);
  3279.             $produit->setIdsjour($sejourobj);
  3280.             $produit->setIdConditionnement($Conditionnement);
  3281.             $produit->setType($prodct);
  3282.             $produit->setDate(new \DateTime());
  3283.             $em->getManager()->persist($produit);
  3284.             $em->getManager()->flush();
  3285.         }
  3286.         if ($Products == null) {
  3287.             $Products = [];
  3288.         }
  3289.         foreach ($Products as $key => $p) {
  3290.             if ($p['id'] == $produit->getId()) {
  3291.                 $inser true;
  3292.                 $Products[$key]['qte'] = $p['qte'] + 1;
  3293.                 $Products[$key]['mnt'] = $p['mnt'] + $produit->getType()->getTraif();
  3294.             }
  3295.         }
  3296.         //Touhemi 02-07-2020 :Rechercher  si le produti existe déja ds panierProduit
  3297.         $panierProduit $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit"idPanier" => $panierTrace));
  3298.         if ($panierProduit == null) {
  3299.             $panierProduit = new PanierProduit();
  3300.             $panierProduit->setIdProduit($produit);
  3301.             $panierProduit->setIdPanier($panierTrace);
  3302.             $em->getManager()->persist($panierProduit);
  3303.             $em->getManager()->flush();
  3304.         }
  3305.         //fin
  3306.         //   Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
  3307.         $oldQte $panierProduit->getQuantite();
  3308.         $newQte $oldQte 1;
  3309.         $panierProduit->setQuantite($newQte);
  3310.         $oldTotal $panierProduit->getPrixTotal();
  3311.         $newTotal $oldTotal $produit->getIdConditionnement()->getMontantTTC();
  3312.         $panierProduit->setPrixTotal($newTotal);
  3313.         $em->getManager()->persist($panierProduit);
  3314.         $em->getManager()->flush();
  3315.         //fin
  3316.         if ($inser === false) {
  3317.             $p = [];
  3318.             $p["id"] = $produit->getId();
  3319.             $p["nom"] = $produit->getType()->getLabeletype();
  3320.             $p["ident"] = $produit->getLabele();
  3321.             $p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
  3322.             $p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
  3323.             $p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
  3324.             $p["condition"] = $produit->getIdConditionnement()->getId();
  3325.             $p["statut"] = $produit->getStatut();
  3326.             $p["qte"] = 1;
  3327.             array_push($Products$p);
  3328.         }
  3329.         $session->set('Panier_Acompa'$Products);
  3330.         return new Response('coffert cadeau ajouté');
  3331.     }
  3332.     /**
  3333.      * @Route("/Accompagnateur/boutique5sur5Sejour", name="boutique5sur5Accompagnateur")
  3334.      */
  3335.     public function boutique5sur5Accompagnateur()
  3336.     {
  3337.         $SEjourService $this->sejourService;
  3338.         /** @var \App\Entity\User $userId */
  3339.         $userId $this->getUser();
  3340.         $userId $userId->getId();
  3341.         $session $this->session;
  3342.         $session->set('pageMenu''boutique5su5');
  3343.         $idSejour $session->get("Sejour");
  3344.         $sejour $SEjourService->getsejourpourparent($idSejour);
  3345.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  3346.         $listeattach $SEjourService->getatachmentsejour($idSejour);
  3347.         $messages $SEjourService->getsejourmessage($idSejour);
  3348.         $nbImages count($listeattach);
  3349.         $nbmessages count($messages);
  3350.         $produit $this->typeProduiteService;
  3351.         $liste $produit->produitlistTypeConditionnement();
  3352.         $idAcc $sejour->getIdAcommp();
  3353.         $em $this->em;
  3354.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  3355.         $nbLikes count($listeattachlikephoto);
  3356.         // dd($liste);
  3357.         return $this->render('Accompagnateur/boutique_5sur5.html.twig', [
  3358.             "sejour" => $sejour,
  3359.             'like' => $listeattachlikephoto,
  3360.             'produit' => $liste,
  3361.             'albumAcc' => $albumAcc,
  3362.             'nbImages' => $nbImages,
  3363.             'nbmessages' => $nbmessages,
  3364.             'nbLikes' => $nbLikes
  3365.         ]);
  3366.     }
  3367.     /******* *********/
  3368.     /**
  3369.      * @Route("/Accompagnateur/pdfaccomp/{id}", name="pdfaccomp")
  3370.      */
  3371.     public function ExportPdfAccomp(Request $request$id)
  3372.     {
  3373.         // $json = json_decode(file_get_contents("pdf/pdfaccomp.json"));
  3374.         $sejourservice $this->sejourService;
  3375.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  3376.         $session $this->session;
  3377.         //dd($sejour);
  3378.         $pdf = new Fpdi();
  3379.         $publicDirectory $this->params->get('kernel.project_dir') . '/public/pdf/';
  3380.         $pdfFilepath $publicDirectory "Mode_emploi_5sur5sejour_v5_.pdf";
  3381.         $pageCount $pdf->setSourceFile($pdfFilepath);
  3382.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3383.         $pdf->addPage();
  3384.         $pdf->useImportedPage($pageId0.50.50.5);
  3385.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3386.         $current_date date('d-M-Y');
  3387.         $DateDebut =  "";
  3388.         $DateFin "";
  3389.         $Theme "";
  3390.         $Lieu "";
  3391.         $CodeSejour =  "";
  3392.         $MotPass =  "";
  3393.         $Ville "";
  3394.         $Paye "";
  3395.         if ($sejour) {
  3396.             $DateDebut $sejour->getDateDebutSejour();
  3397.             $DateFin $sejour->getDateFinSejour();
  3398.             $Theme $sejour->getThemSejour();
  3399.             $Lieu $sejour->getAdresseSejour();
  3400.             $CodeSejour $sejour->getCodeSejour();
  3401.             $MotPass $sejour->getIdAcommp()->getPasswordNonCripted();
  3402.             $Ville $sejour->getVille();
  3403.             $Paye $sejour->getPays();
  3404.         }
  3405.         for ($i 0$i $pageCount$i++) {
  3406.             $tplIdx $pdf->importPage($i);
  3407.             $pdf->useTemplate($tplIdx00200300true);
  3408.             $theme $Theme;
  3409.             if (strlen($theme) > 25) {
  3410.                 $pdf->SetFont("Arial"""5);
  3411.             } else {
  3412.                 $pdf->SetFont("Arial"""7);
  3413.             }
  3414.             $strTheme iconv("UTF-8""WINDOWS-1252"$theme);
  3415.             $pdf->Text(35262$strTheme);
  3416.             $pdf->SetFont("Arial"""8);
  3417.             $lieu $Lieu;
  3418.             $ville $Ville;
  3419.             $paye $Paye;
  3420.             if ($Paye && $Ville) {
  3421.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville "  " $paye);
  3422.                 $pdf->Text(125262$strLieu);
  3423.             } else if ($Paye) {
  3424.                 $strLieu iconv("UTF-8""WINDOWS-1252"$paye);
  3425.                 $pdf->Text(125262$strLieu);
  3426.             } else {
  3427.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville);
  3428.                 $pdf->Text(125262$strLieu);
  3429.             }
  3430.             $pdf->SetFont("Arial"""10);
  3431.             $pdf->Text(90271$CodeSejour);
  3432.             $pdf->SetFont("Arial"""10);
  3433.             $pdf->Text(50252$DateDebut->format('d/m/Y'));
  3434.             $pdf->SetFont("Arial"""10);
  3435.             $pdf->Text(90252$DateFin->format('d/m/Y'));
  3436.             $pdf->SetFont("Arial"""10);
  3437.             $pdf->Text(75279$MotPass);
  3438.         }
  3439.         $pdf->Output("Mode d'emploi 5sur5sejour.pdf""D");
  3440.         return new response($pdf->Output(), 200, array('Content-Type' => 'application/pdf'));
  3441.     }
  3442.     /*******Salim *********/
  3443.     /**
  3444.      * @Route("/Accompagnateur/PdfParentP/{id}", name="PdfParentP")
  3445.      */
  3446.     public function ExportPdfParentpaye(Request $request$id)
  3447.     {
  3448.         //  $json = json_decode(file_get_contents("pdf/pdfparentPaye.json"));
  3449.         $sejourservice $this->sejourService;
  3450.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  3451.         $session $this->session;
  3452.         $pdf = new Fpdi();
  3453.         $publicDirectory $this->params->get('kernel.project_dir') . '/public/pdf/';
  3454.         $pdfFilepath $publicDirectory "Mode_emploi_Parent_5sur5sejour_v5_.pdf";
  3455.         $pageCount $pdf->setSourceFile($pdfFilepath);
  3456.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3457.         $pdf->addPage();
  3458.         $pdf->useImportedPage($pageId0.50.50.5);
  3459.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3460.         $current_date date('d-M-Y');
  3461.         $DateDebut =  "";
  3462.         $DateFin "";
  3463.         $Theme "";
  3464.         $Lieu "";
  3465.         $CodeSejour =  "";
  3466.         $Ville "";
  3467.         $Paye "";
  3468.         if ($sejour) {
  3469.             $DateDebut $sejour->getDateDebutSejour();
  3470.             $DateFin $sejour->getDateFinSejour();
  3471.             $Theme $sejour->getThemSejour();
  3472.             $Lieu $sejour->getAdresseSejour();
  3473.             $CodeSejour $sejour->getCodeSejour();
  3474.             $Ville $sejour->getVille();
  3475.             $Paye $sejour->getPays();
  3476.         }
  3477.         for ($i 0$i $pageCount$i++) {
  3478.             $tplIdx $pdf->importPage($i 1);
  3479.             $pdf->useTemplate($tplIdx00200300true);
  3480.             $theme $Theme;
  3481.             if (strlen($theme) > 25) {
  3482.                 $pdf->SetFont("Arial"""5);
  3483.             } else {
  3484.                 $pdf->SetFont("Arial"""7);
  3485.             }
  3486.             $strTheme iconv("UTF-8""WINDOWS-1252"$theme);
  3487.             $pdf->Text(35268$strTheme);
  3488.             $pdf->SetFont("Arial"""8);
  3489.             $lieu $Lieu;
  3490.             $ville $Ville;
  3491.             $paye $Paye;
  3492.             if ($Paye && $Ville) {
  3493.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville "  " $paye);
  3494.                 $pdf->Text(125268$strLieu);
  3495.             } else if ($Paye) {
  3496.                 $strLieu iconv("UTF-8""WINDOWS-1252"$paye);
  3497.                 $pdf->Text(125268$strLieu);
  3498.             } else {
  3499.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville);
  3500.                 $pdf->Text(125268$strLieu);
  3501.             }
  3502.             $pdf->SetFont("Arial"""10);
  3503.             $pdf->Text(80279$CodeSejour);
  3504.             $pdf->SetFont("Arial"""10);
  3505.             $pdf->Text(48258$DateDebut->format('d/m/Y'));
  3506.             $pdf->SetFont("Arial"""10);
  3507.             $pdf->Text(89258$DateFin->format('d/m/Y'));
  3508.         }
  3509.         $pdf->Output("Mode d'emploi Parent 5sur5sejour.pdf""D");
  3510.         return new response($pdf->Output(), 100, array('Content-Type' => 'application/pdf'));
  3511.     }
  3512.     /*******Salim *********/
  3513.     /**
  3514.      * @Route("/Accompagnateur/PdfParentgrat/{id}", name="PdfParentgratt")
  3515.      */
  3516.     public function ExportPdfParentgrat(Request $request$id)
  3517.     {
  3518.         //$json = json_decode(file_get_contents("pdf/pdfparentGratuit.json"));
  3519.         $sejourservice $this->sejourService;
  3520.         $sejour $sejourservice->getsejourByAcc($id$this->getUser());
  3521.         $session $this->session;
  3522.         //dd($sejour);
  3523.         $pdf = new Fpdi();
  3524.         $publicDirectory $this->params->get('kernel.project_dir') . '/public/pdf/';
  3525.         $pdfFilepath $publicDirectory "Mode_emploi_Parent_G_5sur5sejou_v5_.pdf";
  3526.         $pageCount $pdf->setSourceFile($pdfFilepath);
  3527.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3528.         $pdf->addPage();
  3529.         $pdf->useImportedPage($pageId0.50.50.5);
  3530.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3531.         $current_date date('d-M-Y');
  3532.         $DateDebut =  "";
  3533.         $DateFin "";
  3534.         $Theme "";
  3535.         $Lieu "";
  3536.         $CodeSejour =  "";
  3537.         $Ville "";
  3538.         $Paye "";
  3539.         if ($sejour) {
  3540.             $DateDebut $sejour->getDateDebutSejour();
  3541.             $DateFin $sejour->getDateFinSejour();
  3542.             $Theme $sejour->getThemSejour();
  3543.             $Lieu $sejour->getAdresseSejour();
  3544.             $CodeSejour $sejour->getCodeSejour();
  3545.             $Ville $sejour->getVille();
  3546.             $Paye $sejour->getPays();
  3547.         }
  3548.         for ($i 0$i $pageCount$i++) {
  3549.             $tplIdx $pdf->importPage($i 1);
  3550.             $pdf->useTemplate($tplIdx00200300true);
  3551.             $theme $Theme;
  3552.             if (strlen($theme) > 25) {
  3553.                 $pdf->SetFont("Arial"""5);
  3554.             } else {
  3555.                 $pdf->SetFont("Arial"""7);
  3556.             }
  3557.             $strTheme iconv("UTF-8""WINDOWS-1252"$theme);
  3558.             $pdf->Text(35268$strTheme);
  3559.             $pdf->SetFont("Arial"""8);
  3560.             $lieu $Lieu;
  3561.             $ville $Ville;
  3562.             $paye $Paye;
  3563.             if ($Ville && $Paye) {
  3564.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville "  " $paye);
  3565.                 $pdf->Text(125268$strLieu);
  3566.             } else if ($Paye) {
  3567.                 $strLieu iconv("UTF-8""WINDOWS-1252"$paye);
  3568.                 $pdf->Text(125268$strLieu);
  3569.             } else {
  3570.                 $strLieu iconv("UTF-8""WINDOWS-1252"$ville);
  3571.                 $pdf->Text(125268$strLieu);
  3572.             }
  3573.             $pdf->SetFont("Arial"""10);
  3574.             $pdf->Text(80279$CodeSejour);
  3575.             $pdf->SetFont("Arial"""10);
  3576.             $pdf->Text(48258$DateDebut->format('d/m/Y'));
  3577.             $pdf->SetFont("Arial"""10);
  3578.             $pdf->Text(89258$DateFin->format('d/m/Y'));
  3579.         }
  3580.         $pdf->Output("Mode d'emploi Parent G 5sur5sejour.pdf""D");
  3581.         return new response($pdf->Output(), 100, array('Content-Type' => 'application/pdf'));
  3582.     }
  3583.     /*******Salim *********/
  3584.     /**
  3585.      * @Route("/Accompagnateur/Pdfpresentation", name="Pdfpresentation")
  3586.      */
  3587.     public function Pdfpresentation(Request $request)
  3588.     {
  3589.         $pdf = new Fpdi();
  3590.         $pageCount $pdf->setSourceFile('pdf/presentation5sur5.pdf');
  3591.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3592.         $pdf->addPage();
  3593.         $pdf->useImportedPage($pageId201090);
  3594.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3595.         for ($i 1$i $pageCount$i++) {
  3596.             $tplIdx $pdf->importPage(1);
  3597.             $pdf->useTemplate($tplIdx00200300true);
  3598.         }
  3599.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3600.         $pdf->addPage();
  3601.         $pdf->useImportedPage($pageId201090);
  3602.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3603.         for ($i 1$i $pageCount$i++) {
  3604.             $tplIdx $pdf->importPage(2);
  3605.             $pdf->useTemplate($tplIdx00200300true);
  3606.         }
  3607.         $pageId $pdf->importPage(1PdfReader\PageBoundaries::MEDIA_BOX);
  3608.         $pdf->addPage();
  3609.         $pdf->useImportedPage($pageId201090);
  3610.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3611.         for ($i 1$i $pageCount$i++) {
  3612.             $tplIdx $pdf->importPage(3);
  3613.             $pdf->useTemplate($tplIdx00200300true);
  3614.         }
  3615.         $pageId $pdf->importPage(3PdfReader\PageBoundaries::MEDIA_BOX);
  3616.         $pdf->addPage();
  3617.         $pdf->useImportedPage($pageId201090);
  3618.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3619.         for ($i 1$i $pageCount$i++) {
  3620.             $tplIdx $pdf->importPage($i);
  3621.             $pdf->useTemplate($tplIdx00200300true);
  3622.         }
  3623.         $pageId $pdf->importPage(3PdfReader\PageBoundaries::MEDIA_BOX);
  3624.         $pdf->addPage();
  3625.         $pdf->useImportedPage($pageId201090);
  3626.         $testText  "abcdefghijklmnopqrstuvwxyz0123456789";
  3627.         for ($i 1$i $pageCount$i++) {
  3628.             $tplIdx $pdf->importPage($i 1);
  3629.             $pdf->useTemplate($tplIdx00200300true);
  3630.         }
  3631.         $pdf->Output("Presentation 5sur5Séjour.pdf""D");
  3632.         return new response($pdf->Output(), 200, array('Content-Type' => 'application/pdf'));
  3633.     }
  3634.     /**
  3635.      * @Route("/Accompagnateur/SauvegarderEmailResponse", name="SauvegarderEmailResponse")
  3636.      */
  3637.     public function SauvegarderEmailResponse(Request $request)
  3638.     {
  3639.         $em $this->em;
  3640.         $email $request->get('email');
  3641.         $user $this->getUser();
  3642.         if ($user) {
  3643.             $user->setReponseemail($email);
  3644.             $em->getManager()->persist($user);
  3645.             $em->getManager()->flush();
  3646.         }
  3647.         return new Response('Bingo');
  3648.     }
  3649.     /**
  3650.      * @Route("/Accompagnateur/Besoindaide", name="Besoindaide_Accompa")
  3651.      */
  3652.     public function Besoindaide(): Response
  3653.     {
  3654.         $produit $this->typeProduiteService;
  3655.         $liste $produit->produitlistType();
  3656.         // dd($liste);
  3657.         return $this->render('Accueil/BesoindaideAccomp.html.twig', [
  3658.             'produit' => $liste,
  3659.         ]);
  3660.     }
  3661.     /**
  3662.      * @Route("/Accompagnateur/Mentionlegale", name="Mentionlegale_Accompa")
  3663.      */
  3664.     public function MentionlegaleAccompa()
  3665.     {
  3666.         return $this->render('Accueil/mentionlegal.html.twig', []);
  3667.     }
  3668.     /**
  3669.      * @Route("/Accompagnateur/Conditongeneral", name="Conditongeneral_Accompa")
  3670.      */
  3671.     public function ConditongeneralAccompa()
  3672.     {
  3673.         return $this->render('Accueil/Condition.html.twig', []);
  3674.     }
  3675.     /**
  3676.      * @Route("/Accompagnateur/Politique", name="Politique_Accompa")
  3677.      */
  3678.     public function PolitiqueAccompa()
  3679.     {
  3680.         return $this->render('Accueil/politique.html.twig', []);
  3681.     }
  3682.     /**
  3683.      * @Route("/Accompagnateur/verifemailexist", name="verifemailexist")
  3684.      */
  3685.     public function verifemailexist(Request $request)
  3686.     {
  3687.         $em $this->em;
  3688.         $email $request->get('email');
  3689.         $nbremail $em->getRepository(User::class)->checkEmail($email);
  3690.         if ($nbremail 0) {
  3691.             return new Response('Cet email est déjà utilisé !');
  3692.         } else {
  3693.             return new Response('email valide');
  3694.         }
  3695.     }
  3696.     /**
  3697.      * @Route("/Accompagnateur/hidePubProd",name="hidePubProd")
  3698.      */
  3699.     function hidePubProd(Request $request)
  3700.     {
  3701.         $val $request->get("val");
  3702.         $user $this->getUser();
  3703.         $parent $this->em->getRepository(User::class)->find($user->getId());
  3704.         $parent->setShowpubprod('false');
  3705.         $this->em->getManager()->persist($parent);
  3706.         $this->em->getManager()->flush();
  3707.         return new Response('ok');
  3708.     }
  3709.     /**
  3710.      * @Route("/Accompagnateur/ListeProduits",name="ListeProduits")
  3711.      */
  3712.     function ListeProduits(Request $request)
  3713.     {
  3714.         $SEjourService $this->sejourService;
  3715.         $userId $this->getUser()->getId();
  3716.         $user $this->getUser();
  3717.         $session $this->session;
  3718.         $session->set('pageMenu''');
  3719.         $idSejour $session->get("Sejour");
  3720.         $sejour $SEjourService->getsejourpourparent($idSejour);
  3721.         $listeattachlikephoto $SEjourService->getlikephotosejour($userId$idSejour);
  3722.         $produit $this->typeProduiteService;
  3723.         $liste $produit->produitlistTypeConditionnement();
  3724.         $idAcc $sejour->getIdAcommp();
  3725.         $em $this->em;
  3726.         $albumAcc $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour'iduser' => $idAcc'statut' => 'saved'], ['id' => 'DESC']);
  3727.         // dd($liste);
  3728.         return $this->render('Accompagnateur/ListeProduits.html.twig', [
  3729.             "sejour" => $sejour,
  3730.             'like' => $listeattachlikephoto,
  3731.             'produit' => $liste,
  3732.             'albumAcc' => $albumAcc
  3733.         ]);
  3734.     }
  3735.     /**
  3736.      * @Route("/Accompagnateur/getInfoSejour",name="getInfoSejour")
  3737.      */
  3738.     function infoSejourAction()
  3739.     {
  3740.         $sejourService $this->sejourService;
  3741.         $session $this->session;
  3742.         $idSejour $session->get("Sejour");
  3743.         if ($this->getUser()) {
  3744.             if (is_null($idSejour)) {
  3745.                 return new JsonResponse(array('message' => 'merci de verifier sejour'), 401);
  3746.             } else {
  3747.                 $sejour $this->em->getRepository(Sejour::class)->find($idSejour);
  3748.                 if (is_null($sejour)) {
  3749.                     return new JsonResponse(array('message' => 'merci de verifier sejour'), 401);
  3750.                 } else {
  3751.                     //get info sejour
  3752.                     $detailsSejour $sejourService->getInfoSejour($sejour);
  3753.                     return new JsonResponse(array('detailsSejour' => $detailsSejour), 200);
  3754.                 }
  3755.             }
  3756.         } else {
  3757.             return new JsonResponse(array('message' => 'merci de se connecter.'), 401);
  3758.         }
  3759.     }
  3760.     /**
  3761.      * @Route("/Accompagnateur/finish-tour", name="finish_tour", methods={"POST"})
  3762.      */
  3763.     public function finishTour(Request $request): JsonResponse
  3764.     {
  3765.         $data json_decode($request->getContent(), true);
  3766.         $submittedToken $data['_token'] ?? '';
  3767.         $em $this->em->getManager();
  3768.         // Get the current user
  3769.         $user $this->getUser();
  3770.         if (!$user) {
  3771.             return new JsonResponse(['status' => 'error''message' => 'User not logged in'], 401);
  3772.         }
  3773.         $id $this->getUser()->getId();
  3774.         $accomp $this->em->getRepository(User::class)->find($id);
  3775.         // Mark the tour as finished (e.g. set showpubprod to 1)
  3776.         $accomp->setShowpubprod(1);
  3777.         $em->persist($user);
  3778.         $em->flush();
  3779.         return new JsonResponse(['status' => 'success']);
  3780.     }
  3781.     /**
  3782.      * @Route("/Accompagnateur/unsubscribe", name="accompagnateur_unsubscribe")
  3783.      */
  3784.     public function unsubscribe(Request $request): Response
  3785.     {
  3786.         return $this->forward('App\Controller\AccueilController::unsubscribeUser', [
  3787.             'email' => $request->query->get('email')
  3788.         ]);
  3789.     }
  3790. }