src/Controller/AdminController.php line 574

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use App\Repository\AvocatsRepository;
  7. use App\Entity\Avocats;
  8. use App\Entity\JoursSemaine;
  9. use App\Entity\Tranches;
  10. use App\Repository\JoursSemaineRepository;
  11. use App\Repository\JoursFermeturesRepository;
  12. use App\Repository\TranchesRepository;
  13. use App\Repository\RendezVousRepository;
  14. use App\Repository\LieuxRepository;
  15. use App\Repository\StatutsRepository;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Mailjet\Api\Client;
  18. use Mailjet\Resources;
  19. class AdminController extends AbstractController
  20. {
  21.     /**
  22.      * @Route("/administration", name="app_admin")
  23.      */
  24.     public function index(): Response
  25.     {
  26.         return $this->render('admin/index.html.twig', [
  27.             'controller_name' => 'AdminController',
  28.         ]);
  29.     }
  30.      /**
  31.      * @Route("/tranchesHoraires/{id}", name="tranchesHoraires")
  32.      */
  33.     public function tranchesHoraires(Request $request$id,TranchesRepository $tranchesRepo,  JoursFermeturesRepository $joursFermetureRepo): Response
  34.     {
  35.         $tranches $tranchesRepo->findBy(array('JoursFermetures'=>$joursFermetureRepo->findOneById($id)));
  36.        $jours $joursFermetureRepo->findOneById($id);
  37.        $em $this->getDoctrine()->getManager();
  38.        
  39.        if(!empty($_POST))
  40.        {
  41.             foreach($tranches as $res)
  42.             {
  43.                 $res->setOuvert(0);
  44.                 $em->persist($res);
  45.                 $em->flush();
  46.             }
  47.             foreach($_POST['ouvert'] as $res)
  48.             {
  49.                 $tr $tranchesRepo->findOneById($res);
  50.                 $tr->setOuvert(1);
  51.                 $em->persist($tr);
  52.                 $em->flush();
  53.             }
  54.             return $this->redirectToRoute('tranchesHoraires', ['id'=>$id,'success'=>'ok'], Response::HTTP_SEE_OTHER);
  55.        }
  56.        
  57.         return $this->render('admin/tranches.html.twig', [
  58.             'tranches' => $tranches,
  59.             'jours'=>$jours
  60.         ]);
  61.     }
  62.      /**
  63.      * @Route("/updateJoursSemaineAvocat", name="updateJoursSemaineAvocat")
  64.      */
  65.     public function updateJoursSemaineAvocat(Request $requestJoursSemaineRepository $joursSemaineRepoAvocatsRepository $avocatsRepository): Response
  66.     {
  67.         if(isset($_POST['lundi']))
  68.         {
  69.             $lundi 1;
  70.         }
  71.         else
  72.         {
  73.             $lundi 0;
  74.         }
  75.         if(isset($_POST['mardi']))
  76.         {
  77.             $mardi 1;
  78.         }
  79.         else
  80.         {
  81.             $mardi 0;
  82.         }
  83.         if(isset($_POST['mercredi']))
  84.         {
  85.             $mercredi 1;
  86.         }
  87.         else
  88.         {
  89.             $mercredi 0;
  90.         }
  91.         if(isset($_POST['jeudi']))
  92.         {
  93.             $jeudi 1;
  94.         }
  95.         else
  96.         {
  97.             $jeudi 0;
  98.         }
  99.         if(isset($_POST['vendredi']))
  100.         {
  101.             $vendredi 1;
  102.         }
  103.         else
  104.         {
  105.             $vendredi 0;
  106.         }
  107.         if(isset($_POST['samedi']))
  108.         {
  109.             $samedi 1;
  110.         }
  111.         else
  112.         {
  113.             $samedi 0;
  114.         }
  115.         if(isset($_POST['dimanche']))
  116.         {
  117.             $dimanche 1;
  118.         }
  119.         else
  120.         {
  121.             $dimanche 0;
  122.         }
  123.         $js $joursSemaineRepo->findOneById($_POST['id']);
  124.         $js->setLundi($lundi);
  125.         $js->setMardi($mardi);
  126.         $js->setMercredi($mercredi);
  127.         $js->setJeudi($jeudi);
  128.         $js->setVendredi($vendredi);
  129.         $js->setSamedi($samedi);
  130.         $js->setDimanche($dimanche);
  131.         $joursSemaineRepo->add($jstrue);
  132.         return $this->redirectToRoute('app_avocats_edit', ['id'=>$js->getAvocats()->getId()], Response::HTTP_SEE_OTHER);
  133.         
  134.     }
  135.  /**
  136.      * @Route("/addLieuAvocat/{id}", name="addLieuAvocat")
  137.      */
  138.     public function addLieuAvocat(Request $requestLieuxRepository $lieuxRepo,JoursSemaineRepository $joursSemaineRepoAvocatsRepository $avocatsRepository,$id): Response
  139.     {
  140.         if(!empty($_POST))
  141.         {
  142.             $lieu $lieuxRepo->findOneById($_POST['lieu']);
  143.             $avocat $avocatsRepository->findOneById($_POST['avocat']);
  144.             $lieuExist $joursSemaineRepo->findBy(array('Lieux'=>$lieu,'Avocats'=>$avocat));
  145.             if(count($lieuExist) > 0)
  146.             {
  147.                 return $this->redirectToRoute('app_avocats_edit', ['id'=>$avocat->getId(),'erreur'=>'lieuExist'], Response::HTTP_SEE_OTHER);
  148.             }
  149.             else
  150.             {
  151.             $js = new JoursSemaine();
  152.         $js->setLundi(1);
  153.         $js->setMardi(1);
  154.         $js->setMercredi(1);
  155.         $js->setJeudi(1);
  156.         $js->setVendredi(1);
  157.         $js->setSamedi(0);
  158.         $js->setDimanche(0);
  159.         $js->setLieux($lieu);
  160.         $js->setAvocats($avocat);
  161.         $js->setHoAmLundi('07:00');
  162.         $js->setHfAmLundi('12:00');
  163.         $js->setHoPmLundi('14:00');
  164.         $js->setHfPmLundi('18:00');
  165.         $js->setHoAmMardi('07:00');
  166.         $js->setHfAmMardi('12:00');
  167.         $js->setHoPmMardi('14:00');
  168.         $js->setHfPmMardi('18:00');
  169.         $js->setHoAmMercredi('07:00');
  170.         $js->setHfAmMercredi('12:00');
  171.         $js->setHoPmMercredi('14:00');
  172.         $js->setHfPmMercredi('18:00');
  173.         $js->setHoAmJeudi('07:00');
  174.         $js->setHfAmJeudi('12:00');
  175.         $js->setHoPmJeudi('14:00');
  176.         $js->setHfPmJeudi('18:00');
  177.         $js->setHoAmVendredi('07:00');
  178.         $js->setHfAmVendredi('12:00');
  179.         $js->setHoPmVendredi('14:00');
  180.         $js->setHfPmVendredi('18:00');
  181.         $js->setHoAmSamedi('07:00');
  182.         $js->setHfAmSamedi('12:00');
  183.         $js->setHoPmSamedi('14:00');
  184.         $js->setHfPmSamedi('18:00');
  185.         $js->setHoAmDimanche('07:00');
  186.         $js->setHfAmDimanche('12:00');
  187.         $js->setHoPmDimanche('14:00');
  188.         $js->setHfPmDimanche('18:00');
  189.         $joursSemaineRepo->add($jstrue);
  190.         return $this->redirectToRoute('app_avocats_edit', ['id'=>$avocat->getId()], Response::HTTP_SEE_OTHER);
  191.             }
  192.         }
  193.         return $this->render('admin/addLieuAvocat.html.twig', [
  194.             'lieux' => $lieuxRepo->findAll(),
  195.             'avocat'=>$id
  196.         ]);
  197.     }
  198.      /**
  199.      * @Route("/calendrier/{id}", name="calendrier")
  200.      */
  201.     public function calendrier(Request $requestRendezVousRepository $rdvRepo,JoursSemaineRepository $joursSemaineRepoAvocatsRepository $avocatsRepository,$id): Response
  202.     {
  203.         $avocat=$avocatsRepository->findOneById($id);
  204.         $rdv $rdvRepo->findBy(array('Avocats'=>$avocat));
  205.         return $this->render('admin/calendrier.html.twig', [
  206.             
  207.             'rdv'=>$rdv,
  208.             'avocat'=>$avocat
  209.         ]);
  210.     }
  211.     
  212.      /**
  213.      * @Route("/listeRdv", name="listeRdv")
  214.      */
  215.     public function listeRdv(Request $requestRendezVousRepository $rdvRepoAvocatsRepository $avocatsRepositoryTranchesRepository $tranchesRepositoryJoursFermeturesRepository $joursFermeturesRepository)
  216.     {
  217.         // header('Access-Control-Allow-Origin: *');
  218.         $em $this->getDoctrine()->getManager();
  219.         
  220.         if(empty($_GET['avocat']))
  221.         {
  222.             $_GET['avocat'] = $this->getUser()->getAvocats();
  223.         }
  224.         $avocat=$avocatsRepository->findOneById($_GET['avocat']);
  225.         $rdv $rdvRepo->findBy(array('Avocats'=>$avocat));
  226.        $rappels = array();
  227.        $i=-1;
  228.        $rappels = [];
  229.        foreach($rdv as $res)
  230.        {
  231.         // en attente
  232.         if($res->getStatuts()->getId() == 1)
  233.         {
  234.                 $titre $res->getLieux()->getLibelle().' - '.$res->getNom().' '.$res->getPrenom();
  235.                 $rappels[] = array(
  236.                 'id' => $res->getId(),
  237.                 'title' => $titre,
  238.                 'start' => str_replace(' ''T'$res->getDate()->format('Y-m-d H:i:s')),
  239.                 'end' => str_replace(' ''T'$res->getDateFin()->format('Y-m-d H:i:s')),
  240.                 'color' => '#f3cb55'
  241.             );
  242.         }
  243.         // validé
  244.         if($res->getStatuts()->getId() == 2)
  245.         {
  246.                 $titre $res->getLieux()->getLibelle().' - '.$res->getNom().' '.$res->getPrenom();
  247.                 $rappels[] = array(
  248.                 'id' => $res->getId(),
  249.                 'title' => $titre,
  250.                 'start' => str_replace(' ''T'$res->getDate()->format('Y-m-d H:i:s')),
  251.                 'end' => str_replace(' ''T'$res->getDateFin()->format('Y-m-d H:i:s')),
  252.                 'color' => '#32ae38'
  253.             );
  254.         }
  255.         
  256.        }
  257.         // dispo
  258.         $jours $joursFermeturesRepository->findBy(['Avocats'=>$avocat]);
  259.         $j = array();
  260.         foreach($jours as $res)
  261.         {
  262.             array_push($j$res->getId());
  263.         }
  264.         
  265.         $tranches $tranchesRepository->findBy(['JoursFermetures'=>$j,'Ouvert'=>1]);
  266.         foreach($tranches as $res)
  267.         {
  268.             if($res->getDate()->format('Y-m-d') >= date('Y-m-d'))
  269.             {
  270.      
  271.                 $titre 'Disponible';
  272.                 $rappels[] = array(
  273.                     'id' => $res->getId(),
  274.                     'title' => $titre,
  275.                     'start' => str_replace(' ''T'$res->getDate()->format('Y-m-d H:i:s')),
  276.                     'end' => str_replace(' ''T'$res->getDate()->format('Y-m-d H:i:s')),
  277.                     'color' => '#2986cc'
  278.                 );
  279.             }
  280.         }
  281.         
  282.         $response = new Response();
  283.         $response->setContent(json_encode($rappels));
  284.         // $response->headers->set('Content-Type', 'application/json');
  285.         $response->headers->set('Access-Control-Allow-Origin''*');
  286.         return $response;
  287.     }
  288.         /**
  289.      * @Route("/liste-des-rendez-vous/{etat}", name="listeRdvAConfirmer")
  290.      */
  291.     public function listeRdvAConfirmer(Request $requestRendezVousRepository $rdvRepoAvocatsRepository $avocatsRepository$etat)
  292.     {
  293.         // header('Access-Control-Allow-Origin: *');
  294.         $em $this->getDoctrine()->getManager();
  295.         
  296.         if(empty($_GET['avocat']))
  297.         {
  298.             $_GET['avocat'] = $this->getUser()->getAvocats();
  299.         }
  300.         $avocat=$avocatsRepository->findOneById($_GET['avocat']);
  301.         $rdv $rdvRepo->findBy(array('Avocats'=>$avocat,'Statuts'=>$etat),array('id'=>'desc'));
  302.         return $this->render('admin/rdvEnAttente.html.twig', [
  303.             
  304.             'rdv'=>$rdv,
  305.             'avocat'=>$avocat,
  306.             "etat"=>$etat
  307.         ]);
  308.        
  309.     }
  310.      /**
  311.      * @Route("/details-rendez-vous/{id}", name="detailsRdv")
  312.      */
  313.     public function detailsRdv(Request $requestRendezVousRepository $rdvRepoAvocatsRepository $avocatsRepository$id)
  314.     {
  315.         // header('Access-Control-Allow-Origin: *');
  316.         $em $this->getDoctrine()->getManager();
  317.         
  318.         
  319.         
  320.         $rdv $rdvRepo->findOneById($id);
  321.         return $this->render('admin/detailsRdv.html.twig', [
  322.             
  323.             'rdvs'=>$rdv,
  324.            
  325.         ]);
  326.        
  327.     }
  328.        /**
  329.      * @Route("/updateEtatRdv/{id}/{etat}/{page}", name="updateEtatRdv")
  330.      */
  331.     public function updateEtatRdv(Request $requestRendezVousRepository $rdvRepoAvocatsRepository $avocatsRepositoryStatutsRepository $statutsRepository$id,$etat,$page)
  332.     {
  333.         // header('Access-Control-Allow-Origin: *');
  334.         $em $this->getDoctrine()->getManager();
  335.   $mj = new \Mailjet\Client('9c42ddfa4db6f8f973a32c7087ea2d51',
  336.         'eace5eb7252f4ff3a1b483251360e04c'true,
  337.         ['url' => "api.mailjet.com"'version' => 'v4''call' => false]
  338.       );
  339. $etatRedirect 1;
  340.         $rdv $rdvRepo->findOneById($id);
  341.         if($rdv->getStatuts()->getId() == 1)
  342.         {
  343.             if($etat == 'accepter')
  344.             {
  345.                 $statut $statutsRepository->findOneById(2);
  346.                 $rdv->setStatuts($statut);
  347.                 $em->persist($rdv);
  348.                 $em->flush();
  349.                 $etatRedirect 1;
  350.                 $messageSMS "M./Mme ".$rdv->getPrenom()." ".$rdv->getNom().", Nous vous confirmons le rendez-vous fixé en date du ".$rdv->getDate()->format('d-m-Y')." à ".$rdv->getDate()->format('H:i')." heures avec Maître ".$rdv->getAvocats()->getNom().". Lieu : ".$rdv->getLieux()->getAdresse().".";
  351.                 //$messageSMS .= "Vous pouvez annuler ce rendez-vous jusqu’à 48h à l’avance via l'adresse suivante ".$rdv->getAvocats()->getEmail().". Nous attirons votre attention sur le fait que tout rendez-vous non annulé qui ne serait pas honoré est de nature à engendrer des désagréments pour notre cabinet de sorte que les frais y relatifs pourraient vous être réclamés à concurrence d’un montant forfaitaire de 50 € tvac.";
  352.             
  353.                 $subject 'Confirmation du rendez-vous';
  354.                 $message $this->renderView(
  355.                     // templates/emails/registration.txt.twig
  356.                         'emails/confirmationFinale.html.twig',
  357.                         [
  358.                             'nom' => strtoupper($rdv->getNom()), 
  359.                             'prenom' => strtoupper($rdv->getPrenom()), 
  360.                             'date'=>$rdv->getDate()->format('d-m-Y'), 
  361.                             'heure'=>$rdv->getDate()->format('H:i'), 
  362.                             'email'=>$rdv->getEmail(), 
  363.                             'telephone'=>$rdv->getTelephone(), 
  364.                             'lieu'=>$rdv->getLieux()->getLibelle(), 
  365.                             'adresse'=>$rdv->getLieux()->getAdresse(), 
  366.                             'telAvocat'=>$rdv->getAvocats()->getTel(), 
  367.                             'emailAvocat'=>$rdv->getAvocats()->getEmail(), 
  368.                             'avocat'=>$rdv->getAvocats()->getNom().' '.$rdv->getAvocats()->getPrenom(), 
  369.                             ]
  370.                     );
  371.         
  372.         
  373.                      // Données du message
  374.                /***************************** */
  375.                $data = array(
  376.                 'key' => '0c33c31c02c1e3ef72692c7bec035c96',
  377.                 'destinataires' => $rdv->getTelephone(),
  378.                 'message' => $messageSMS,
  379.                 'expediteur' => 'LLVD',
  380.                 'date' => '',
  381.                 'smslong' => 1
  382.             );
  383.             // Initialisation de cURL avec l'URL à appeler
  384.             $ch curl_init('https://manager.envoyersmspro.com/api/envoyer/sms');
  385.             // Paramètres cURL pour activer le POST et retour de la réponse
  386.             curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  387.             curl_setopt($chCURLOPT_POST1);
  388.             // Passage des données
  389.             curl_setopt($chCURLOPT_POSTFIELDS,http_build_query($data'''&'));
  390.             // Appel de l'API Envoyer SMS Pro et récupération de la réponse dans la variable $reponse_json
  391.             $reponse_json curl_exec ($ch);
  392.             curl_close ($ch);
  393.             // Conversion JSON en tableau avec json_decode (http://fr2.php.net/manual/fr/function.json-decode.php)
  394.             $reponse_array json_decode($reponse_jsontrue);
  395.             
  396. $to $rdv->getEmail();
  397.         $mj = new \Mailjet\Client('9c42ddfa4db6f8f973a32c7087ea2d51',
  398.         'eace5eb7252f4ff3a1b483251360e04c',true,['version' => 'v3.1']);
  399.         $body = [
  400.             'Messages' => [
  401.                 [
  402.                     'From' => [
  403.                         'Email' => "dontreply@llvd-avocats.be",
  404.                         'Name' => "LLVD AVOCATS"
  405.                     ],
  406.                     'To' => [
  407.                         [
  408.                             'Email' => $to,
  409.                             
  410.                         ]
  411.                     ],
  412.                     'Bcc' => [ // 👈 C’est ici qu’on met Jocelyn en copie cachée
  413.                 [
  414.                     'Email' => 'jocelyn@piranha.lu',
  415.                 ]
  416.             ],
  417.                     'Subject' => $subject,
  418.                     'HTMLPart' => $message,
  419.                 ]
  420.             ]
  421.         ];
  422.         $response $mj->post(Resources::$Email, ['body' => $body]);
  423.         $response->success();
  424.                 
  425.             }
  426.             
  427.             if($etat == 'refuser')
  428.             {
  429.                 $em->remove($rdv);
  430.                 $em->flush();
  431.                 $etatRedirect 1;
  432.                 if($_GET['reponse'] == 1)
  433.                 {
  434.                     $messageSMS "M./Mme ".$rdv->getPrenom()." ".$rdv->getNom().", malheureusement,  Maître ".$rdv->getAvocats()->getNom()." ne pourra vous recevoir en date du ".$rdv->getDate()->format('d-m-Y')." à ".$rdv->getDate()->format('H:i')." heures à ".$rdv->getLieux()->getAdresse().".";
  435.                 }
  436.                 else
  437.                 {
  438.                     $messageSMS "M./Mme ".$rdv->getPrenom()." ".$rdv->getNom().", malheureusement,  Maître ".$rdv->getAvocats()->getNom()." ne pourra vous recevoir en date du ".$rdv->getDate()->format('d-m-Y')." à ".$rdv->getDate()->format('H:i')." heures à ".$rdv->getLieux()->getAdresse().".";
  439.                 }
  440.                 $subject 'Annulation du rendez-vous';
  441.                 $message $this->renderView(
  442.                     // templates/emails/registration.txt.twig
  443.                         'emails/annulation.html.twig',
  444.                         [
  445.                             'nom' => strtoupper($rdv->getNom()), 
  446.                             'prenom' => strtoupper($rdv->getPrenom()), 
  447.                             'date'=>$rdv->getDate()->format('d-m-Y'), 
  448.                             'heure'=>$rdv->getDate()->format('H:i'), 
  449.                             'email'=>$rdv->getEmail(), 
  450.                             'telephone'=>$rdv->getTelephone(), 
  451.                             'lieu'=>$rdv->getLieux()->getLibelle(), 
  452.                             'adresse'=>$rdv->getLieux()->getAdresse(), 
  453.                             'telAvocat'=>$rdv->getAvocats()->getTel(), 
  454.                             'emailAvocat'=>$rdv->getAvocats()->getEmail(), 
  455.                             'avocat'=>$rdv->getAvocats()->getNom().' '.$rdv->getAvocats()->getPrenom(), 
  456.                             'reponse'=>$_GET['reponse']
  457.                             ]
  458.                     );
  459.         
  460.                 
  461.                      // Données du message
  462.                /***************************** */
  463.                $data = array(
  464.                 'key' => '0c33c31c02c1e3ef72692c7bec035c96',
  465.                 'destinataires' => $rdv->getTelephone(),
  466.                 'message' => $messageSMS,
  467.                 'expediteur' => 'LLVD',
  468.                 'date' => '',
  469.                 'smslong' => 1
  470.             );
  471.             // Initialisation de cURL avec l'URL à appeler
  472.             $ch curl_init('https://manager.envoyersmspro.com/api/envoyer/sms');
  473.             // Paramètres cURL pour activer le POST et retour de la réponse
  474.             curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  475.             curl_setopt($chCURLOPT_POST1);
  476.             // Passage des données
  477.             curl_setopt($chCURLOPT_POSTFIELDS,http_build_query($data'''&'));
  478.             // Appel de l'API Envoyer SMS Pro et récupération de la réponse dans la variable $reponse_json
  479.             $reponse_json curl_exec ($ch);
  480.             curl_close ($ch);
  481.             // Conversion JSON en tableau avec json_decode (http://fr2.php.net/manual/fr/function.json-decode.php)
  482.             $reponse_array json_decode($reponse_jsontrue);
  483.             $to $rdv->getEmail();
  484.         $mj = new \Mailjet\Client('9c42ddfa4db6f8f973a32c7087ea2d51',
  485.         'eace5eb7252f4ff3a1b483251360e04c',true,['version' => 'v3.1']);
  486.         $body = [
  487.             'Messages' => [
  488.                 [
  489.                     'From' => [
  490.                         'Email' => "dontreply@llvd-avocats.be",
  491.                         'Name' => "LLVD AVOCATS"
  492.                     ],
  493.                     'To' => [
  494.                         [
  495.                             'Email' => $to,
  496.                             
  497.                         ]
  498.                     ],
  499.                     'Bcc' => [ // 👈 C’est ici qu’on met Jocelyn en copie cachée
  500.                 [
  501.                     'Email' => 'jocelyn@piranha.lu',
  502.                 ]
  503.             ],
  504.                     'Subject' => $subject,
  505.                     'HTMLPart' => $message,
  506.                 ]
  507.             ]
  508.         ];
  509.         $response $mj->post(Resources::$Email, ['body' => $body]);
  510.         $response->success();
  511.             
  512.             }
  513.             
  514.         
  515.         
  516.     
  517.     }
  518.     else
  519.     {
  520.         if($etat == 'archiver')
  521.         {
  522.             $statut $statutsRepository->findOneById(3);
  523.             $rdv->setStatuts($statut);
  524.             $em->persist($rdv);
  525.             $em->flush();
  526.             $etatRedirect 1;
  527.    
  528.         }
  529.         if($etat == 'annuler')
  530.         {
  531.             $em->remove($rdv);
  532.             $em->flush();
  533.             $etatRedirect 2;
  534.             if($_GET['reponse'] == 1)
  535.             {
  536.                 $messageSMS "M./Mme ".$rdv->getPrenom()." ".$rdv->getNom().", malheureusement,  Maître ".$rdv->getAvocats()->getNom()." ne pourra pas vous recevoir en date du ".$rdv->getDate()->format('d-m-Y')." à ".$rdv->getDate()->format('H:i')." heures à ".$rdv->getLieux()->getAdresse().".";
  537.             }
  538.             else
  539.             {
  540.                 $messageSMS "M./Mme ".$rdv->getPrenom()." ".$rdv->getNom().", malheureusement,  Maître ".$rdv->getAvocats()->getNom()." ne pourra pas vous recevoir en date du ".$rdv->getDate()->format('d-m-Y')." à ".$rdv->getDate()->format('H:i')." heures à ".$rdv->getLieux()->getAdresse().".";
  541.             }
  542.             $subject 'Annulation du rendez-vous';
  543.             $message $this->renderView(
  544.                 // templates/emails/registration.txt.twig
  545.                     'emails/annulation.html.twig',
  546.                     [
  547.                         'nom' => strtoupper($rdv->getNom()), 
  548.                         'prenom' => strtoupper($rdv->getPrenom()), 
  549.                         'date'=>$rdv->getDate()->format('d-m-Y'), 
  550.                         'heure'=>$rdv->getDate()->format('H:i'), 
  551.                         'email'=>$rdv->getEmail(), 
  552.                         'telephone'=>$rdv->getTelephone(), 
  553.                         'lieu'=>$rdv->getLieux()->getLibelle(), 
  554.                         'adresse'=>$rdv->getLieux()->getAdresse(), 
  555.                         'telAvocat'=>$rdv->getAvocats()->getTel(), 
  556.                         'emailAvocat'=>$rdv->getAvocats()->getEmail(), 
  557.                         'avocat'=>$rdv->getAvocats()->getNom().' '.$rdv->getAvocats()->getPrenom(),
  558.                         'reponse'=>$_GET['reponse'
  559.                         ]
  560.                 );
  561.       
  562.         
  563.       
  564.      
  565.       if($etat != 'archiver')
  566.       {
  567.    
  568.        /* $body = [
  569.         'Text' => $messageSMS,
  570.         'To' => $rdv->getTelephone(),
  571.         'From' => "LLVD",
  572.         ];
  573.         $response = $mj->post(Resources::$SmsSend, ['body' => $body]);
  574.         $response->success();*/
  575.         
  576.         
  577.           
  578.            
  579.             /*************************/
  580.         
  581.         $to $rdv->getEmail();
  582.         $mj = new \Mailjet\Client('9c42ddfa4db6f8f973a32c7087ea2d51',
  583.         'eace5eb7252f4ff3a1b483251360e04c',true,['version' => 'v3.1']);
  584.         $body = [
  585.             'Messages' => [
  586.                 [
  587.                     'From' => [
  588.                         'Email' => "dontreply@llvd-avocats.be",
  589.                         'Name' => "LLVD AVOCATS"
  590.                     ],
  591.                     'To' => [
  592.                         [
  593.                             'Email' => $to,
  594.                             
  595.                         ]
  596.                     ],
  597.                     'Bcc' => [ // 👈 C’est ici qu’on met Jocelyn en copie cachée
  598.                 [
  599.                     'Email' => 'jocelyn@piranha.lu',
  600.                 ]
  601.             ],
  602.                     'Subject' => $subject,
  603.                     'HTMLPart' => $message,
  604.                 ]
  605.             ]
  606.         ];
  607.         $response $mj->post(Resources::$Email, ['body' => $body]);
  608.         $response->success();
  609.     }
  610.     }
  611. }
  612.         if($page == 'liste')
  613.         {
  614.             return $this->redirectToRoute('listeRdvAConfirmer', ['etat'=>$etatRedirect], Response::HTTP_SEE_OTHER);
  615.         }
  616.         else
  617.         {
  618.             return $this->redirectToRoute('calendrier', ['id'=>$this->getUser()->getAvocats()->getId()], Response::HTTP_SEE_OTHER);
  619.         }
  620.       
  621.     }
  622.     
  623. }