src/Controller/HomeController.php line 2993

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Users;
  4. use App\Form\UsersType;
  5. use App\Entity\DevisSend;
  6. use App\Entity\DevisTemp;
  7. use App\Repository\FaqRepository;
  8. use App\Repository\GuideRepository;
  9. use App\Repository\PagesRepository;
  10. use App\Repository\AgenceRepository;
  11. use App\Repository\CouleursRepository;
  12. use App\Repository\ServicesRepository;
  13. use App\Repository\VehiculeRepository;
  14. use App\Repository\DefoptionRepository;
  15. use App\Repository\DevisSendRepository;
  16. use App\Repository\DevisTempRepository;
  17. use App\Repository\GarantiesRepository;
  18. use App\Repository\LivraisonRepository;
  19. use App\Repository\PersonnelRepository;
  20. use App\Repository\ReductionRepository;
  21. use App\Repository\OptionveloRepository;
  22. use Doctrine\ORM\EntityManagerInterface;
  23. use App\Repository\CatservicesRepository;
  24. use App\Repository\GrapesPagesRepository;
  25. use App\Repository\LocationLockRepository;
  26. use App\Repository\CaractVehiculeRepository;
  27. use App\Repository\OptionsdefautsRepository;
  28. use App\Repository\CategorieOptionRepository;
  29. use Symfony\Component\Serializer\Serializer;
  30. use App\Repository\VersionVehiculesRepository;
  31. use Symfony\Component\HttpFoundation\Request
  32. use Symfony\Component\HttpFoundation\Response;
  33. use App\Repository\CategorieVehiculeRepository;
  34. use Symfony\Component\Routing\Annotation\Route;
  35. use Symfony\Component\Serializer\Encoder\JsonEncoder;
  36. use Symfony\Component\Security\Core\User\UserInterface;
  37. use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
  38. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  39. use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
  40. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  41. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  42. // Include Dompdf required namespaces
  43. use Dompdf\Dompdf;
  44. use Dompdf\Options;
  45. /*  function check_array($string, $array){
  46.       $trans = array("é" => "e", "&eacute;" => "e", "&aacute;" => "a", "á" => "a", "&iacute;" => "i","í"=>"i", "ó"=>"o", "&oacute;" => "o", "&uacute;" => "u", "ú"=>"u","&ouml;" => "u", "ü"=>"u");
  47.       $realString = strtr($string,$trans);
  48.       foreach($array as $val){
  49.          $realVal = strtr($val,$trans);
  50.          if(strcasecmp( $realVal, $realString ) == 0){
  51.             return true;
  52.          }
  53.       }
  54.       return false;
  55.    } */
  56. class HomeController extends AbstractController
  57. {
  58.     /**
  59.      * @Route("/produit/{slug}/vente/", name="ficheProduit_vente")
  60.      *
  61.      * @param [type] $slug
  62.      * @param VehiculeRepository $VehiculeRepository
  63.      * @param Request $request
  64.      * @param CaractVehiculeRepository $caractVehiculeRepository
  65.      * @param OptionveloRepository $optionveloRepository
  66.      * @param LocationLockRepository $LocationLockRepository
  67.      * @param FaqRepository $FaqRepository
  68.      * @param DevisTempRepository $DevisTempRepository
  69.      * @param EntityManagerInterface $manager
  70.      * @param ReductionRepository $ReductionRepository
  71.      * @param \Swift_Mailer $mailer
  72.      * @param AgenceRepository $AgenceRepository
  73.      * @return void
  74.      */
  75.     public function ficheProduit_vente($slugVehiculeRepository $VehiculeRepositoryRequest $requestCaractVehiculeRepository $caractVehiculeRepositoryOptionveloRepository $optionveloRepositoryLocationLockRepository $LocationLockRepositoryFaqRepository $FaqRepositoryDevisTempRepository $DevisTempRepositoryEntityManagerInterface $managerReductionRepository $ReductionRepository\Swift_Mailer $mailerAgenceRepository $AgenceRepository)
  76.     {
  77.         // validation_formulaire
  78.         $devisvalid 'devisvalid_hide';
  79.         $vehicule $VehiculeRepository->findOneBy(['url' => $slug]);
  80.         if (!$vehicule) {
  81.             return $this->redirectToRoute('home');
  82.         }
  83.         $catact $vehicule->getCat();
  84.         if (!in_array("Achat"$catact)) {
  85.             return $this->redirectToRoute('home');
  86.         }
  87.         $agencename '';
  88.         $user $this->getUser();
  89.         $devisval false;
  90.         if ($user != null) {
  91.             if ($request->cookies->get('validevis_page_' $vehicule->getId()) == 'lskjghslgjhs') {
  92.                 $tarmail $user->getEmail();
  93.                 //     dd( $request->cookies->get('devis') );
  94.                 //recup n° devis et le devis
  95.                 $devis $request->cookies->get('devis_page_' $vehicule->getId());
  96.                 $selectvehics $DevisTempRepository->findBy(
  97.                     ['NoDevis' => $devis]
  98.                 );
  99.                 if ($selectvehics) {
  100.                     $selectvehic $selectvehics[0];
  101.                     // basculer le devis dans le devis a valider
  102.                     $DevisSend = new DevisSend();
  103.                     $DevisSend->setNoDevis($devis);
  104.                     $DevisSend->setDateDeb(\DateTime::createFromFormat('Y-n-d'$selectvehic->getDateDeb()));
  105.                     $DevisSend->setDateFin(\DateTime::createFromFormat('Y-n-d'$selectvehic->getDateFin()));
  106.                     $DevisSend->setData($selectvehic->getData());
  107.                     $DevisSend->setDataLivraison($selectvehic->getDataLivraison());
  108.                     $DevisSend->setDataPersonnel($selectvehic->getDataPersonnel());
  109.                     $DevisSend->setDataReduc($selectvehic->getDataReduc());
  110.                     $DevisSend->setServices($selectvehic->getServices());
  111.                     $DevisSend->setDatedevis(\DateTime::createFromFormat('Y-n-d'date("Y-n-j")));
  112.                     $email '';
  113.                     $DevisSend->setIduser($user->getId());
  114.                     $DevisSend->setUseremail($user->getEmail());
  115.                     $email $user->getEmail();
  116.                     $DevisSend->setUsertype($user->getType());
  117.                     if ($user->getType() == 'Particulier') {
  118.                         $DevisSend->setUsernom($user->getNom() . ' ' $user->getPrenom());
  119.                     } else if ($user->getType() == 'Association') {
  120.                         $DevisSend->setUsernom($user->getDenomination());
  121.                     } else {
  122.                         $DevisSend->setUsernom($user->getRaisonsocial());
  123.                     }
  124.                     $DevisSend->setUseradresse($user->getAdresse());
  125.                     $DevisSend->setUsercpville($user->getCP() . ' ' $user->getVille());
  126.                     $datadec \json_decode($DevisSend->getData());
  127.                     $agenc '';
  128.                     if (isset($datadec[0])) {
  129.                         if (isset($datadec[0]->agence)) {
  130.                             $agenc $datadec[0]->agence;
  131.                         }
  132.                     }
  133.                     $DevisSend->setAgence($agenc);
  134.                     $Agences $AgenceRepository->findBy(
  135.                         array(),
  136.                         array('pos' => 'ASC')
  137.                     );
  138.                     foreach ($Agences as $Agence) {
  139.                         if ($Agence->getId() == $agenc) {
  140.                             $agencename $Agence->getNom();
  141.                         }
  142.                     }
  143.                     $manager->persist($DevisSend);
  144.                     $manager->flush();
  145.                     $Data json_decode($selectvehic->getData());
  146.                     $DataLivraison json_decode($selectvehic->getDataLivraison());
  147.                     for ($i 0$i count($Data); $i++) {
  148.                         if ($Data[$i]->service == 'Location') {
  149.                             $datedeb explode("-"$Data[$i]->datedeb);
  150.                             $formdatedeb $datedeb[2] . '/' $datedeb[1] . '/' $datedeb[0];
  151.                             $Data[$i]->datedeb $formdatedeb;
  152.                             $datefin explode("-"$Data[$i]->datefin);
  153.                             $formdatefin $datefin[2] . '/' $datefin[1] . '/' $datefin[0];
  154.                             $Data[$i]->datefin $formdatefin;
  155.                         }
  156.                     }
  157.                     $DataPersonnel json_decode($selectvehic->getDataPersonnel());
  158.                     $DataReduc json_decode($selectvehic->getDataReduc());
  159.                     $services json_decode($selectvehic->getServices());
  160.                     $today date("j / n / Y");
  161.                     $nextmonth date("j / n / Y"strtotime("+1 month"));
  162.                     $liste_reduc $ReductionRepository->findBy(
  163.                         array(),
  164.                         array('position' => 'ASC')
  165.                     );
  166.                     /*                // Configure Dompdf according to your needs
  167.                               $pdfOptions = new Options();
  168.                               $pdfOptions->set('defaultFont', 'Arial');
  169.                               
  170.                               // Instantiate Dompdf with our options
  171.                               $dompdf = new Dompdf($pdfOptions);
  172.                               // Retrieve the HTML generated in our twig file
  173.                               $html = $this->renderView('default/mypdf.html.twig', [
  174.                                   'title' => "Welcome to our PDF Test",
  175.                                   'no_devis' => $devis,
  176.                                   'today' => $today,
  177.                                   'nextmonth' => $nextmonth,
  178.                                   'Data' => $Data,
  179.                                   'DataLivraison' => $DataLivraison,
  180.                                   'user' => $user,
  181.                                   'DataPersonnel' => $DataPersonnel,
  182.                                   'DataReduc' => $DataReduc,
  183.                                   'reductionliste' => $liste_reduc
  184.                               ]);
  185.                               
  186.                               // Load HTML to Dompdf
  187.                               $dompdf->loadHtml($html);
  188.                               
  189.                               // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  190.                               $dompdf->setPaper('A4', 'portrait');
  191.                       
  192.                               // Render the HTML as PDF
  193.                               $dompdf->render();
  194.                       
  195.                               // Output the generated PDF to Browser (force download)
  196.                               $dompdf->stream("mypdf.pdf", [
  197.                                   "Attachment" => true
  198.                               ]);
  199.                     */
  200.                     // Configure Dompdf according to your needs
  201.                     $pdfOptions = new Options();
  202.                     $pdfOptions->set('defaultFont''Arial');
  203.                     // Instantiate Dompdf with our options
  204.                     $dompdf = new Dompdf($pdfOptions);
  205.                     // Retrieve the HTML generated in our twig file
  206.                     $html $this->renderView('default/mypdf.html.twig', [
  207.                         'title' => "Welcome to our PDF Test",
  208.                         'no_devis' => $devis,
  209.                         'today' => $today,
  210.                         'nextmonth' => $nextmonth,
  211.                         'Data' => $Data,
  212.                         'DataLivraison' => $DataLivraison,
  213.                         'user' => $user,
  214.                         'DataPersonnel' => $DataPersonnel,
  215.                         'DataReduc' => $DataReduc,
  216.                         'DevisSend' => $DevisSend,
  217.                         'services' => $services,
  218.                         'reductionliste' => $liste_reduc,
  219.                         'agencename' => $agencename
  220.                     ]);
  221.                     // Load HTML to Dompdf
  222.                     $dompdf->loadHtml($html);
  223.                     // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  224.                     $dompdf->setPaper('A4''portrait');
  225.                     // Render the HTML as PDF
  226.                     $dompdf->render();
  227.                     // Store PDF Binary Data
  228.                     $output $dompdf->output();
  229.                     // In this case, we want to write the file in the public directory
  230.                     $publicDirectory $this->getParameter('kernel.project_dir') . '/public/pdfgen';
  231.                     // e.g /var/www/project/public/mypdf.pdf
  232.                     $pdfFilepath $publicDirectory '/devis_' $devis '.pdf';
  233.                     // Write file to the desired path
  234.                     file_put_contents($pdfFilepath$output);
  235.                     // Send some text response
  236.                     // return new Response("The PDF file has been succesfully generated !");
  237.                     // Envoi de l'email avec le devis
  238.                     $message = (new \Swift_Message('Devis Trip\'UP'))
  239.                         ->setFrom('contact@tripup.fr')
  240.                         ->setTo($email)
  241.                         ->setCc('contact@tripup.fr')
  242.                         ->setBody(
  243.                             $this->renderView(
  244.                                 // templates/emails/registration.html.twig
  245.                                 'emails/envoidevis.html.twig'
  246.                             ),
  247.                             'text/html'
  248.                         )
  249.                         // attachement du fichier joins
  250.                         ->attach(\Swift_Attachment::fromPath($pdfFilepath), "application/octet-stream")
  251.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/RIB IBAN EURL STEPH _TRIP\'UP.PDF'), "application/octet-stream")
  252.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGL EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
  253.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGV EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
  254.                         // ->attach(\Swift_Attachment::fromPath( $this->getParameter('kernel.project_dir') . '/public/Demande de prix remisé.xlsx' ), "application/octet-stream")
  255.                         // you can remove the following code if you don't define a text version for your emails
  256.                         ->addPart(
  257.                             $this->renderView(
  258.                                 // templates/emails/registration.txt.twig
  259.                                 'emails/envoidevis.txt.twig'
  260.                             ),
  261.                             'text/plain'
  262.                         )
  263.                     ;
  264.                     $mailer->send($message);
  265.                     //find de l'envoi
  266.                     $devisval true;
  267.                 } else {
  268.                     $devisval true;
  269.                 }
  270.                 $devisvalid 'devisvalid';
  271.             }
  272.         }
  273.         $caractlistesIds = [];
  274.         foreach (json_decode($vehicule->getCaractliste()) ?? [] as $key => $value) {
  275.             if (trim($value) != "") {
  276.                 $caractlistesIds[] = $key;
  277.             }
  278.         }
  279.         //  $caractlistes = $caractVehiculeRepository->findByIdsOrderByPositionAsc($caractlistesIds);
  280.         $caractlistes $caractVehiculeRepository->findBy(
  281.             array('id' => $caractlistesIds),
  282.             array('position' => 'ASC')
  283.         );
  284.         $caractlistesArray = [];
  285.         foreach ($caractlistes as $caractliste) {
  286.             if (in_array($caractliste->getId(), $caractlistesIds)) {
  287.                 $caractlistesArray[] = [
  288.                     "caractvehicule" => $caractliste,
  289.                     "value" => (json_decode($vehicule->getCaractliste(), true) ?? [])[$caractliste->getId()],
  290.                 ];
  291.             }
  292.         }
  293.         $datalocs json_decode($vehicule->getData());
  294.         $datalocsArray = [];
  295.         foreach ($datalocs ?? [] as $key => $value) {
  296.             if (isset($value->id$value->checked)) {
  297.                 $optionvelo $optionveloRepository->findOneBy(['id' => $value->id]);
  298.                 if ($optionvelo) {
  299.                     $value->optionvelo $optionvelo;
  300.                     $datalocsArray[] = $value;
  301.                 }
  302.             }
  303.         }
  304.         $listacceq = [null];
  305.         $listacc = [null];
  306.         foreach ($datalocsArray as $datal) {
  307.             if ($datal->optionvelo->getCatOption()->getName() == 'Covering (customisation)' || $datal->optionvelo->getCatOption()->getName() == 'CAO par nos soins' || $datal->optionvelo->getCatOption()->getName() == 'Création de la CAO par nos soins') {
  308.                 if (!in_array($datal->optionvelo->getNomAccord(), $listacc)) {
  309.                     $listacc[] = $datal->optionvelo->getNomAccord();
  310.                 }
  311.             } else {
  312.                 if (!in_array($datal->optionvelo->getNomAccord(), $listacceq)) {
  313.                     $listacceq[] = $datal->optionvelo->getNomAccord();
  314.                 }
  315.             }
  316.         }
  317.         $datalocsArray_mod = [];
  318.         foreach ($datalocsArray as $datal) {
  319.             if (array_search($datal->optionvelo->getNomAccord(), $listacc) != false) {
  320.                 $key array_search($datal->optionvelo->getNomAccord(), $listacc);
  321.                 $datalocsArray_mod[$key][] = $datal;
  322.             } else if (array_search($datal->optionvelo->getNomAccord(), $listacceq) != false) {
  323.                 $key array_search($datal->optionvelo->getNomAccord(), $listacceq);
  324.                 $datalocsArray_mod[$key][] = $datal;
  325.             } else {
  326.                 $key array_search($datal->optionvelo->getNomAccord(), $listacc);
  327.                 $datalocsArray_mod[$key][] = $datal;
  328.             }
  329.         }
  330.         $Imagesjson json_decode($vehicule->getImages());
  331.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  332.         $normalizers = [new ObjectNormalizer()];
  333.         $serializer = new Serializer($normalizers$encoders);
  334.         // Serialize your object in Json
  335.         $urlvente '';
  336.         $catve $vehicule->getCat();
  337.         if (in_array('Location'$catvetrue)) {
  338.             $urlvente $this->generateUrl(
  339.                 'fiche_produit',
  340.                 array('slug' => $request->get('slug')),
  341.                 UrlGeneratorInterface::ABSOLUTE_URL
  342.             );
  343.         }
  344.         $vehiculeconcerne $vehicule->getId();
  345.         $Faqs = [];
  346.         /* $Faqs = $FaqRepository->createQueryBuilder('v')
  347.          ->where( 'v.Vehiculeconcerne LIKE :vehiculeconcerne')
  348.          ->setParameter('vehiculeconcerne', '%'.$vehiculeconcerne.'%')  
  349.          ->orderBy('v.Ordre', 'DESC')      
  350.          ->getQuery()
  351.          ->getResult(); */
  352.         return $this->render('home/fiche_vehicule_vente.html.twig'compact('vehicule''caractlistesArray''datalocsArray_mod''listacceq''listacc''devisvalid''urlvente''Imagesjson''Faqs'));
  353.     }
  354.     
  355.     /**
  356.      * @Route("/produit/{slug}", name="fiche_produit")
  357.      *
  358.      * @param [type] $slug
  359.      * @param VehiculeRepository $VehiculeRepository
  360.      * @param Request $request
  361.      * @param CaractVehiculeRepository $caractVehiculeRepository
  362.      * @param OptionveloRepository $optionveloRepository
  363.      * @param LocationLockRepository $LocationLockRepository
  364.      * @param FaqRepository $FaqRepository
  365.      * @param DevisTempRepository $DevisTempRepository
  366.      * @param EntityManagerInterface $manager
  367.      * @param ReductionRepository $ReductionRepository
  368.      * @param \Swift_Mailer $mailer
  369.      * @param VersionVehiculesRepository $VersionVehiculesRepository
  370.      * @return void
  371.      */
  372.     public function ficheProduit($slugVehiculeRepository $VehiculeRepositoryRequest $requestCaractVehiculeRepository $caractVehiculeRepositoryOptionveloRepository $optionveloRepositoryLocationLockRepository $LocationLockRepositoryFaqRepository $FaqRepositoryDevisTempRepository $DevisTempRepositoryEntityManagerInterface $managerReductionRepository $ReductionRepository\Swift_Mailer $mailerVersionVehiculesRepository $VersionVehiculesRepositoryAgenceRepository $AgenceRepository)
  373.     {
  374.         // validation_formulaire
  375.         $devisvalid 'devisvalid_hide';
  376.         $vehicule $VehiculeRepository->findOneBy(['url' => $slug]);
  377.         if (!$vehicule) {
  378.             return $this->redirectToRoute('home');
  379.         }
  380.         $user $this->getUser();
  381.         $devisval false;
  382.         if ($user != null) {
  383.             if ($request->cookies->get('validevis_page_' $vehicule->getId()) == 'lskjghslgjhs') {
  384.                 $tarmail $user->getEmail();
  385.                 //     dd( $request->cookies->get('devis') );
  386.                 //recup n° devis et le devis
  387.                 $devis $request->cookies->get('devis_page_' $vehicule->getId());
  388.                 $selectvehics $DevisTempRepository->findBy(
  389.                     ['NoDevis' => $devis]
  390.                 );
  391.                 if ($selectvehics) {
  392.                     $selectvehic $selectvehics[0];
  393.                     // basculer le devis dans le devis a valider
  394.                     $DevisSend = new DevisSend();
  395.                     $DevisSend->setNoDevis($devis);
  396.                     $DevisSend->setDateDeb(\DateTime::createFromFormat('Y-n-d'$selectvehic->getDateDeb()));
  397.                     $DevisSend->setDateFin(\DateTime::createFromFormat('Y-n-d'$selectvehic->getDateFin()));
  398.                     $DevisSend->setData($selectvehic->getData());
  399.                     $DevisSend->setDataLivraison($selectvehic->getDataLivraison());
  400.                     $DevisSend->setDataPersonnel($selectvehic->getDataPersonnel());
  401.                     $DevisSend->setDataReduc($selectvehic->getDataReduc());
  402.                     $DevisSend->setServices($selectvehic->getServices());
  403.                     $DevisSend->setDatedevis(\DateTime::createFromFormat('Y-n-d'date("Y-n-j")));
  404.                     $email '';
  405.                     $DevisSend->setIduser($user->getId());
  406.                     $DevisSend->setUseremail($user->getEmail());
  407.                     $email $user->getEmail();
  408.                     $DevisSend->setUsertype($user->getType());
  409.                     if ($user->getType() == 'Particulier') {
  410.                         $DevisSend->setUsernom($user->getNom() . ' ' $user->getPrenom());
  411.                     } else if ($user->getType() == 'Association') {
  412.                         $DevisSend->setUsernom($user->getDenomination());
  413.                     } else {
  414.                         $DevisSend->setUsernom($user->getRaisonsocial());
  415.                     }
  416.                     $DevisSend->setUseradresse($user->getAdresse());
  417.                     $DevisSend->setUsercpville($user->getCP() . ' ' $user->getVille());
  418.                     $datadec \json_decode($DevisSend->getData());
  419.                     $agenc '';
  420.                     if (isset($datadec[0])) {
  421.                         if (isset($datadec[0]->agence)) {
  422.                             $agenc $datadec[0]->agence;
  423.                         }
  424.                     }
  425.                     $DevisSend->setAgence($agenc);
  426.                     $agencename '';
  427.                     $Agences $AgenceRepository->findBy(
  428.                         array(),
  429.                         array('pos' => 'ASC')
  430.                     );
  431.                     foreach ($Agences as $Agence) {
  432.                         if ($Agence->getId() == $agenc) {
  433.                             $agencename $Agence->getNom();
  434.                         }
  435.                     }
  436.                     $manager->persist($DevisSend);
  437.                     $manager->flush();
  438.                     $Data json_decode($selectvehic->getData());
  439.                     $DataLivraison json_decode($selectvehic->getDataLivraison());
  440.                     for ($i 0$i count($Data); $i++) {
  441.                         if ($Data[$i]->service == 'Location') {
  442.                             $datedeb explode("-"$Data[$i]->datedeb);
  443.                             $formdatedeb $datedeb[2] . '/' $datedeb[1] . '/' $datedeb[0];
  444.                             $Data[$i]->datedeb $formdatedeb;
  445.                             $datefin explode("-"$Data[$i]->datefin);
  446.                             $formdatefin $datefin[2] . '/' $datefin[1] . '/' $datefin[0];
  447.                             $Data[$i]->datefin $formdatefin;
  448.                         }
  449.                     }
  450.                     $DataPersonnel json_decode($selectvehic->getDataPersonnel());
  451.                     $DataReduc json_decode($selectvehic->getDataReduc());
  452.                     $services json_decode($selectvehic->getServices());
  453.                     $today date("j / n / Y");
  454.                     $nextmonth date("j / n / Y"strtotime("+1 month"));
  455.                     $liste_reduc $ReductionRepository->findBy(
  456.                         array(),
  457.                         array('position' => 'ASC')
  458.                     );
  459.                     /*                // Configure Dompdf according to your needs
  460.                               $pdfOptions = new Options();
  461.                               $pdfOptions->set('defaultFont', 'Arial');
  462.                               
  463.                               // Instantiate Dompdf with our options
  464.                               $dompdf = new Dompdf($pdfOptions);
  465.                               // Retrieve the HTML generated in our twig file
  466.                               $html = $this->renderView('default/mypdf.html.twig', [
  467.                                   'title' => "Welcome to our PDF Test",
  468.                                   'no_devis' => $devis,
  469.                                   'today' => $today,
  470.                                   'nextmonth' => $nextmonth,
  471.                                   'Data' => $Data,
  472.                                   'DataLivraison' => $DataLivraison,
  473.                                   'user' => $user,
  474.                                   'DataPersonnel' => $DataPersonnel,
  475.                                   'DataReduc' => $DataReduc,
  476.                                   'reductionliste' => $liste_reduc
  477.                               ]);
  478.                               
  479.                               // Load HTML to Dompdf
  480.                               $dompdf->loadHtml($html);
  481.                               
  482.                               // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  483.                               $dompdf->setPaper('A4', 'portrait');
  484.                       
  485.                               // Render the HTML as PDF
  486.                               $dompdf->render();
  487.                       
  488.                               // Output the generated PDF to Browser (force download)
  489.                               $dompdf->stream("mypdf.pdf", [
  490.                                   "Attachment" => true
  491.                               ]);
  492.                     */
  493.                     // Configure Dompdf according to your needs
  494.                     $pdfOptions = new Options();
  495.                     $pdfOptions->set('defaultFont''Arial');
  496.                     // Instantiate Dompdf with our options
  497.                     $dompdf = new Dompdf($pdfOptions);
  498.                     // Retrieve the HTML generated in our twig file
  499.                     $html $this->renderView('default/mypdf.html.twig', [
  500.                         'title' => "Welcome to our PDF Test",
  501.                         'no_devis' => $devis,
  502.                         'today' => $today,
  503.                         'nextmonth' => $nextmonth,
  504.                         'Data' => $Data,
  505.                         'DataLivraison' => $DataLivraison,
  506.                         'user' => $user,
  507.                         'DataPersonnel' => $DataPersonnel,
  508.                         'DataReduc' => $DataReduc,
  509.                         'DevisSend' => $DevisSend,
  510.                         'services' => $services,
  511.                         'reductionliste' => $liste_reduc,
  512.                         'agencename' => $agencename
  513.                     ]);
  514.                     // Load HTML to Dompdf
  515.                     $dompdf->loadHtml($html);
  516.                     // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  517.                     $dompdf->setPaper('A4''portrait');
  518.                     // Render the HTML as PDF
  519.                     $dompdf->render();
  520.                     // Store PDF Binary Data
  521.                     $output $dompdf->output();
  522.                     // In this case, we want to write the file in the public directory
  523.                     $publicDirectory $this->getParameter('kernel.project_dir') . '/public/pdfgen';
  524.                     // e.g /var/www/project/public/mypdf.pdf
  525.                     $pdfFilepath $publicDirectory '/devis_' $devis '.pdf';
  526.                     // Write file to the desired path
  527.                     file_put_contents($pdfFilepath$output);
  528.                     // Send some text response
  529.                     // return new Response("The PDF file has been succesfully generated !");
  530.                     // Envoi de l'email avec le devis
  531.                     $message = (new \Swift_Message('Devis Trip\'UP'))
  532.                         ->setFrom('contact@tripup.fr')
  533.                         ->setTo($email)
  534.                         ->setCc('contact@tripup.fr')
  535.                         ->setBody(
  536.                             $this->renderView(
  537.                                 // templates/emails/registration.html.twig
  538.                                 'emails/envoidevis.html.twig'
  539.                             ),
  540.                             'text/html'
  541.                         )
  542.                         // attachement du fichier joins
  543.                         ->attach(\Swift_Attachment::fromPath($pdfFilepath), "application/octet-stream")
  544.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/RIB IBAN EURL STEPH _TRIP\'UP.PDF'), "application/octet-stream")
  545.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGL EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
  546.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGV EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
  547.                         // ->attach(\Swift_Attachment::fromPath( $this->getParameter('kernel.project_dir') . '/public/Demande de prix remisé.xlsx' ), "application/octet-stream")
  548.                         // you can remove the following code if you don't define a text version for your emails
  549.                         ->addPart(
  550.                             $this->renderView(
  551.                                 // templates/emails/registration.txt.twig
  552.                                 'emails/envoidevis.txt.twig'
  553.                             ),
  554.                             'text/plain'
  555.                         )
  556.                     ;
  557.                     $mailer->send($message);
  558.                     //find de l'envoi
  559.                     $devisval true;
  560.                 } else {
  561.                     $devisval true;
  562.                 }
  563.                 $devisvalid 'devisvalid';
  564.             }
  565.         }
  566.         $caractlistesIds = [];
  567.         foreach (json_decode($vehicule->getCaractliste()) ?? [] as $key => $value) {
  568.             if (trim($value) != "") {
  569.                 $caractlistesIds[] = $key;
  570.             }
  571.         }
  572.         //  $caractlistes = $caractVehiculeRepository->findByIdsOrderByPositionAsc($caractlistesIds);
  573.         $caractlistes $caractVehiculeRepository->findBy(
  574.             array('id' => $caractlistesIds),
  575.             array('position' => 'ASC')
  576.         );
  577.         $caractlistesArray = [];
  578.         foreach ($caractlistes as $caractliste) {
  579.             if (in_array($caractliste->getId(), $caractlistesIds)) {
  580.                 $caractlistesArray[] = [
  581.                     "caractvehicule" => $caractliste,
  582.                     "value" => (json_decode($vehicule->getCaractliste(), true) ?? [])[$caractliste->getId()],
  583.                 ];
  584.             }
  585.         }
  586.         $datalocs json_decode($vehicule->getDataLoc());
  587.         $datalocsArray = [];
  588.         foreach ($datalocs ?? [] as $key => $value) {
  589.             if (isset($value->id$value->checked)) {
  590.                 $optionvelo $optionveloRepository->findOneBy(['id' => $value->id]);
  591.                 if ($optionvelo) {
  592.                     $value->optionvelo $optionvelo;
  593.                     $datalocsArray[] = $value;
  594.                 }
  595.             }
  596.         }
  597.         $listacceq = [null];
  598.         $listacc = [null];
  599.         foreach ($datalocsArray as $datal) {
  600.             if (!in_array($datal->optionvelo->getNomAccord(), $listacc)) {
  601.                 if ($datal->optionvelo->getCatOption()->getName() == 'Covering (customisation)' || $datal->optionvelo->getCatOption()->getName() == 'CAO par nos soins' || $datal->optionvelo->getCatOption()->getName() == 'Création de la CAO par nos soins') {
  602.                     $listacc[] = $datal->optionvelo->getNomAccord();
  603.                 } else {
  604.                     if (!in_array($datal->optionvelo->getNomAccord(), $listacceq)) {
  605.                         $listacceq[] = $datal->optionvelo->getNomAccord();
  606.                     }
  607.                 }
  608.             }
  609.         }
  610.         //   dd($listacceq);
  611.         $datalocsArray_mod = [];
  612.         foreach ($datalocsArray as $datal) {
  613.             if (array_search($datal->optionvelo->getNomAccord(), $listacc) != false) {
  614.                 $key array_search($datal->optionvelo->getNomAccord(), $listacc);
  615.                 $datalocsArray_mod[$key][] = $datal;
  616.             } else if (array_search($datal->optionvelo->getNomAccord(), $listacceq) != false) {
  617.                 $key array_search($datal->optionvelo->getNomAccord(), $listacceq);
  618.                 $datalocsArray_mod[$key][] = $datal;
  619.             } else {
  620.                 $key array_search($datal->optionvelo->getNomAccord(), $listacc);
  621.                 $datalocsArray_mod[$key][] = $datal;
  622.             }
  623.         }
  624.         $Imagesjson json_decode($vehicule->getImages());
  625.         //   dd( $datalocsArray_mod  );
  626.         $LocationLock $LocationLockRepository->findAll();
  627.         $urlvente '';
  628.         $catve $vehicule->getCat();
  629.         if (in_array('Achat'$catvetrue)) {
  630.             $urlvente $this->generateUrl(
  631.                 'ficheProduit_vente',
  632.                 array('slug' => $request->get('slug')),
  633.                 UrlGeneratorInterface::ABSOLUTE_URL
  634.             );
  635.         }
  636.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  637.         $normalizers = [new ObjectNormalizer()];
  638.         $serializer = new Serializer($normalizers$encoders);
  639.         // Serialize your object in Json
  640.         $LocationLockjson $serializer->serialize($LocationLock'json', [
  641.             AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste''listeVehicule'],
  642.             'circular_reference_handler' => function ($object) {
  643.                 return $object->getId();
  644.             }
  645.         ]);
  646.         $vehiculeconcerne $vehicule->getId();
  647.         $Faqsreq = [];
  648.         // $Faqs =  \json_decode( $vehicule->getFaq() );
  649.         $Faqsreq $FaqRepository->createQueryBuilder('v')
  650.             ->where('v.Vehiculeconcerne LIKE :vehiculeconcerne')
  651.             ->setParameter('vehiculeconcerne''%' $vehiculeconcerne '%')
  652.             ->orderBy('v.Ordre''DESC')
  653.             ->getQuery()
  654.             ->getResult();
  655.         // dd( $Faqs );
  656.         $Faqs = [];
  657.         foreach ($Faqsreq as $Faq) {
  658.             $testlists $Faq->getVehiculeconcerne(); 
  659.             foreach ($testlists as $testlist) {
  660.                 if(  $testlist == $vehiculeconcerne){
  661.                     $Faqs[] = $Faq;
  662.                 }
  663.             }
  664.             # code...
  665.         }
  666.        // dd($vehiculeconcerne );
  667.        // dd($Faqs );
  668.         $VersionVehicules $VersionVehiculesRepository->findBy(
  669.             array('Vehicule' => $vehicule->getId(), 'Disponible' => true)
  670.         );
  671.         return $this->render('home/fiche_vehicule.html.twig'compact('vehicule''caractlistesArray''datalocsArray_mod''listacceq''listacc''LocationLockjson''devisvalid''urlvente''Imagesjson''Faqs''VersionVehicules'));
  672.     }
  673.     /**
  674.      * @Route("/produit", name="home", options={"sitemap" = true})
  675.      */
  676.     public function index(Users $users nullRequest $requestEntityManagerInterface $managerUserPasswordEncoderInterface $encoderDevisSendRepository $DevisSendRepository=nullDevisSend $DevisSend=nullDevisTempRepository $DevisTempRepositoryReductionRepository $ReductionRepository\Swift_Mailer $mailerAgenceRepository $AgenceRepositoryCouleursRepository $CouleursRepository)
  677.     {
  678.         /*    $message = (new \Swift_Message('Devis Trip\'UP'))
  679.             ->setFrom('contact@tripup.fr')
  680.             ->setTo('stephen@tripup.fr')
  681.             ->setBody(
  682.                 $this->renderView(
  683.                     // templates/emails/registration.html.twig
  684.                     'emails/registration.html.twig'
  685.                     
  686.                 ),
  687.                 'text/html'
  688.             )
  689.             // you can remove the following code if you don't define a text version for your emails
  690.             ->addPart(
  691.                 $this->renderView(
  692.                     // templates/emails/registration.txt.twig
  693.                     'emails/registration.txt.twig'
  694.                    
  695.                 ),
  696.                 'text/plain'
  697.             )
  698.         ;
  699.               $mailer->send($message);*/
  700.         $user $this->getUser();
  701.         $devisval false;
  702.         if ($user != null) {
  703.             if ($request->cookies->get('validevis') == 'lskjghslgjhs') {
  704.                 $tarmail $user->getEmail();
  705.                 //     dd( $request->cookies->get('devis') );
  706.                 //recup n° devis et le devis
  707.                 $devis $request->cookies->get('devis');
  708.                 $selectvehics $DevisTempRepository->findBy(
  709.                     ['NoDevis' => $devis]
  710.                 );
  711.                 if ($selectvehics) {
  712.                     $selectvehic $selectvehics[0];
  713.                     // basculer le devis dans le devis a valider
  714.                     $DevisSend = new DevisSend();
  715.                     $DevisSend->setNoDevis($devis);
  716.                     $DevisSend->setDateDeb(\DateTime::createFromFormat('Y-n-d'$selectvehic->getDateDeb()));
  717.                     $DevisSend->setDateFin(\DateTime::createFromFormat('Y-n-d'$selectvehic->getDateFin()));
  718.                     $DevisSend->setData($selectvehic->getData());
  719.                     $DevisSend->setDataLivraison($selectvehic->getDataLivraison());
  720.                     $DevisSend->setDataPersonnel($selectvehic->getDataPersonnel());
  721.                     $DevisSend->setDataReduc($selectvehic->getDataReduc());
  722.                     $DevisSend->setServices($selectvehic->getServices());
  723.                     $DevisSend->setDatedevis(\DateTime::createFromFormat('Y-n-d'date("Y-n-j")));
  724.                     $email '';
  725.                     $DevisSend->setIduser($user->getId());
  726.                     $DevisSend->setUseremail($user->getEmail());
  727.                     $email $user->getEmail();
  728.                     $DevisSend->setUsertype($user->getType());
  729.                     if ($user->getType() == 'Particulier') {
  730.                         $DevisSend->setUsernom($user->getNom() . ' ' $user->getPrenom());
  731.                     } else if ($user->getType() == 'Association') {
  732.                         $DevisSend->setUsernom($user->getDenomination());
  733.                     } else {
  734.                         $DevisSend->setUsernom($user->getRaisonsocial());
  735.                     }
  736.                     $DevisSend->setUseradresse($user->getAdresse());
  737.                     $DevisSend->setUsercpville($user->getCP() . ' ' $user->getVille());
  738.                     $datadec \json_decode($DevisSend->getData());
  739.                     $agenc '';
  740.                     if (isset($datadec[0])) {
  741.                         if (isset($datadec[0]->agence)) {
  742.                             $agenc $datadec[0]->agence;
  743.                         }
  744.                     }
  745.                     $DevisSend->setAgence($agenc);
  746.                     $agencename '';
  747.                     $Agences $AgenceRepository->findBy(
  748.                         array(),
  749.                         array('pos' => 'ASC')
  750.                     );
  751.                     foreach ($Agences as $Agence) {
  752.                         if ($Agence->getId() == $agenc) {
  753.                             $agencename $Agence->getNom();
  754.                         }
  755.                     }
  756.                     $manager->persist($DevisSend);
  757.                     $manager->flush();
  758.                     $Data json_decode($selectvehic->getData());
  759.                     $DataLivraison json_decode($selectvehic->getDataLivraison());
  760.                     for ($i 0$i count($Data); $i++) {
  761.                         if ($Data[$i]->service == 'Location') {
  762.                             $datedeb explode("-"$Data[$i]->datedeb);
  763.                             if (count($datedeb) > 1) {
  764.                                 $formdatedeb $datedeb[2] . '/' $datedeb[1] . '/' $datedeb[0];
  765.                             } else {
  766.                                 $formdatedeb '';
  767.                             }
  768.                             $Data[$i]->datedeb $formdatedeb;
  769.                             $datefin explode("-"$Data[$i]->datefin);
  770.                             if (count($datefin) > 1) {
  771.                                 $formdatefin $datefin[2] . '/' $datefin[1] . '/' $datefin[0];
  772.                             } else {
  773.                                 $formdatefin '';
  774.                             }
  775.                             $Data[$i]->datefin $formdatefin;
  776.                         }
  777.                     }
  778.                     $DataPersonnel json_decode($selectvehic->getDataPersonnel());
  779.                     $DataReduc json_decode($selectvehic->getDataReduc());
  780.                     $services json_decode($selectvehic->getServices());
  781.                     $today date("j / n / Y");
  782.                     $nextmonth date("j / n / Y"strtotime("+1 month"));
  783.                     $liste_reduc $ReductionRepository->findBy(
  784.                         array(),
  785.                         array('position' => 'ASC')
  786.                     );
  787.                     //  dd($services);
  788.                     /*            // Configure Dompdf according to your needs
  789.                               $pdfOptions = new Options();
  790.                               $pdfOptions->set('defaultFont', 'Poppins');
  791.                               
  792.                               // Instantiate Dompdf with our options
  793.                               $dompdf = new Dompdf($pdfOptions);
  794.                               // Retrieve the HTML generated in our twig file
  795.                               $html = $this->renderView('default/mypdf.html.twig', [
  796.                                   'title' => "Welcome to our PDF Test",
  797.                                   'no_devis' => $devis,
  798.                                   'today' => $today,
  799.                                   'nextmonth' => $nextmonth,
  800.                                   'Data' => $Data,
  801.                                   'DataLivraison' => $DataLivraison,
  802.                                   'user' => $user,
  803.                                   'DataPersonnel' => $DataPersonnel,
  804.                                   'DataReduc' => $DataReduc,
  805.                                   'DevisSend' => $DevisSend,
  806.                                   'services' => $services,
  807.                                   'reductionliste' => $liste_reduc,
  808.                                   'agencename' =>  $agencename
  809.                               ]);
  810.                               
  811.                               // Load HTML to Dompdf
  812.                               $dompdf->loadHtml($html);
  813.                               
  814.                               // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  815.                               $dompdf->setPaper('A4', 'portrait');
  816.                       
  817.                               // Render the HTML as PDF
  818.                               $dompdf->render();
  819.                       
  820.                               // Output the generated PDF to Browser (force download)
  821.                               $dompdf->stream("mypdf.pdf", [
  822.                                   "Attachment" => true
  823.                               ]);
  824.                   */
  825.                     // Configure Dompdf according to your needs
  826.                     $pdfOptions = new Options();
  827.                     $pdfOptions->set('defaultFont''Arial');
  828.                     // Instantiate Dompdf with our options
  829.                     $dompdf = new Dompdf($pdfOptions);
  830.                 //    dd($DataReduc);
  831.                     // Retrieve the HTML generated in our twig file
  832.                     $html $this->renderView('default/mypdf.html.twig', [
  833.                         'title' => "Welcome to our PDF Test",
  834.                         'no_devis' => $devis,
  835.                         'today' => $today,
  836.                         'nextmonth' => $nextmonth,
  837.                         'Data' => $Data,
  838.                         'DataLivraison' => $DataLivraison,
  839.                         'user' => $user,
  840.                         'DataPersonnel' => $DataPersonnel,
  841.                         'DataReduc' => $DataReduc,
  842.                         'DevisSend' => $DevisSend,
  843.                         'services' => $services,
  844.                         'reductionliste' => $liste_reduc,
  845.                         'agencename' => $agencename
  846.                     ]);
  847.                     // Load HTML to Dompdf
  848.                     $dompdf->loadHtml($html);
  849.                     // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  850.                     $dompdf->setPaper('A4''portrait');
  851.                     // Render the HTML as PDF
  852.                     $dompdf->render();
  853.                     // Store PDF Binary Data
  854.                     $output $dompdf->output();
  855.                     // In this case, we want to write the file in the public directory
  856.                     $publicDirectory $this->getParameter('kernel.project_dir') . '/public/pdfgen';
  857.                     // e.g /var/www/project/public/mypdf.pdf
  858.                     $pdfFilepath $publicDirectory '/devis_' $devis '.pdf';
  859.                     // Write file to the desired path
  860.                     file_put_contents($pdfFilepath$output);
  861.                     // Send some text response
  862.                     // return new Response("The PDF file has been succesfully generated !");
  863.                     // Envoi de l'email avec le devis
  864.                     $message = (new \Swift_Message('Devis Trip\'UP'))
  865.                         ->setFrom('contact@tripup.fr')
  866.                         ->setTo($email)
  867.                         ->setCc('contact@tripup.fr')
  868.                         ->setBody(
  869.                             $this->renderView(
  870.                                 // templates/emails/registration.html.twig
  871.                                 'emails/envoidevis.html.twig'
  872.                             ),
  873.                             'text/html'
  874.                         )
  875.                         // attachement du fichier joins
  876.                         ->attach(\Swift_Attachment::fromPath($pdfFilepath), "application/octet-stream")
  877.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/RIB IBAN EURL STEPH _TRIP\'UP.PDF'), "application/octet-stream")
  878.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGL EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
  879.                         ->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGV EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
  880.                         //   ->attach(\Swift_Attachment::fromPath( $this->getParameter('kernel.project_dir') . '/public/Demande de prix remisé.xlsx' ), "application/octet-stream")
  881.                         // you can remove the following code if you don't define a text version for your emails
  882.                         ->addPart(
  883.                             $this->renderView(
  884.                                 // templates/emails/registration.txt.twig
  885.                                 'emails/envoidevis.txt.twig'
  886.                             ),
  887.                             'text/plain'
  888.                         )
  889.                     ;
  890.                     $mailer->send($message);
  891.                     //find de l'envoi
  892.                     $devisval true;
  893.                 } else {
  894.                     $devisval true;
  895.                 }
  896.             }
  897.         }
  898.         if ($request->get('_route') == 'home_log') {
  899.             $showform 1;
  900.         } else if ($request->get('_route') == 'home_reg') {
  901.             $showform 2;
  902.         } else {
  903.             $showform 0;
  904.         }
  905.         /*   $application = $this->getApplication()->find('cache:clear');
  906.    $application->run(new ArrayInput(array( 'command' => 'cache:clear' )), new NullOutput());*/
  907.         //   dd($request->request);
  908.         $Agences $AgenceRepository->findBy(
  909.             array(),
  910.             array('pos' => 'ASC')
  911.         );
  912.         $Reductions $ReductionRepository->findBy(
  913.             array(),
  914.             array('position' => 'ASC')
  915.         );
  916.         $CouleursRep $CouleursRepository->findBy(
  917.             array(),
  918.             array('position' => 'ASC')
  919.         );
  920.         return $this->render('home/index.html.twig', [
  921.             'controller_name' => 'Home Controller',
  922.             'showform' => $showform,
  923.             'devisval' => $devisval,
  924.             'Agences' => $Agences,
  925.             'Reductions' => $Reductions,
  926.             'CouleursRep' => $CouleursRep
  927.         ]);
  928.     }
  929.     /**
  930.      * @Route("/api/vehicule/", name="api_vehicule_liste")
  931.      *
  932.      * @param VehiculeRepository $VehiculeRepository
  933.      * @param Request $request
  934.      * @param CaractVehiculeRepository $CaractVehiculeRepository
  935.      * @param OptionveloRepository $OptionveloRepository
  936.      * @param DevisTempRepository $DevisTempRepository
  937.      * @param GarantiesRepository $GarantiesRepository
  938.      * @param ReductionRepository $ReductionRepository
  939.      * @param CategorieOptionRepository $CategorieOptionRepository
  940.      * @param VersionVehiculesRepository $VersionVehiculesRepository
  941.      * @param EntityManagerInterface $manager
  942.      * @param CategorieVehiculeRepository $CategorieVehiculeRepository
  943.      * @param DefoptionRepository $DefoptionRepository
  944.      * @return void
  945.      */
  946.     public function api_vehicule_liste(VehiculeRepository $VehiculeRepositoryRequest $requestCaractVehiculeRepository $CaractVehiculeRepositoryOptionveloRepository $OptionveloRepositoryDevisTempRepository $DevisTempRepositoryGarantiesRepository $GarantiesRepositoryReductionRepository $ReductionRepositoryCategorieOptionRepository $CategorieOptionRepositoryVersionVehiculesRepository $VersionVehiculesRepositoryEntityManagerInterface $managerCategorieVehiculeRepository $CategorieVehiculeRepositoryDefoptionRepository $DefoptionRepositoryCouleursRepository $CouleursRepository)
  947.     {
  948.         //  dd( $request->request );
  949.         $location $request->request->get('location');
  950.         $achat $request->request->get('achat');
  951.         if ($location == 'false') {
  952.             $cat 'Achat';
  953.         } else {
  954.             $cat 'Location';
  955.         }
  956.         $ville $request->request->get('ville');
  957.         $vehicule_tous $request->request->get('vehicule_tous');
  958.         $vehicule_triporteur $request->request->get('vehicule_triporteur');
  959.         $vehicule_chariot $request->request->get('vehicule_chariot');
  960.         $vehicule_cargo $request->request->get('vehicule_cargo');
  961.         $vehicule_remorque $request->request->get('vehicule_remorque');
  962.         $vehicule_rosalie $request->request->get('vehicule_rosalie');
  963.         $vehicule_velocaleche $request->request->get('vehicule_velocaleche');
  964.         $vehicule_velovoiture $request->request->get('vehicule_velovoiture');
  965.         $vehicule_velotaxi $request->request->get('vehicule_velotaxi');
  966.         $vehicule_velo $request->request->get('vehicule_velo');
  967.         $vehicule_quadriporteur $request->request->get('vehicule_quadriporteur');
  968.         $vehicule_triporteurenfant $request->request->get('vehicule_triporteurenfant');
  969.         $vehicule_tandems $request->request->get('vehicule_tandems');
  970.         $vehicule_triporteurcollecte $request->request->get('vehicule_triporteurcollecte');
  971.         $start intval($request->request->get('start'));
  972.         $startmore intval($request->request->get('startmore'));
  973.         $filtre_assistance_elect_sans $request->request->get('filtre_assistance_elect_sans');
  974.         $filtre_assistance_elect_avec $request->request->get('filtre_assistance_elect_avec');
  975.         $filtre_coqueprotect_sans $request->request->get('filtre_coqueprotect_sans');
  976.         $filtre_coqueprotect_avec $request->request->get('filtre_coqueprotect_avec');
  977.         $filtre_conservation_iso $request->request->get('filtre_conservation_iso');
  978.         $filtre_conservation_froid_positif $request->request->get('filtre_conservation_froid_positif');
  979.         $filtre_conservation_froid_negatif $request->request->get('filtre_conservation_froid_negatif');
  980.         $filtre_conservation_avec_frigo $request->request->get('filtre_conservation_avec_frigo');
  981.         $filtre_conservation_deuxcompartiments $request->request->get('filtre_conservation_deuxcompartiments');
  982.         $filtre_conservation_froid_iso $request->request->get('filtre_conservation_froid_iso');
  983.         $filtre_conservation_avec_frigo_70 $request->request->get('filtre_conservation_avec_frigo_70');
  984.         $filtre_conservation_avec_frigo_105 $request->request->get('filtre_conservation_avec_frigo_105');
  985.         $filtre_conservation_iso_60 $request->request->get('filtre_conservation_iso_60');
  986.         $filtre_conservation_avec_glace_77 $request->request->get('filtre_conservation_avec_glace_77');
  987.         $filtre_conservation_spe_mariage $request->request->get('filtre_conservation_spe_mariage');
  988.         $filtre_conservation_spe_tournage $request->request->get('filtre_conservation_spe_tournage');
  989.         $filtre_comptoir $request->request->get('filtre_comptoir');
  990.         $filtre_mobilitereduite $request->request->get('filtre_mobilitereduite');
  991.         $filtre_CompatibleRemorque $request->request->get('filtre_CompatibleRemorque');
  992.         $filtre_volume_min intval($request->request->get('filtre_volume_min'));
  993.         $filtre_volume_max intval($request->request->get('filtre_volume_max'));
  994.         $filtre_largeur_min intval($request->request->get('filtre_largeur_min'));
  995.         $filtre_largeur_max intval($request->request->get('filtre_largeur_max'));
  996.         $filtre_longueur_min intval($request->request->get('filtre_longueur_min'));
  997.         $filtre_longueur_max intval($request->request->get('filtre_longueur_max'));
  998.         $filtre_hauteur_min intval($request->request->get('filtre_hauteur_min'));
  999.         $filtre_hauteur_max intval($request->request->get('filtre_hauteur_max'));
  1000.         $filtre_Surfacept_min intval($request->request->get('filtre_Surfacept_min'));
  1001.         $filtre_Surfacept_max intval($request->request->get('filtre_Surfacept_max'));
  1002.         $filtre_surface_min intval($request->request->get('filtre_surface_min'));
  1003.         $filtre_surface_max intval($request->request->get('filtre_surface_max'));
  1004.         $prix_min intval($request->request->get('prix_min'));
  1005.         $prix_max intval($request->request->get('prix_max'));
  1006.         $filtre_neuf $request->request->get('filtre_neuf');
  1007.         $filtre_occasion $request->request->get('filtre_occasion');
  1008.         $colorsels $request->request->get('colorsel');
  1009.         if( is_array$colorsels) ){
  1010.             if (is_numeric($colorsels)) {
  1011.                 $colorsel[] = (int) $colorsels;
  1012.             } else {
  1013.                 $colorsel[] = $colorsels;
  1014.             }
  1015.         }else{
  1016.             $colorsels str_replace("["""$colorsels);
  1017.             $colorsels str_replace("]"""$colorsels);
  1018.             $colorsel array_map('intval'explode(','$colorsels ));
  1019.         }
  1020.         $colorcadresels $request->request->get('colorcadresel');
  1021.         if( is_array$colorcadresels) ){
  1022.             if (is_numeric($colorcadresels)) {
  1023.                 $colorcadresel[] = (int) $colorcadresels;
  1024.             } else {
  1025.                 $colorcadresel[] = $colorcadresels;
  1026.             }
  1027.         }else{
  1028.             $colorcadresels str_replace("["""$colorcadresels);
  1029.             $colorcadresels str_replace("]"""$colorcadresels);
  1030.             $colorcadresel array_map('intval'explode(','$colorcadresels ));
  1031.         }
  1032.         $filtre_nom $request->request->get('filtre_nom');
  1033.         $isfavoris $request->request->get('isfavoris');
  1034.         $isfavoris str_replace("["""$isfavoris);
  1035.         $isfavoris str_replace("]"""$isfavoris);
  1036.         $isfavoris explode(","$isfavoris);
  1037.         //  dd( $filtre_assistance_elect_sans. ' '. $filtre_assistance_elect_avec );
  1038.         $filter 'v.cat LIKE :cat';
  1039.         $filtelect = ['cat' => '%' $cat '%'];
  1040.         if ($filtre_assistance_elect_sans == 'true') {
  1041.             $filter .= ' AND v.assistElect = :elect';
  1042.             $filtelect['elect'] = '0';
  1043.         }
  1044.         if ($filtre_assistance_elect_avec == 'true') {
  1045.             $filter .= ' AND v.assistElect = :elect';
  1046.             $filtelect['elect'] = '1';
  1047.         }
  1048.         if ($filtre_coqueprotect_avec == 'true') {
  1049.             $filter .= ' AND v.coque = :coque';
  1050.             $filtelect['coque'] = '1';
  1051.         }
  1052.         if ($filtre_coqueprotect_sans == 'true') {
  1053.             $filter .= ' AND v.coque = :coque';
  1054.             $filtelect['coque'] = '0';
  1055.         }
  1056.         if ($filtre_conservation_iso == 'true') {
  1057.             $filter .= ' AND ( ';
  1058.             $filter .= ' v.Isotherme = :Isotherme';
  1059.             $filtelect['Isotherme'] = '1';
  1060.         }
  1061.         if ($filtre_conservation_froid_positif == 'true') {
  1062.             if ($filtre_conservation_iso != 'true') {
  1063.                 $filter .= ' AND ( ';
  1064.             } else {
  1065.                 $filter .= ' OR ';
  1066.             }
  1067.             $filter .= ' v.froidPositif = :froidPositif';
  1068.             $filtelect['froidPositif'] = '1';
  1069.         }
  1070.         if ($filtre_conservation_froid_negatif == 'true') {
  1071.             if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true') {
  1072.                 $filter .= ' AND ( ';
  1073.             } else {
  1074.                 $filter .= ' OR ';
  1075.             }
  1076.             $filter .= ' v.froidNegatif = :froidNegatif';
  1077.             $filtelect['froidNegatif'] = '1';
  1078.         }
  1079.         if ($filtre_conservation_avec_frigo == 'true') {
  1080.             if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true') {
  1081.                 $filter .= ' AND ( ';
  1082.             } else {
  1083.                 $filter .= ' OR ';
  1084.             }
  1085.             $filter .= ' v.frigo40l = :frigo40l';
  1086.             $filtelect['frigo40l'] = '1';
  1087.         }
  1088.         if ($filtre_conservation_deuxcompartiments == 'true') {
  1089.             if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true') {
  1090.                 $filter .= ' AND ( ';
  1091.             } else {
  1092.                 $filter .= ' OR ';
  1093.             }
  1094.             $filter .= ' v.compartimentposinega = :compartimentposinega';
  1095.             $filtelect['compartimentposinega'] = '1';
  1096.         }
  1097.         if ($filtre_conservation_froid_iso == 'true') {
  1098.             if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true') {
  1099.                 $filter .= ' AND ( ';
  1100.             } else {
  1101.                 $filter .= ' OR ';
  1102.             }
  1103.             $filter .= ' v.compartimentisotherme = :compartimentisotherme';
  1104.             $filtelect['compartimentisotherme'] = '1';
  1105.         }
  1106.         if ($filtre_conservation_avec_frigo_70 == 'true') {
  1107.             if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true' && $filtre_conservation_froid_iso != 'true') {
  1108.                 $filter .= ' AND ( ';
  1109.             } else {
  1110.                 $filter .= ' OR ';
  1111.             }
  1112.             $filter .= ' v.frigo70l = :frigo70l';
  1113.             $filtelect['frigo70l'] = '1';
  1114.         }
  1115.         if ($filtre_conservation_avec_frigo_105 == 'true') {
  1116.             if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true' && $filtre_conservation_froid_iso != 'true' && $filtre_conservation_avec_frigo_70 != 'true') {
  1117.                 $filter .= ' AND ( ';
  1118.             } else {
  1119.                 $filter .= ' OR ';
  1120.             }
  1121.             $filter .= ' v.frigo105l = :frigo105l';
  1122.             $filtelect['frigo105l'] = '1';
  1123.         }
  1124.         if ($filtre_conservation_avec_glace_77 == 'true') {
  1125.             if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true' && $filtre_conservation_froid_iso != 'true' && $filtre_conservation_avec_frigo_70 != 'true' && $filtre_conservation_avec_frigo_105 != 'true') {
  1126.                 $filter .= ' AND ( ';
  1127.             } else {
  1128.                 $filter .= ' OR ';
  1129.             }
  1130.             $filter .= ' v.iso77l = :iso77l';
  1131.             $filtelect['iso77l'] = '1';
  1132.         }
  1133.         if ($filtre_conservation_iso_60 == 'true') {
  1134.             if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true' && $filtre_conservation_froid_iso != 'true' && $filtre_conservation_avec_frigo_70 != 'true' && $filtre_conservation_avec_frigo_105 != 'true' && $filtre_conservation_avec_glace_77 != 'true') {
  1135.                 $filter .= ' AND ( ';
  1136.             } else {
  1137.                 $filter .= ' OR ';
  1138.             }
  1139.             $filter .= ' v.iso60l = :iso60l';
  1140.             $filtelect['iso60l'] = '1';
  1141.         }
  1142.         if ($filtre_conservation_iso == 'true' || $filtre_conservation_froid_positif == 'true' || $filtre_conservation_froid_negatif == 'true' || $filtre_conservation_avec_frigo == 'true' || $filtre_conservation_deuxcompartiments == 'true' || $filtre_conservation_froid_iso == 'true' || $filtre_conservation_avec_frigo_70 == 'true' || $filtre_conservation_avec_frigo_105 == 'true' || $filtre_conservation_avec_glace_77 == 'true' || $filtre_conservation_iso_60 == 'true') {
  1143.             $filter .= ' ) ';
  1144.         }
  1145.         if ($filtre_conservation_spe_mariage == 'true') {
  1146.             $filter .= ' AND v.mariage = :mariage';
  1147.             $filtelect['mariage'] = '1';
  1148.         }
  1149.         if ($filtre_conservation_spe_tournage == 'true') {
  1150.             $filter .= ' AND v.tournage = :tournage';
  1151.             $filtelect['tournage'] = '1';
  1152.         }
  1153.         if ($filtre_comptoir == 'true') {
  1154.             $filter .= ' AND v.Comptoire = :Comptoire';
  1155.             $filtelect['Comptoire'] = '1';
  1156.         }
  1157.         if ($filtre_CompatibleRemorque == 'true') {
  1158.             $filter .= ' AND v.CompatibleRemorque = :CompatibleRemorque';
  1159.             $filtelect['CompatibleRemorque'] = '1';
  1160.         }
  1161.         if ($filtre_mobilitereduite == 'true') {
  1162.             $filter .= ' AND v.MobiliteReduite = :MobiliteReduite';
  1163.             $filtelect['MobiliteReduite'] = '1';
  1164.         }
  1165.         if ($filtre_nom != '') {
  1166.             $filter .= ' AND v.nom LIKE :nom';
  1167.             $filtelect['nom'] = '%' $filtre_nom '%';
  1168.         }
  1169.         $max_val_filter 2060;
  1170.         $filter .= ' AND v.volume >= :volumemin';
  1171.         $filtelect['volumemin'] = intval($filtre_volume_min);
  1172.         $filter .= ' AND v.volume <= :volumemax';
  1173.         $filtelect['volumemax'] = intval($filtre_volume_max);
  1174.         $filter .= ' AND v.largeur >= :largeurmin';
  1175.         $filtelect['largeurmin'] = intval($filtre_largeur_min);
  1176.         $filter .= ' AND v.largeur <= :largeurmax';
  1177.         $filtelect['largeurmax'] = intval($filtre_largeur_max);
  1178.         $filter .= ' AND v.longueur >= :longueurmin';
  1179.         $filtelect['longueurmin'] = intval($filtre_longueur_min);
  1180.         $filter .= ' AND v.longueur <= :longueurmax';
  1181.         $filtelect['longueurmax'] = intval($filtre_longueur_max);
  1182.         $filter .= ' AND v.hauteur >= :hauteurmin';
  1183.         $filtelect['hauteurmin'] = intval($filtre_hauteur_min);
  1184.         $filter .= ' AND v.hauteur <= :hauteurmax';
  1185.         $filtelect['hauteurmax'] = intval($filtre_hauteur_max);
  1186.         $filter .= ' AND v.Surfacept >= :Surfaceptmin';
  1187.         $filtelect['Surfaceptmin'] = intval($filtre_Surfacept_min);
  1188.         $filter .= ' AND v.Surfacept <= :Surfaceptmax';
  1189.         $filtelect['Surfaceptmax'] = intval($filtre_Surfacept_max);
  1190.         $filter .= ' AND v.surface >= :surfacemin';
  1191.         $filtelect['surfacemin'] = intval($filtre_surface_min);
  1192.         $filter .= ' AND v.surface <= :surfacemax';
  1193.         $filtelect['surfacemax'] = intval($filtre_surface_max);
  1194.         if( count$colorsel ) > 0){
  1195.             if( $colorsel[0] > ){
  1196.             $filter .= ' AND v.CoulCoque IN (:CoulCoque) ';
  1197.             $filtelect['CoulCoque'] = $colorsel;
  1198.             }
  1199.         }
  1200.         if( count$colorcadresel ) > 0){
  1201.             if( $colorcadresel[0] > ){
  1202.             $filter .= ' AND v.CoulCadre IN (:CoulCadre) ';
  1203.             $filtelect['CoulCadre'] = $colorcadresel;
  1204.             }
  1205.         }
  1206.  
  1207.         if ($cat == 'Achat') {
  1208.             if ($prix_min != '') {
  1209.                 $filter .= ' AND ( v.prix >= :prix_min';
  1210.                 $filter .= ' OR v.prixoccas >= :prix_min )';
  1211.                 $filtelect['prix_min'] = intval($prix_min);
  1212.             }
  1213.             if ($prix_max != '' && $prix_max 0) {
  1214.                 $filter .= ' AND ( v.prix <= :prix_max';
  1215.                 $filter .= ' OR v.prixoccas <= :prix_max )';
  1216.                 $filtelect['prix_max'] = intval($prix_max);
  1217.             }
  1218.             if ($filtre_neuf == 'true' && $filtre_occasion == 'true') {
  1219.                 $filter .= ' AND ( v.prix > :neuf';
  1220.                 $filter .= ' OR v.prixoccas > :neuf )';
  1221.                 $filtelect['neuf'] = 0;
  1222.             } else if ($filtre_neuf == 'false' && $filtre_occasion == 'true') {
  1223.                 $filter .= ' AND v.Nb_occasion > :nb_occasion ';
  1224.                 $filtelect['nb_occasion'] = 0;
  1225.             } else {
  1226.                 $filter .= ' AND  v.prix > :neuf';
  1227.                 $filtelect['neuf'] = 0;
  1228.             }
  1229.             // $filtre_neuf ;
  1230.             //  $filtre_occasion ;
  1231.         }
  1232.         //  dd( $filtre_neuf );
  1233.         $limit 6;
  1234.         $offset 5;
  1235.         $lisfilters = ['1#assistElect''0#assistElect''1#coque''0#coque''1#Isotherme''1#froidPositif''1#froidNegatif''1#frigo40l''1#compartimentposinega''1#compartimentisotherme''1#frigo70l''1#frigo105l''1#iso77l''1#mariage''1#tournage''1#iso60l''1#MobiliteReduite''1#Comptoire''1#CompatibleRemorque'];
  1236.         $infofiltres = [];
  1237.         $VersionVehicules $VersionVehiculesRepository->findBy(
  1238.             array('Agence' => $ville)
  1239.         );
  1240.         $listver = [];
  1241.         foreach ($VersionVehicules as $VersionVehicule) {
  1242.             if (!in_array($VersionVehicule->getVehicule(), $listver)) {
  1243.                 $listver[] = $VersionVehicule->getVehicule();
  1244.             }
  1245.         }
  1246.         if ($cat == 'Achat') {
  1247.             $listneuf $VehiculeRepository->createQueryBuilder('u')
  1248.                 ->where('u.prix > :prix')
  1249.                 ->andWhere('u.cat LIKE :cat')
  1250.                 ->setParameters(['prix' => 0'cat' => '%' $cat '%'])
  1251.                 ->select('u')
  1252.                 ->getQuery()
  1253.                 ->getResult();
  1254.             foreach ($listneuf as $listnf) {
  1255.                 if (!in_array($listnf->getId(), $listver)) {
  1256.                     $listver[] = $listnf->getId();
  1257.                 }
  1258.             }
  1259.         }
  1260.         if (count($isfavoris) > && $start == 0) {
  1261.             $favlist = [];
  1262.             foreach ($isfavoris as $isfavori) {
  1263.                 if (in_array($isfavori$listver)) {
  1264.                     array_push($favlist$isfavori);
  1265.                     unset($listver[array_search($isfavori$listver)]);
  1266.                 }
  1267.             }
  1268.             $favoris $VehiculeRepository->createQueryBuilder('v')
  1269.                 ->where('v.cat LIKE :cat')
  1270.                 ->andWhere('v.id IN (:list)')
  1271.                 ->setParameter('cat''%' $cat '%')
  1272.                 ->setParameter('list'$favlist)
  1273.                 ->leftJoin('v.Categorie''st')
  1274.                 ->orderBy('st.position, v.position''ASC')
  1275.                 ->getQuery()
  1276.                 ->getResult();
  1277.         } else if (count($isfavoris) > && $start != 0) {
  1278.             $start $start count($isfavoris);
  1279.             $favoris = [];
  1280.         } else {
  1281.             $favoris = [];
  1282.         }
  1283.         foreach ($lisfilters as $lisfilter) {
  1284.             $filter_base 'u.cat LIKE :cat';
  1285.             $filtelect_base = ['cat' => '%' $cat '%'];
  1286.             $lisfilter_name $lisfilter;
  1287.             $lisfilter explode('#'$lisfilter);
  1288.             $filter_base .= ' AND u.' $lisfilter[1] . ' = :' $lisfilter[1];
  1289.             $filtelect_base[$lisfilter[1]] = $lisfilter[0];
  1290.             /* $info = $VehiculeRepository->createQueryBuilder('u')
  1291.              ->where( $filter_base )
  1292.              ->setParameters( $filtelect_base )
  1293.              ->select('count(u.id)')
  1294.              ->getQuery()
  1295.              ->getSingleScalarResult();*/
  1296.             $infos $VehiculeRepository->createQueryBuilder('u')
  1297.                 ->where($filter_base)
  1298.                 ->setParameters($filtelect_base)
  1299.                 ->select(' u')
  1300.                 ->getQuery()
  1301.                 ->getResult();
  1302.             $nbvehic 0;
  1303.             foreach ($infos as $info) {
  1304.                 if ($cat == 'Achat') {
  1305.                     if ($info->getPrix() != null && $info->getPrix() != '0') {
  1306.                         $nbvehic $nbvehic 1;
  1307.                     }
  1308.                     $nbvehic $nbvehic $info->getNbOccasion();
  1309.                 } else {
  1310.                     $nbvehic $nbvehic $info->getNbVehicules();
  1311.                 }
  1312.             }
  1313.             $infofiltre = array('nom' => $lisfilter_name'count' => $nbvehic);
  1314.             $infofiltres[] = $infofiltre;
  1315.         }
  1316.         $listcats = [1210161511131417181920212223];
  1317.         foreach ($listcats as $lisfilter) {
  1318.             $nbvehic 0;
  1319.             $filter_base 'u.cat LIKE :cat';
  1320.             $filtelect_base = ['cat' => '%' $cat '%'];
  1321.             $filter_base .= ' AND u.Categorie = :searchTerm';
  1322.             $filtelect_base['searchTerm'] = $lisfilter;
  1323.             $infos $VehiculeRepository->createQueryBuilder('u')
  1324.                 ->where($filter_base)
  1325.                 ->setParameters($filtelect_base)
  1326.                 ->select(' u ')
  1327.                 ->getQuery()
  1328.                 ->getResult();
  1329.             foreach ($infos as $info) {
  1330.                 if ($cat == 'Achat') {
  1331.                     if ($info->getPrix() != null && $info->getPrix() != '0') {
  1332.                         $nbvehic $nbvehic 1;
  1333.                     }
  1334.                     $nbvehic $nbvehic $info->getNbOccasion();
  1335.                 } else {
  1336.                     $nbvehic $nbvehic $info->getNbVehicules();
  1337.                 }
  1338.             }
  1339.             $infofiltre = array('nom' => $lisfilter'count' => count($infos), 'nbvehic' => $nbvehic);
  1340.             $infofiltres[] = $infofiltre;
  1341.         }
  1342.         /*
  1343.         $entities = [ ... ];
  1344.         $qb->andWhere('entity IN (:list)')
  1345.         ->setParameter('list', $entities);
  1346.         */
  1347.         if ($vehicule_tous == 'true') {
  1348.             if (count($filtelect) >= 6) {
  1349.                 $listevehicules $VehiculeRepository->createQueryBuilder('v')
  1350.                     ->addSelect('st')
  1351.                     ->where($filter)
  1352.                     ->andWhere('v.id IN (:list)')
  1353.                     ->setParameters($filtelect)
  1354.                     ->setParameter('list'$listver)
  1355.                     ->leftJoin('v.Categorie''st')
  1356.                     ->orderBy('st.position, v.position''ASC')
  1357.                     ->setFirstResult($start)
  1358.                     ->setMaxResults($limit)
  1359.                     ->getQuery()
  1360.                     ->getResult();
  1361.             } else {
  1362.                 $listevehicules $VehiculeRepository->createQueryBuilder('v')
  1363.                     ->addSelect('st')
  1364.                     ->where('v.cat LIKE :cat')
  1365.                     ->andWhere('v.id IN (:list)')
  1366.                     ->setParameter('cat''%' $cat '%')
  1367.                     ->setParameter('list'$listver)
  1368.                     ->leftJoin('v.Categorie''st')
  1369.                     ->orderBy('st.position, v.position''ASC')
  1370.                     ->setFirstResult($start)
  1371.                     ->setMaxResults($limit)
  1372.                     ->getQuery()
  1373.                     ->getResult();
  1374.             }
  1375.         } else {
  1376.             $searchTerm '';
  1377.             $searchTerm2 '';
  1378.             $searchTerm3 '';
  1379.             $searchTerm4 '';
  1380.             $searchTerm5 '';
  1381.             $searchTerm6 '';
  1382.             $searchTerm7 '';
  1383.             $searchTerm8 '';
  1384.             $searchTerm9 '';
  1385.             $searchTerm10 '';
  1386.             $searchTerm11 '';
  1387.             $searchTerm12 '';
  1388.             $searchTerm13 '';
  1389.             if ($vehicule_triporteur == 'true') {
  1390.                 $searchTerm 12;
  1391.             }
  1392.             if ($vehicule_chariot == 'true') {
  1393.                 $searchTerm2 10;
  1394.             }
  1395.             if ($vehicule_cargo == 'true') {
  1396.                 $searchTerm3 16;
  1397.             }
  1398.             if ($vehicule_remorque == 'true') {
  1399.                 $searchTerm4 15;
  1400.             }
  1401.             if ($vehicule_rosalie == 'true') {
  1402.                 $searchTerm5 11;
  1403.             }
  1404.             if ($vehicule_velotaxi == 'true') {
  1405.                 $searchTerm6 13;
  1406.             }
  1407.             if ($vehicule_velo == 'true') {
  1408.                 $searchTerm7 14;
  1409.             }
  1410.             if ($vehicule_quadriporteur == 'true') {
  1411.                 $searchTerm8 17;
  1412.             }
  1413.             if ($vehicule_triporteurenfant == 'true') {
  1414.                 $searchTerm9 20;
  1415.             }
  1416.             if ($vehicule_tandems == 'true') {
  1417.                 $searchTerm10 21;
  1418.             }
  1419.             if ($vehicule_velocaleche == 'true') {
  1420.                 $searchTerm11 22;
  1421.             }
  1422.             if ($vehicule_velovoiture == 'true') {
  1423.                 $searchTerm12 23;
  1424.             }
  1425.             if ($vehicule_triporteurcollecte == 'true') {
  1426.                 $searchTerm13 19;
  1427.             }
  1428.             if (count($filtelect) >= 2) {
  1429.                 $listevehicules $VehiculeRepository->createQueryBuilder('v')
  1430.                     ->addSelect('st')
  1431.                     ->andWhere($filter ' AND v.Categorie = :searchTerm')
  1432.                     ->orWhere($filter ' AND v.Categorie = :searchTerm2')
  1433.                     ->orWhere($filter ' AND v.Categorie = :searchTerm3')
  1434.                     ->orWhere($filter ' AND v.Categorie = :searchTerm4')
  1435.                     ->orWhere($filter ' AND v.Categorie = :searchTerm5')
  1436.                     ->orWhere($filter ' AND v.Categorie = :searchTerm6')
  1437.                     ->orWhere($filter ' AND v.Categorie = :searchTerm7')
  1438.                     ->orWhere($filter ' AND v.Categorie = :searchTerm8')
  1439.                     ->orWhere($filter ' AND v.Categorie = :searchTerm9')
  1440.                     ->orWhere($filter ' AND v.Categorie = :searchTerm10')
  1441.                     ->orWhere($filter ' AND v.Categorie = :searchTerm11')
  1442.                     ->orWhere($filter ' AND v.Categorie = :searchTerm12')
  1443.                     ->orWhere($filter ' AND v.Categorie = :searchTerm13')
  1444.                     ->andWhere('v.id IN (:list)')
  1445.                     ->setParameters($filtelect)
  1446.                     ->setParameter('searchTerm'$searchTerm)
  1447.                     ->setParameter('searchTerm2'$searchTerm2)
  1448.                     ->setParameter('searchTerm3'$searchTerm3)
  1449.                     ->setParameter('searchTerm4'$searchTerm4)
  1450.                     ->setParameter('searchTerm5'$searchTerm5)
  1451.                     ->setParameter('searchTerm6'$searchTerm6)
  1452.                     ->setParameter('searchTerm7'$searchTerm7)
  1453.                     ->setParameter('searchTerm8'$searchTerm8)
  1454.                     ->setParameter('searchTerm9'$searchTerm9)
  1455.                     ->setParameter('searchTerm10'$searchTerm10)
  1456.                     ->setParameter('searchTerm11'$searchTerm11)
  1457.                     ->setParameter('searchTerm12'$searchTerm12)
  1458.                     ->setParameter('searchTerm13'$searchTerm13)
  1459.                     ->setParameter('list'$listver)
  1460.                     ->leftJoin('v.Categorie''st')
  1461.                     ->orderBy('st.position, v.position''ASC')
  1462.                     ->setFirstResult($start)
  1463.                     ->setMaxResults($limit)
  1464.                     ->getQuery()
  1465.                     ->getResult();
  1466.             } else {
  1467.                 $listevehicules $VehiculeRepository->createQueryBuilder('v')
  1468.                     ->addSelect('st')
  1469.                     ->andWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm')
  1470.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm2')
  1471.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm3')
  1472.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm4')
  1473.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm5')
  1474.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm6')
  1475.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm7')
  1476.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm8')
  1477.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm9')
  1478.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm10')
  1479.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm11')
  1480.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm12')
  1481.                     ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm13')
  1482.                     ->andWhere('v.id IN (:list)')
  1483.                     ->setParameter('cat''%' $cat '%')
  1484.                     ->setParameter('searchTerm'$searchTerm)
  1485.                     ->setParameter('searchTerm2'$searchTerm2)
  1486.                     ->setParameter('searchTerm3'$searchTerm3)
  1487.                     ->setParameter('searchTerm4'$searchTerm4)
  1488.                     ->setParameter('searchTerm5'$searchTerm5)
  1489.                     ->setParameter('searchTerm6'$searchTerm6)
  1490.                     ->setParameter('searchTerm7'$searchTerm7)
  1491.                     ->setParameter('searchTerm8'$searchTerm8)
  1492.                     ->setParameter('searchTerm9'$searchTerm9)
  1493.                     ->setParameter('searchTerm10'$searchTerm10)
  1494.                     ->setParameter('searchTerm11'$searchTerm11)
  1495.                     ->setParameter('searchTerm12'$searchTerm12)
  1496.                     ->setParameter('searchTerm13'$searchTerm13)
  1497.                     ->setParameter('list'$listver)
  1498.                     ->leftJoin('v.Categorie''st')
  1499.                     ->orderBy('st.position, v.position''ASC')
  1500.                     ->setFirstResult($start)
  1501.                     ->setMaxResults($limit)
  1502.                     ->getQuery()
  1503.                     ->getResult();
  1504.             }
  1505.         }
  1506.         $CategorieVehicules $CategorieVehiculeRepository->findBy(
  1507.             array(),
  1508.             array('position' => 'ASC')
  1509.         );
  1510.         $listevehiculess = [];
  1511.         for ($i 0$i count($listevehicules); $i++) {
  1512.             $countve 0;
  1513.             $countvepi 0;
  1514.             if ($cat == 'Achat') {
  1515.                 if ($listevehicules[$i]->getPrix() > 0) {
  1516.                     $countve $countve 1;
  1517.                 }
  1518.             }
  1519.             foreach ($VersionVehicules as $VersionVehicule) {
  1520.                 if ($VersionVehicule->getDisponible() == true) {
  1521.                     if ($VersionVehicule->getVehicule() == $listevehicules[$i]->getId()) {
  1522.                         if ($VersionVehicule->getPilote() == true) {
  1523.                             $countvepi $countvepi 1;
  1524.                         } else {
  1525.                             $countve $countve 1;
  1526.                         }
  1527.                     }
  1528.                 }
  1529.             }
  1530.             if ($countvepi 0) {
  1531.                 $vlis = clone $listevehicules[$i];
  1532.                 $manager->detach($vlis);
  1533.                 $vlis->setId($listevehicules[$i]->getId() + 1000000);
  1534.                 $vlis->setPilote(true);
  1535.                 $vlis->setNbVehicules($countvepi);
  1536.                 $listevehiculess[] = $vlis;
  1537.             }
  1538.             if ($countve 0) {
  1539.                 $listevehicules[$i]->setPilote(false);
  1540.                 $listevehicules[$i]->setNbVehicules($countve);
  1541.                 $listevehiculess[] = $listevehicules[$i];
  1542.             }
  1543.         }
  1544.         $VersionVehiculesmores $VersionVehiculesRepository->createQueryBuilder('t')
  1545.             ->where('t.Agence != :agence')
  1546.             ->setParameter('agence'$ville)
  1547.             ->getQuery()
  1548.             ->getResult();
  1549.         $listvermore = [];
  1550.         foreach ($VersionVehiculesmores as $VersionVehiculesmore) {
  1551.             if (!in_array($VersionVehiculesmore->getVehicule(), $listvermore)) {
  1552.                 $listvermore[] = $VersionVehiculesmore->getVehicule();
  1553.             }
  1554.         }
  1555.         $listevehiculesmores = [];
  1556.         if (count($listevehicules) < 6) {
  1557.             if ($vehicule_tous == 'true') {
  1558.                 if (count($filtelect) >= 2) {
  1559.                     $listevehiculesmores $VehiculeRepository->createQueryBuilder('v')
  1560.                         ->addSelect('st')
  1561.                         ->where($filter)
  1562.                         ->andWhere('v.id IN (:list)')
  1563.                         ->setParameters($filtelect)
  1564.                         ->setParameter('list'$listvermore)
  1565.                         ->leftJoin('v.Categorie''st')
  1566.                         ->orderBy('st.position, v.position''ASC')
  1567.                         ->setFirstResult($startmore)
  1568.                         ->setMaxResults($limit)
  1569.                         ->getQuery()
  1570.                         ->getResult();
  1571.                 } else {
  1572.                     $listevehiculesmores $VehiculeRepository->createQueryBuilder('v')
  1573.                         ->addSelect('st')
  1574.                         ->where('v.cat LIKE :cat')
  1575.                         ->andWhere('v.id IN (:list)')
  1576.                         ->setParameter('cat''%' $cat '%')
  1577.                         ->setParameter('list'$listvermore)
  1578.                         ->leftJoin('v.Categorie''st')
  1579.                         ->orderBy('st.position, v.position''ASC')
  1580.                         ->setFirstResult($startmore)
  1581.                         ->setMaxResults($limit)
  1582.                         ->getQuery()
  1583.                         ->getResult();
  1584.                 }
  1585.             } else {
  1586.                 $searchTerm '';
  1587.                 $searchTerm2 '';
  1588.                 $searchTerm3 '';
  1589.                 $searchTerm4 '';
  1590.                 $searchTerm5 '';
  1591.                 $searchTerm6 '';
  1592.                 $searchTerm7 '';
  1593.                 $searchTerm8 '';
  1594.                 $searchTerm9 '';
  1595.                 $searchTerm10 '';
  1596.                 $searchTerm11 '';
  1597.                 $searchTerm12 '';
  1598.                 $searchTerm13 '';
  1599.                 if ($vehicule_triporteur == 'true') {
  1600.                     $searchTerm 12;
  1601.                 }
  1602.                 if ($vehicule_chariot == 'true') {
  1603.                     $searchTerm2 10;
  1604.                 }
  1605.                 if ($vehicule_cargo == 'true') {
  1606.                     $searchTerm3 16;
  1607.                 }
  1608.                 if ($vehicule_remorque == 'true') {
  1609.                     $searchTerm4 15;
  1610.                 }
  1611.                 if ($vehicule_rosalie == 'true') {
  1612.                     $searchTerm5 11;
  1613.                 }
  1614.                 if ($vehicule_velotaxi == 'true') {
  1615.                     $searchTerm6 13;
  1616.                 }
  1617.                 if ($vehicule_velo == 'true') {
  1618.                     $searchTerm7 14;
  1619.                 }
  1620.                 if ($vehicule_quadriporteur == 'true') {
  1621.                     $searchTerm8 17;
  1622.                 }
  1623.                 if ($vehicule_triporteurenfant == 'true') {
  1624.                     $searchTerm9 20;
  1625.                 }
  1626.                 if ($vehicule_tandems == 'true') {
  1627.                     $searchTerm10 21;
  1628.                 }
  1629.                 if ($vehicule_velocaleche == 'true') {
  1630.                     $searchTerm11 22;
  1631.                 }
  1632.                 if ($vehicule_velovoiture == 'true') {
  1633.                     $searchTerm12 23;
  1634.                 }
  1635.                 if ($vehicule_triporteurcollecte == 'true') {
  1636.                     $searchTerm13 19;
  1637.                 }
  1638.                 if (count($filtelect) >= 2) {
  1639.                     $listevehiculesmores $VehiculeRepository->createQueryBuilder('v')
  1640.                         ->addSelect('st')
  1641.                         ->andWhere($filter ' AND v.Categorie = :searchTerm')
  1642.                         ->orWhere($filter ' AND v.Categorie = :searchTerm2')
  1643.                         ->orWhere($filter ' AND v.Categorie = :searchTerm3')
  1644.                         ->orWhere($filter ' AND v.Categorie = :searchTerm4')
  1645.                         ->orWhere($filter ' AND v.Categorie = :searchTerm5')
  1646.                         ->orWhere($filter ' AND v.Categorie = :searchTerm6')
  1647.                         ->orWhere($filter ' AND v.Categorie = :searchTerm7')
  1648.                         ->orWhere($filter ' AND v.Categorie = :searchTerm8')
  1649.                         ->orWhere($filter ' AND v.Categorie = :searchTerm9')
  1650.                         ->orWhere($filter ' AND v.Categorie = :searchTerm10')
  1651.                         ->orWhere($filter ' AND v.Categorie = :searchTerm11')
  1652.                         ->orWhere($filter ' AND v.Categorie = :searchTerm12')
  1653.                         ->orWhere($filter ' AND v.Categorie = :searchTerm13')
  1654.                         ->andWhere('v.id IN (:list)')
  1655.                         ->setParameters($filtelect)
  1656.                         ->setParameter('searchTerm'$searchTerm)
  1657.                         ->setParameter('searchTerm2'$searchTerm2)
  1658.                         ->setParameter('searchTerm3'$searchTerm3)
  1659.                         ->setParameter('searchTerm4'$searchTerm4)
  1660.                         ->setParameter('searchTerm5'$searchTerm5)
  1661.                         ->setParameter('searchTerm6'$searchTerm6)
  1662.                         ->setParameter('searchTerm7'$searchTerm7)
  1663.                         ->setParameter('searchTerm8'$searchTerm8)
  1664.                         ->setParameter('searchTerm9'$searchTerm9)
  1665.                         ->setParameter('searchTerm10'$searchTerm10)
  1666.                         ->setParameter('searchTerm11'$searchTerm11)
  1667.                         ->setParameter('searchTerm12'$searchTerm12)
  1668.                         ->setParameter('searchTerm13'$searchTerm13)
  1669.                         ->setParameter('list'$listvermore)
  1670.                         ->leftJoin('v.Categorie''st')
  1671.                         ->orderBy('st.position, v.position''ASC')
  1672.                         ->setFirstResult($startmore)
  1673.                         ->setMaxResults($limit)
  1674.                         ->getQuery()
  1675.                         ->getResult();
  1676.                 } else {
  1677.                     $listevehiculesmores $VehiculeRepository->createQueryBuilder('v')
  1678.                         ->addSelect('st')
  1679.                         ->andWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm')
  1680.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm2')
  1681.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm3')
  1682.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm4')
  1683.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm5')
  1684.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm6')
  1685.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm7')
  1686.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm8')
  1687.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm9')
  1688.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm10')
  1689.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm11')
  1690.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm12')
  1691.                         ->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm13')
  1692.                         ->andWhere('v.id IN (:list)')
  1693.                         ->setParameter('cat''%' $cat '%')
  1694.                         ->setParameter('searchTerm'$searchTerm)
  1695.                         ->setParameter('searchTerm2'$searchTerm2)
  1696.                         ->setParameter('searchTerm3'$searchTerm3)
  1697.                         ->setParameter('searchTerm4'$searchTerm4)
  1698.                         ->setParameter('searchTerm5'$searchTerm5)
  1699.                         ->setParameter('searchTerm6'$searchTerm6)
  1700.                         ->setParameter('searchTerm7'$searchTerm7)
  1701.                         ->setParameter('searchTerm8'$searchTerm8)
  1702.                         ->setParameter('searchTerm9'$searchTerm9)
  1703.                         ->setParameter('searchTerm10'$searchTerm10)
  1704.                         ->setParameter('searchTerm11'$searchTerm11)
  1705.                         ->setParameter('searchTerm12'$searchTerm12)
  1706.                         ->setParameter('searchTerm13'$searchTerm13)
  1707.                         ->setParameter('list'$listvermore)
  1708.                         ->leftJoin('v.Categorie''st')
  1709.                         ->orderBy('st.position, v.position''ASC')
  1710.                         ->setFirstResult($startmore)
  1711.                         ->setMaxResults($limit)
  1712.                         ->getQuery()
  1713.                         ->getResult();
  1714.                 }
  1715.                 // dd( $listevehicules );
  1716.             }
  1717.         }
  1718.         $listevehiculesmoress = [];
  1719.         for ($i 0$i count($listevehiculesmores); $i++) {
  1720.             $countve 0;
  1721.             $countvepi 0;
  1722.             foreach ($VersionVehiculesmores as $VersionVehicule) {
  1723.                 // dd( $VersionVehicule->getVehicule() );
  1724.                 if ($VersionVehicule->getVehicule() == $listevehiculesmores[$i]->getId()) {
  1725.                     if ($VersionVehicule->getPilote() == true) {
  1726.                         $countvepi $countvepi 1;
  1727.                     } else {
  1728.                         $countve $countve 1;
  1729.                     }
  1730.                 }
  1731.             }
  1732.             if ($countvepi 0) {
  1733.                 $vlis = clone $listevehiculesmores[$i];
  1734.                 $manager->detach($vlis);
  1735.                 $vlis->setId($listevehiculesmores[$i]->getId() + 1000000);
  1736.                 $vlis->setPilote(true);
  1737.                 $vlis->setNbVehicules($countvepi);
  1738.                 $listevehiculesmoress[] = $vlis;
  1739.             }
  1740.             if ($countve 0) {
  1741.                 $listevehiculesmores[$i]->setPilote(false);
  1742.                 $listevehiculesmores[$i]->setNbVehicules($countve);
  1743.                 $listevehiculesmoress[] = $listevehiculesmores[$i];
  1744.             }
  1745.         }
  1746.         $CaractVehicules $CaractVehiculeRepository->findBy(
  1747.             array(),
  1748.             array('position' => 'ASC')
  1749.         );
  1750.         /*  $listeoption = $OptionveloRepository->findBy(
  1751.               ['typeElem' => $cat],
  1752.               array('position' => 'ASC')
  1753.           ); */
  1754.         $listeoption $OptionveloRepository->findBy(
  1755.             [],
  1756.             array('position' => 'ASC')
  1757.         );
  1758.         $datasele = [];
  1759.         $livreprise '';
  1760.         $employers '';
  1761.         $reduc '';
  1762.         $services '';
  1763.         if ($start == 0) {
  1764.             $devis $request->cookies->get('devis');
  1765.             $selectvehics $DevisTempRepository->findBy(
  1766.                 ['NoDevis' => $devis]
  1767.             );
  1768.             foreach ($selectvehics as $selectvehic) {
  1769.                 $seldata json_decode($selectvehic->getData());
  1770.                 $datasele[] = $selectvehic->getData();
  1771.                 $livreprise $selectvehic->getDataLivraison();
  1772.                 $employers $selectvehic->getDataPersonnel();
  1773.                 $reduc $selectvehic->getDataReduc();
  1774.                 $services $selectvehic->getServices();
  1775.                 if ($seldata) {
  1776.                     $id_vehic $seldata[0]->id;
  1777.                     $testvehic 0;
  1778.                     foreach ($listevehicules as $listevehicule) {
  1779.                         if ($listevehicule->getId() == $id_vehic) {
  1780.                             $testvehic 1;
  1781.                         }
  1782.                     }
  1783.                     if ($testvehic == 0) {
  1784.                         $vehicule $VehiculeRepository->find($id_vehic);
  1785.                         $listevehicules[] = $vehicule;
  1786.                     }
  1787.                 }
  1788.             }
  1789.         }
  1790.         //  dd( $listeoption );
  1791.         $Garanties $GarantiesRepository->findAll();
  1792.         $Catoptions $CategorieOptionRepository->findAll();
  1793.         $Reductions $ReductionRepository->findBy(
  1794.             array(),
  1795.             array('position' => 'ASC')
  1796.         );
  1797.         $Optionsdef $DefoptionRepository->findAll();
  1798.         $CouleursRep $CouleursRepository->findBy(
  1799.             array(),
  1800.             array('position' => 'ASC')
  1801.         );
  1802.         $cadres = [];
  1803.         $coques = [];
  1804.         foreach ($CouleursRep as $Couleur) {
  1805.             $cadre = [];
  1806.             $coque = [];
  1807.             $cadre['couleur'] = $Couleur->getId();
  1808.             $cadre['nom'] = $Couleur->getNom();
  1809.             $cadre['nb'] = $VehiculeRepository->count( ['CoulCadre' => $Couleur->getId()] ) ;
  1810.             $cadres[] = $cadre;
  1811.             $coque['couleur'] = $Couleur->getId();
  1812.             $coque['nom'] = $Couleur->getNom();
  1813.             $coque['nb'] = $VehiculeRepository->count( ['CoulCoque' => $Couleur->getId()] ) ;
  1814.             $coques[] = $coque;
  1815.         } 
  1816.         $response['Couleurs']['cadre'] = $cadres
  1817.         $response['Couleurs']['coque'] = $coques
  1818.  
  1819.         $response['Garanties'] = $Garanties;
  1820.         $response['Reductions'] = $Reductions;
  1821.         $response['infofiltres'] = $infofiltres;
  1822.         $response['listevehicules'] = $listevehiculess;
  1823.         $response['VersionVehicules'] = $VersionVehicules;
  1824.         $response['listevehiculesmores'] = $listevehiculesmoress;
  1825.         $response['VersionVehiculesmores'] = $VersionVehiculesmores;
  1826.         $response['CaractVehicules'] = $CaractVehicules;
  1827.         $response['livreprise'] = $livreprise;
  1828.         $response['cat_vehicule'] = $cat;
  1829.         $response['listeoption'] = $listeoption;
  1830.         $response['datasele'] = $datasele;
  1831.         $response['Optionsdef'] = $Optionsdef;
  1832.         $response['employer'] = $employers;
  1833.         $response['reduc'] = $reduc;
  1834.         $response['services'] = $services;
  1835.         $response['Catoptions'] = $Catoptions;
  1836.         $response['favoris'] = $favoris;
  1837.  
  1838.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  1839.         $normalizers = [new ObjectNormalizer()];
  1840.         $serializer = new Serializer($normalizers$encoders);
  1841.         // Serialize your object in Json
  1842.         $jsonObject $serializer->serialize(
  1843.             $response,
  1844.             'json',
  1845.             [
  1846.                 AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste''listeVehicule'],
  1847.                 'circular_reference_handler' => function ($object) {
  1848.                     return $object->getId();
  1849.                 }
  1850.             ]
  1851.         );
  1852.         $jsonGzip gzencode($jsonObject9);
  1853.         $response = new Response($jsonGzip);
  1854.         $response->headers->set('Content-Encoding''gzip');
  1855.         $response->headers->set('Content-Type''application/json');
  1856.         return $response;
  1857.         return $this->json($jsonObject);
  1858.     }
  1859.     /**
  1860.      * @Route("/api/vehicule_id/", name="api_vehicule_id")
  1861.      *
  1862.      * @param VehiculeRepository $VehiculeRepository
  1863.      * @param Request $request
  1864.      * @param CaractVehiculeRepository $CaractVehiculeRepository
  1865.      * @param OptionveloRepository $OptionveloRepository
  1866.      * @param DevisTempRepository $DevisTempRepository
  1867.      * @param GarantiesRepository $GarantiesRepository
  1868.      * @param ReductionRepository $ReductionRepository
  1869.      * @param CategorieOptionRepository $CategorieOptionRepository
  1870.      * @return void
  1871.      */
  1872.     public function api_vehicule_id(VehiculeRepository $VehiculeRepositoryRequest $requestCaractVehiculeRepository $CaractVehiculeRepositoryOptionveloRepository $OptionveloRepositoryDevisTempRepository $DevisTempRepositoryGarantiesRepository $GarantiesRepositoryReductionRepository $ReductionRepositoryCategorieOptionRepository $CategorieOptionRepository)
  1873.     {
  1874.         //  dd( $request->request );
  1875.         $location $request->request->get('location');
  1876.         $achat $request->request->get('achat');
  1877.         if ($location == 'false') {
  1878.             $cat 'Achat';
  1879.         } else {
  1880.             $cat 'Location';
  1881.         }
  1882.         $id $request->request->get('id');
  1883.         //      dd( $filtre_surface_min );
  1884.         $listevehicules $VehiculeRepository->findBy(
  1885.             ['id' => $id]
  1886.         );
  1887.         $CaractVehicules $CaractVehiculeRepository->findBy(
  1888.             array(),
  1889.             array('position' => 'ASC')
  1890.         );
  1891.         /* $listeoption = $OptionveloRepository->findBy(
  1892.              ['typeElem' => $cat],
  1893.              array('position' => 'ASC')
  1894.          );*/
  1895.         $listeoption $OptionveloRepository->findBy(
  1896.             [],
  1897.             array('position' => 'ASC')
  1898.         );
  1899.         $datasele = [];
  1900.         $livreprise '';
  1901.         $employers '';
  1902.         $reduc '';
  1903.         $services '';
  1904.         $devis $request->cookies->get('devis');
  1905.         $selectvehics $DevisTempRepository->findBy(
  1906.             ['NoDevis' => $devis]
  1907.         );
  1908.         foreach ($selectvehics as $selectvehic) {
  1909.             $seldata json_decode($selectvehic->getData());
  1910.             $datasele[] = $selectvehic->getData();
  1911.             $livreprise $selectvehic->getDataLivraison();
  1912.             $employers $selectvehic->getDataPersonnel();
  1913.             $reduc $selectvehic->getDataReduc();
  1914.             $services $selectvehic->getServices();
  1915.             if ($seldata) {
  1916.                 $id_vehic $seldata[0]->id;
  1917.                 $testvehic 0;
  1918.                 foreach ($listevehicules as $listevehicule) {
  1919.                     if ($listevehicule->getId() == $id_vehic) {
  1920.                         $testvehic 1;
  1921.                     }
  1922.                 }
  1923.                 if ($testvehic == 0) {
  1924.                     $vehicule $VehiculeRepository->find($id_vehic);
  1925.                     $listevehicules[] = $vehicule;
  1926.                 }
  1927.             }
  1928.         }
  1929.         //  dd( $listeoption );
  1930.         $Garanties $GarantiesRepository->findAll();
  1931.         $Catoptions $CategorieOptionRepository->findAll();
  1932.         $Reductions $ReductionRepository->findBy(
  1933.             array(),
  1934.             array('position' => 'ASC')
  1935.         );
  1936.         $response['Garanties'] = $Garanties;
  1937.         $response['Reductions'] = $Reductions;
  1938.         $response['listevehicules'] = $listevehicules;
  1939.         $response['CaractVehicules'] = $CaractVehicules;
  1940.         $response['livreprise'] = $livreprise;
  1941.         $response['cat_vehicule'] = $cat;
  1942.         $response['listeoption'] = $listeoption;
  1943.         $response['datasele'] = $datasele;
  1944.         $response['employer'] = $employers;
  1945.         $response['reduc'] = $reduc;
  1946.         $response['Catoptions'] = $Catoptions;
  1947.         $response['services'] = $services;
  1948.         //   dd( $response );
  1949.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  1950.         $normalizers = [new ObjectNormalizer()];
  1951.         $serializer = new Serializer($normalizers$encoders);
  1952.         // Serialize your object in Json
  1953.         $jsonObject $serializer->serialize(
  1954.             $response,
  1955.             'json',
  1956.             [
  1957.                 AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste''listeVehicule'],
  1958.                 'circular_reference_handler' => function ($object) {
  1959.                     return $object->getId();
  1960.                 }
  1961.             ]
  1962.         );
  1963.         $jsonGzip gzencode($jsonObject9);
  1964.         $response = new Response($jsonGzip);
  1965.         $response->headers->set('Content-Encoding''gzip');
  1966.         $response->headers->set('Content-Type''application/json');
  1967.         return $response;
  1968.     }
  1969.     /**
  1970.      * @Route("/api/add/", name="api_vehicule_add")
  1971.      *
  1972.      * @param Request $request
  1973.      * @param DevisTemp|null $DevisTemp
  1974.      * @param DevisTempRepository $DevisTempRepository
  1975.      * @param EntityManagerInterface $manager
  1976.      * @param DevisSendRepository $DevisSendRepository
  1977.      * @return void
  1978.      */
  1979.     public function api_vehicule_add(Request $requestDevisTemp $DevisTemp nullDevisTempRepository $DevisTempRepositoryEntityManagerInterface $managerDevisSendRepository $DevisSendRepository)
  1980.     {
  1981.         /*  $id_vehicule = $request->request->get('id');
  1982.           $nb_vehicule = $request->request->get('nb');
  1983.           $nbjours_vehicule = $request->request->get('nbjours');
  1984.           $soustot_vehicule = $request->request->get('soustot');
  1985.           $cover_vehicule = $request->request->get('cover');
  1986.           $equip_vehicule = $request->request->get('equip');
  1987.   */
  1988.         function random_3($nbr)
  1989.         {
  1990.             $chn '';
  1991.             for ($i 1$i <= $nbr$i++)
  1992.                 //   $chn .= chr(floor(rand(0, 25)+97));
  1993.                 $chn .= rand(09);
  1994.             return $chn;
  1995.         }
  1996.         function gentest($DevisSendRepository)
  1997.         {
  1998.             $test random_3(6);
  1999.             $testdevis $DevisSendRepository->findBy(
  2000.                 ['NoDevis' => $test]
  2001.             );
  2002.             if (empty($testdevis)) {
  2003.                 return $test;
  2004.             } else {
  2005.                 gentest($DevisSendRepository);
  2006.             }
  2007.         }
  2008.         $datedeb $request->request->get('datedeb');
  2009.         $datefin $request->request->get('datefin');
  2010.         $timedeb strtotime($datedeb);
  2011.         $timefin strtotime($datefin);
  2012.         $Datedeb date('Y-m-d'$timedeb);
  2013.         $Datefin date('Y-m-d'$timefin);
  2014.         //  dd(  $Datedeb );
  2015.         $data_devis $request->request->get('data');
  2016.         $DataLivraison $request->request->get('livreprise');
  2017.         $DataPersonnel $request->request->get('employer');
  2018.         $DataReduc $request->request->get('reduc');
  2019.         $dataServices $request->request->get('services');
  2020.         $devis $request->cookies->get('devis');
  2021.         if (!$DevisTemp) {
  2022.             $DevisTemp = new DevisTemp();
  2023.         }
  2024.         if ($devis) {
  2025.             //  dd( $devis ); 
  2026.             $no_devis $devis;
  2027.             $DevisTemp_array $DevisTempRepository->findBy(
  2028.                 ['NoDevis' => $no_devis]
  2029.             );
  2030.             $DevisTemp $DevisTemp_array[0];
  2031.             $DevisTemp->setDateDeb($Datedeb);
  2032.             $DevisTemp->setDateFin($Datefin);
  2033.             $DevisTemp->setData($data_devis);
  2034.             $DevisTemp->setDataLivraison($DataLivraison);
  2035.             $DevisTemp->setDataPersonnel($DataPersonnel);
  2036.             $DevisTemp->setDataReduc($DataReduc);
  2037.             $DevisTemp->setServices($dataServices);
  2038.             //  dd( $DataPersonnel ); 
  2039.         } else {
  2040.             $no_devis gentest($DevisSendRepository);
  2041.             $DevisTemp->setNoDevis($no_devis);
  2042.             $DevisTemp->setDateDeb($Datedeb);
  2043.             $DevisTemp->setDateFin($Datefin);
  2044.             $DevisTemp->setData($data_devis);
  2045.             $DevisTemp->setDataLivraison($DataLivraison);
  2046.             $DevisTemp->setDataPersonnel($DataPersonnel);
  2047.             $DevisTemp->setDataReduc($DataReduc);
  2048.             $DevisTemp->setServices($dataServices);
  2049.         }
  2050.         $manager->persist($DevisTemp);
  2051.         $manager->flush();
  2052.         $jsonObject = [];
  2053.         $jsonObject['devis'] = $no_devis;
  2054.         $jsonObject \json_encode($jsonObject);
  2055.         $jsonGzip gzencode($jsonObject9);
  2056.         $response = new Response($jsonGzip);
  2057.         $response->headers->set('Content-Encoding''gzip');
  2058.         $response->headers->set('Content-Type''application/json');
  2059.         return $response;
  2060.     }
  2061.     /**
  2062.      * @Route("/api/refresh/", name="api_vehicule_refresh")
  2063.      *
  2064.      * @param Request $request
  2065.      * @param DevisTemp|null $DevisTemp
  2066.      * @param DevisTempRepository $DevisTempRepository
  2067.      * @return void
  2068.      */
  2069.     public function api_vehicule_refresh(Request $requestDevisTemp $DevisTemp nullDevisTempRepository $DevisTempRepository)
  2070.     {
  2071.         $devis $request->cookies->get('devis');
  2072.         if (!$DevisTemp) {
  2073.             $DevisTemp = new DevisTemp();
  2074.         }
  2075.         if ($devis) {
  2076.             //  dd( $devis ); 
  2077.             $no_devis $devis;
  2078.             $DevisTemp_array $DevisTempRepository->findBy(
  2079.                 ['NoDevis' => $no_devis]
  2080.             );
  2081.             if ($DevisTemp_array) {
  2082.                 $DevisTemp $DevisTemp_array[0];
  2083.             }
  2084.         }
  2085.         $jsonObject = [];
  2086.         $jsonObject['devis_data'] = $DevisTemp->getData();
  2087.         ;
  2088.         $jsonObject['livredata'] = $DevisTemp->getDataLivraison();
  2089.         $jsonObject['employer'] = $DevisTemp->getDataPersonnel();
  2090.         $jsonObject['reduc'] = $DevisTemp->getDataReduc();
  2091.         $jsonObject['services'] = $DevisTemp->getServices();
  2092.         $jsonObject \json_encode($jsonObject);
  2093.         $jsonGzip gzencode($jsonObject9);
  2094.         $response = new Response($jsonGzip);
  2095.         $response->headers->set('Content-Encoding''gzip');
  2096.         $response->headers->set('Content-Type''application/json');
  2097.         return $response;
  2098.     }
  2099.     /**
  2100.      * @Route("/api/demandeinfo/", name="api_demandeinfo")
  2101.      *
  2102.      * @param Request $request
  2103.      * @param \Swift_Mailer $mailer
  2104.      * @return void
  2105.      */
  2106.     public function api_demandeinfo(Request $request\Swift_Mailer $mailer)
  2107.     {
  2108.         $demreduc $request->request->all();
  2109.         $message = (new \Swift_Message('Demande d\'information'))
  2110.             ->setFrom($demreduc['form_email'])
  2111.             ->setTo('contact@tripup.fr')
  2112.             ->setBody(
  2113.                 $this->renderView(
  2114.                     // templates/emails/registration.html.twig
  2115.                     'emails/deminfo.html.twig',
  2116.                     [
  2117.                         'demreduc' => $demreduc
  2118.                     ]
  2119.                 ),
  2120.                 'text/html'
  2121.             )
  2122.             // attachement du fichier joins
  2123.             // you can remove the following code if you don't define a text version for your emails
  2124.             ->addPart(
  2125.                 $this->renderView(
  2126.                     // templates/emails/registration.txt.twig
  2127.                     'emails/deminfo.txt.twig',
  2128.                     [
  2129.                         'demreduc' => $demreduc
  2130.                     ]
  2131.                 ),
  2132.                 'text/plain'
  2133.             )
  2134.         ;
  2135.         $mailer->send($message);
  2136.         //find de l'envoi
  2137.         $jsonObject['mail'] = 'ok';
  2138.         $jsonObject \json_encode($jsonObject);
  2139.         $jsonGzip gzencode($jsonObject9);
  2140.         $response = new Response($jsonGzip);
  2141.         $response->headers->set('Content-Encoding''gzip');
  2142.         $response->headers->set('Content-Type''application/json');
  2143.         return $response;
  2144.     }
  2145.     /**
  2146.      * @Route("/api/demandereduc/", name="api_demandereduc")
  2147.      *
  2148.      * @param Request $request
  2149.      * @param \Swift_Mailer $mailer
  2150.      * @return void
  2151.      */
  2152.     public function api_demandereduc(Request $request\Swift_Mailer $mailer)
  2153.     {
  2154.         $demreduc $request->request->all();
  2155.         $message = (new \Swift_Message('Demande de réduction'))
  2156.             ->setFrom($demreduc['form_email'])
  2157.             ->setTo('contact@tripup.fr')
  2158.             ->setBody(
  2159.                 $this->renderView(
  2160.                     // templates/emails/registration.html.twig
  2161.                     'emails/demreduc.html.twig',
  2162.                     [
  2163.                         'demreduc' => $demreduc
  2164.                     ]
  2165.                 ),
  2166.                 'text/html'
  2167.             )
  2168.             // attachement du fichier joins
  2169.             // you can remove the following code if you don't define a text version for your emails
  2170.             ->addPart(
  2171.                 $this->renderView(
  2172.                     // templates/emails/registration.txt.twig
  2173.                     'emails/demreduc.txt.twig',
  2174.                     [
  2175.                         'demreduc' => $demreduc
  2176.                     ]
  2177.                 ),
  2178.                 'text/plain'
  2179.             )
  2180.         ;
  2181.         $mailer->send($message);
  2182.         //find de l'envoi
  2183.         $jsonObject['mail'] = 'ok';
  2184.         $jsonObject \json_encode($jsonObject);
  2185.         $jsonGzip gzencode($jsonObject9);
  2186.         $response = new Response($jsonGzip);
  2187.         $response->headers->set('Content-Encoding''gzip');
  2188.         $response->headers->set('Content-Type''application/json');
  2189.         return $response;
  2190.     }
  2191.     /**
  2192.      * @Route("/api/personnel/", name="api_vehicule_personnel")
  2193.      *
  2194.      * @param PersonnelRepository $PersonnelRepository
  2195.      * @return void
  2196.      */
  2197.     public function api_vehicule_personnel(PersonnelRepository $PersonnelRepository)
  2198.     {
  2199.         $Personnel $PersonnelRepository->findAll();
  2200.         $personnel_list = [];
  2201.         $types = ['PILOTE''HÔTE, HÔTESSE''MECANICIEN''REGISSEUR''PHOTOGRAPHE'];
  2202.         foreach ($types as $type) {
  2203.             foreach ($Personnel as $Perso) {
  2204.                 if ($Perso->getNomPublic() == $type) {
  2205.                     $personnel_list[] = $Perso;
  2206.                 }
  2207.             }
  2208.         }
  2209.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  2210.         $normalizers = [new ObjectNormalizer()];
  2211.         $serializer = new Serializer($normalizers$encoders);
  2212.         // Serialize your object in Json
  2213.         $jsonObject $serializer->serialize($personnel_list'json', [
  2214.             AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste''listeVehicule'],
  2215.             'circular_reference_handler' => function ($object) {
  2216.                 return $object->getId();
  2217.             }
  2218.         ]);
  2219.         $jsonGzip gzencode($jsonObject9);
  2220.         $response = new Response($jsonGzip);
  2221.         $response->headers->set('Content-Encoding''gzip');
  2222.         $response->headers->set('Content-Type''application/json');
  2223.         return $response;
  2224.     }
  2225.     /**
  2226.      * @Route("/api/reduction/", name="api_vehicule_reduction")
  2227.      *
  2228.      * @param ReductionRepository $ReductionRepository
  2229.      * @return void
  2230.      */
  2231.     public function api_vehicule_reduction(ReductionRepository $ReductionRepository)
  2232.     {
  2233.         $Reductions $ReductionRepository->findBy(
  2234.             array(),
  2235.             array('position' => 'ASC')
  2236.         );
  2237.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  2238.         $normalizers = [new ObjectNormalizer()];
  2239.         $serializer = new Serializer($normalizers$encoders);
  2240.         // Serialize your object in Json
  2241.         $jsonObject $serializer->serialize($Reductions'json', [
  2242.             AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste''listeVehicule'],
  2243.             'circular_reference_handler' => function ($object) {
  2244.                 return $object->getId();
  2245.             }
  2246.         ]);
  2247.         $jsonGzip gzencode($jsonObject9);
  2248.         $response = new Response($jsonGzip);
  2249.         $response->headers->set('Content-Encoding''gzip');
  2250.         $response->headers->set('Content-Type''application/json');
  2251.         return $response;
  2252.     }
  2253.     /**
  2254.      * @Route("/api/tarifvehicules/", name="api_vehicule_tarifvehicules")
  2255.      *
  2256.      * @param Request $request
  2257.      * @param LivraisonRepository $LivraisonRepository
  2258.      * @return void
  2259.      */
  2260.     public function api_vehicule_tarifvehicules(Request $requestLivraisonRepository $LivraisonRepository)
  2261.     {
  2262.         $numdep $request->request->get('numdep');
  2263.         $Agence $request->request->get('Agence');
  2264.         if ($Agence != '1' && $Agence != 1) {
  2265.             $LivraisonRepository $LivraisonRepository->findBy(
  2266.                 ['Agence' => $Agence]
  2267.             );
  2268.         } else {
  2269.             $LivraisonRepository $LivraisonRepository->findBy(
  2270.                 ['Numerodep' => $numdep'Agence' => $Agence]
  2271.             );
  2272.         }
  2273.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  2274.         $normalizers = [new ObjectNormalizer()];
  2275.         $serializer = new Serializer($normalizers$encoders);
  2276.         // Serialize your object in Json
  2277.         $jsonObject $serializer->serialize($LivraisonRepository'json', [
  2278.             AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste''listeVehicule'],
  2279.             'circular_reference_handler' => function ($object) {
  2280.                 return $object->getId();
  2281.             }
  2282.         ]);
  2283.         $jsonGzip gzencode($jsonObject9);
  2284.         $response = new Response($jsonGzip);
  2285.         $response->headers->set('Content-Encoding''gzip');
  2286.         $response->headers->set('Content-Type''application/json');
  2287.         return $response;
  2288.     }
  2289.     /**
  2290.      * @Route("/api/listres/", name="api_listres")
  2291.      *
  2292.      * @param Request $request
  2293.      * @param LocationLockRepository $LocationLockRepository
  2294.      * @param VersionVehiculesRepository $VersionVehiculesRepository
  2295.      * @return void
  2296.      */
  2297.     public function api_listres(Request $requestLocationLockRepository $LocationLockRepositoryVersionVehiculesRepository $VersionVehiculesRepository)
  2298.     {
  2299.       //  $LocationLock = $LocationLockRepository->findAll();
  2300.         $VersionVehicules $VersionVehiculesRepository->findAll();
  2301.         
  2302.         $LocationLock $LocationLockRepository->createQueryBuilder('v')
  2303.                         ->andWhere('v.DateFin > CURRENT_DATE()'
  2304.                         ->getQuery()
  2305.                         ->getResult();
  2306.         for ($i 0$i count($LocationLock); $i++) {
  2307.             $newval 0;
  2308.             foreach ($VersionVehicules as $VersionVehicule) { 
  2309.                 if($LocationLock[$i]->getVehicId() == $VersionVehicule->getId() && $LocationLock[$i]->getVehictrue() == true) {  
  2310.                     if ($VersionVehicule->getPilote() == true) {
  2311.                         $idmod 1000000 $VersionVehicule->getVehicule();
  2312.                         $newval $idmod 
  2313.                     } else {
  2314.                         $newval $VersionVehicule->getVehicule() ;
  2315.                          
  2316.                     }
  2317.                 } 
  2318.             }
  2319.             $LocationLock[$i]->setVehicId$newval);
  2320.         }
  2321.  
  2322.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  2323.         $normalizers = [new ObjectNormalizer()];
  2324.         $serializer = new Serializer($normalizers$encoders);
  2325.         // Serialize your object in Json
  2326.         $jsonObject $serializer->serialize($LocationLock'json', [
  2327.             AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste''listeVehicule'],
  2328.             'circular_reference_handler' => function ($object) {
  2329.                 return $object->getId();
  2330.             }
  2331.         ]);
  2332.         $jsonGzip gzencode($jsonObject9);
  2333.         $response = new Response($jsonGzip);
  2334.         $response->headers->set('Content-Encoding''gzip');
  2335.         $response->headers->set('Content-Type''application/json');
  2336.         return $response;
  2337.     }
  2338.     /**
  2339.      * @Route("/api/garanties", name="api_garanties")
  2340.      *
  2341.      * @param GarantiesRepository $GarantiesRepository
  2342.      * @return void
  2343.      */
  2344.     public function api_garanties(GarantiesRepository $GarantiesRepository)
  2345.     {
  2346.         $Garanties $GarantiesRepository->findAll();
  2347.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  2348.         $normalizers = [new ObjectNormalizer()];
  2349.         $serializer = new Serializer($normalizers$encoders);
  2350.         // Serialize your object in Json
  2351.         $jsonObject $serializer->serialize($Garanties'json', [
  2352.             AbstractNormalizer::IGNORED_ATTRIBUTES => [],
  2353.             'circular_reference_handler' => function ($object) {
  2354.                 return $object->getId();
  2355.             }
  2356.         ]);
  2357.         $jsonGzip gzencode($jsonObject9);
  2358.         $response = new Response($jsonGzip);
  2359.         $response->headers->set('Content-Encoding''gzip');
  2360.         $response->headers->set('Content-Type''application/json');
  2361.         return $response;
  2362.     }
  2363.     /**
  2364.      * @Route("/api/guide", name="api_guide")
  2365.      *
  2366.      * @param GuideRepository $GuideRepository
  2367.      * @return void
  2368.      */
  2369.     public function api_guide(GuideRepository $GuideRepository)
  2370.     {
  2371.         $Guide $GuideRepository->findAll();
  2372.         foreach ($Guide as $Guid) {
  2373.             if ($Guid->getNumQ() == '9999' || $Guid->getNumQ() == 9999) {
  2374.                 $lists $Guid->getReponse();
  2375.                 $nlist = [];
  2376.                 foreach ($lists as $list) {
  2377.                     $nlist[] = $list;
  2378.                 }
  2379.                 $Guid->setReponse($nlist);
  2380.             }
  2381.         }
  2382.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  2383.         $normalizers = [new ObjectNormalizer()];
  2384.         $serializer = new Serializer($normalizers$encoders);
  2385.         // Serialize your object in Json
  2386.         $jsonObject $serializer->serialize($Guide'json', [
  2387.             AbstractNormalizer::IGNORED_ATTRIBUTES => [],
  2388.             'circular_reference_handler' => function ($object) {
  2389.                 return $object->getId();
  2390.             }
  2391.         ]);
  2392.         $jsonGzip gzencode($jsonObject9);
  2393.         $response = new Response($jsonGzip);
  2394.         $response->headers->set('Content-Encoding''gzip');
  2395.         $response->headers->set('Content-Type''application/json');
  2396.         return $response;
  2397.     }
  2398.     /** 
  2399.      * @Route("/api/listservices/", name="api_listservices")
  2400.      *
  2401.      * @param ServicesRepository $ServicesRepository
  2402.      * @param CatservicesRepository $CatservicesRepository
  2403.      * @return void
  2404.      */
  2405.     public function api_listservices(ServicesRepository $ServicesRepositoryCatservicesRepository $CatservicesRepository)
  2406.     {
  2407.         $Catservices_list $CatservicesRepository->findBy(
  2408.             array(),
  2409.             array('Ordre' => 'ASC')
  2410.         );
  2411.         $Services $ServicesRepository->findBy(
  2412.             array(),
  2413.             array('Ordre' => 'ASC')
  2414.         );
  2415.         $data['catservices'] = $Catservices_list;
  2416.         $data['services'] = $Services;
  2417.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  2418.         $normalizers = [new ObjectNormalizer()];
  2419.         $serializer = new Serializer($normalizers$encoders);
  2420.         // Serialize your object in Json
  2421.         $jsonObject $serializer->serialize($data'json', [
  2422.             AbstractNormalizer::IGNORED_ATTRIBUTES => [],
  2423.             'circular_reference_handler' => function ($object) {
  2424.                 return $object->getId();
  2425.             }
  2426.         ]);
  2427.         $jsonGzip gzencode($jsonObject9);
  2428.         $response = new Response($jsonGzip);
  2429.         $response->headers->set('Content-Encoding''gzip');
  2430.         $response->headers->set('Content-Type''application/json');
  2431.         return $response;
  2432.     }
  2433.     /**
  2434.      * @Route("/", name="accueil", options={"sitemap" = true})
  2435.      *
  2436.      * @param Request $request
  2437.      * @param GrapesPagesRepository $GrapesPagesRepository
  2438.      * @return void
  2439.      */
  2440.     public function accueil(Request $requestGrapesPagesRepository $GrapesPagesRepository)
  2441.     {
  2442.         $accueils $GrapesPagesRepository->findBy(
  2443.             array('Template' => 'accueil')
  2444.         );
  2445.         $locale $request->getLocale();
  2446.         $page $accueils[0];
  2447.         foreach ($accueils as $accueil) {
  2448.             if ($accueil->getLangue() == $locale) {
  2449.                 $page $accueil;
  2450.             }
  2451.         }
  2452.         return $this->render('admingrapespages/voir.html.twig', [
  2453.             'controller_name' => 'PagesController',
  2454.             'GrapesPages' => $page,
  2455.             'pagename' => 'accueil'
  2456.         ]);
  2457.     }
  2458. }