src/Controller/GestiondevisController.php line 316

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Dompdf\Dompdf;
  4. use Dompdf\Options
  5. use App\Entity\ListNom;
  6. use App\Entity\Location;
  7. use App\Entity\Vehicule;
  8. use App\Service\Listes
  9. use App\Entity\DevisSend;
  10. use App\Form\DevisSendType;
  11. use App\Entity\LocationLock;
  12. use App\Form\DuplidevisType;
  13. use App\Repository\AgenceRepository;
  14. use App\Repository\UsersRepository
  15. use App\Repository\GaragesRepository;
  16. use App\Repository\ListNomRepository;
  17. use App\Repository\VehiculeRepository;
  18. use App\Repository\DevisSendRepository;
  19. // Include Dompdf required namespaces
  20. use App\Repository\PersonnelRepository;
  21. use App\Repository\ReductionRepository;
  22. use App\Repository\EntretientRepository;
  23. use App\Repository\OptionveloRepository;
  24. use Doctrine\ORM\EntityManagerInterface;
  25. use App\Repository\ProprietaireRepository;
  26. use App\Repository\CaractVehiculeRepository;
  27. use Symfony\Component\Serializer\Serializer;
  28. use Symfony\Component\HttpFoundation\Request;
  29. use App\Repository\VersionVehiculesRepository;
  30. use Symfony\Component\HttpFoundation\Response;
  31. use App\Repository\CategorieVehiculeRepository;
  32. use Symfony\Component\Routing\Annotation\Route;
  33. use Symfony\Component\Serializer\Encoder\JsonEncoder;
  34. use Symfony\Component\HttpFoundation\ResponseHeaderBag;
  35. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  36. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity
  37. use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
  38. use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
  39. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  40. class GestiondevisController extends AbstractController
  41. {
  42.     /**
  43.      * @Route("/admin/devis", name="voir_devis")
  44.      */
  45.     public function index(DevisSendRepository $DevisSendRepositoryRequest $request,DevisSend $DevisSend nullEntityManagerInterface $managerAgenceRepository $AgenceRepository)
  46.     {
  47.       /*  if($request->query->get('pdf') != ''){
  48.             dd($request->query->get('pdf'));
  49.         }*/
  50.         function random_3($nbr) {
  51.             $chn '';
  52.             for ($i=1;$i<=$nbr;$i++)
  53.              //   $chn .= chr(floor(rand(0, 25)+97));
  54.              $chn .= rand(09);
  55.                 return $chn;
  56.                }
  57.             function gentest($DevisSendRepository ){
  58.                 $test random_3(6);
  59.                 $testdevis $DevisSendRepository->findBy(
  60.                     ['NoDevis' => $test ]
  61.                 );
  62.                
  63.                 if( empty($testdevis)  ){
  64.                     
  65.                       return $test 
  66.                 }else{ 
  67.                       gentest($DevisSendRepository);
  68.                 }
  69.             }
  70.         
  71.       $form $this->createForm(DuplidevisType::class, $DevisSend);
  72.       $form->handleRequest($request);
  73.         if($form->isSubmitted() && $form->isValid()){
  74.             $deviduplique $request->request->get('duplidevis')['NoDevis'];
  75.             $deviaduplique $DevisSendRepository->findBy(
  76.                 ['NoDevis' => $deviduplique ]
  77.             );
  78.          if( !empty($deviaduplique)  ){
  79.             $deviaduplique $deviaduplique[0];
  80.           //  dd($deviaduplique);
  81.             $DevisSend = new DevisSend();
  82.             $nodevis gentest($DevisSendRepository);
  83.             $DevisSend->setNoDevis$nodevis );
  84.             $DevisSend->setDateDeb$deviaduplique->getDateDeb() );
  85.             $DevisSend->setDateFin$deviaduplique->getDateFin() );
  86.             $DevisSend->setNbJours$deviaduplique->getNbJours() );
  87.             $DevisSend->setData$deviaduplique->getData() );
  88.             $DevisSend->setDataLivraison$deviaduplique->getDataLivraison() );
  89.             $DevisSend->setDataPersonnel$deviaduplique->getDataPersonnel() );
  90.             $DevisSend->setDataReduc$deviaduplique->getDataReduc() );
  91.             $DevisSend->setDatedevis$deviaduplique->getDatedevis() );
  92.             $DevisSend->setIduser$deviaduplique->getIduser() );
  93.             $DevisSend->setUsertype$deviaduplique->getUsertype() );
  94.             $DevisSend->setUsernom$deviaduplique->getUsernom() );
  95.             $DevisSend->setUseradresse$deviaduplique->getUseradresse() );
  96.             $DevisSend->setUsercpville$deviaduplique->getUsercpville() );
  97.             $DevisSend->setUseremail$deviaduplique->getUseremail() );
  98.             $DevisSend->setTvaClient$deviaduplique->getTvaClient() );
  99.             $DevisSend->setCodeClient$deviaduplique->getCodeClient() );
  100.             $DevisSend->setTelephone$deviaduplique->getTelephone() );
  101.             $DevisSend->setNoTva$deviaduplique->getNoTva() );
  102.             $DevisSend->setNomClient$deviaduplique->getNomClient() );
  103.             $DevisSend->setTyprospect$deviaduplique->getTyprospect() );
  104.             $DevisSend->setCatclient$deviaduplique->getCatclient() );
  105.         $datadec \json_decode$DevisSend->getData() );
  106.         $agenc '';
  107.         if( isset( $datadec[0] )){
  108.             if( isset( $datadec[0]->agence )){
  109.                 $agenc $datadec[0]->agence;
  110.             }
  111.         }
  112.         $DevisSend->setAgence$agenc );
  113.             $manager->persist($DevisSend);
  114.             $manager->flush();
  115.          }
  116.         }
  117.         $devis $DevisSendRepository->findBy(
  118.             array(),
  119.             array('id' => 'DESC')
  120.         );
  121.         $Agences $AgenceRepository->findBy(
  122.             array(),
  123.             array('Nom' => 'ASC')
  124.         );
  125.         
  126.         return $this->render('gestiondevis/index.html.twig', [
  127.             'controller_name' => 'GestiondevisController',
  128.             'form' => $form->createView(),
  129.             'devis' => $devis,
  130.             'Agences' => $Agences
  131.         ]);
  132.     }
  133.     /**
  134.      * @Route("/admin/devis/ajouter", name="devis_ad")
  135.      * @Route("/admin/devis/editer/{targid}", name="editer_devis" )
  136.      */
  137.     public function editer_devis(Int $targid nullDevisSend $DevisSend null ,Request $request,EntityManagerInterface $manager,DevisSendRepository $DevisSendRepositoryUsersRepository $UsersRepositoryVehiculeRepository $VehiculeRepositoryReductionRepository $ReductionRepositoryListNom $ListNom nullListNomRepository $ListNomRepository,PersonnelRepository $PersonnelRepositoryAgenceRepository $AgenceRepository )
  138.     {
  139.         function random_3($nbr) {
  140.             $chn '';
  141.             for ($i=1;$i<=$nbr;$i++)
  142.              //   $chn .= chr(floor(rand(0, 25)+97));
  143.              $chn .= rand(09);
  144.                 return $chn;
  145.                }
  146.             function gentest($DevisSendRepository ){
  147.                 $test random_3(6);
  148.                 $testdevis $DevisSendRepository->findBy(
  149.                     ['NoDevis' => $test ]
  150.                 );
  151.                
  152.                 if( empty($testdevis)  ){
  153.                     
  154.                       return $test 
  155.                 }else{ 
  156.                       gentest($DevisSendRepository);
  157.                 }
  158.             }
  159.          $DevisSends $DevisSendRepository->findBy(
  160.             ['id' => $targid ]
  161.         );
  162.         if($DevisSends ){
  163.         $DevisSend $DevisSends[0];
  164.         
  165.         }
  166.         if(!$DevisSend){
  167.             $DevisSend = new DevisSend();
  168.         }
  169.         if(  $DevisSend->getNoDevis() == null){
  170.             $Nodevis gentest($DevisSendRepository);
  171.             $DevisSend->setNoDevis$Nodevis );
  172.         } 
  173.         $form $this->createForm(DevisSendType::class, $DevisSend);
  174.         
  175.         $form->handleRequest($request);
  176.         if($form->isSubmitted() && $form->isValid()){
  177.             
  178.             $ListNoms $ListNomRepository->findBy(
  179.                 ['Nom' => $DevisSend->getUsernom() ]
  180.             );
  181.             if($ListNoms ){
  182.             $ListNom $ListNoms[0];
  183.             
  184.             }
  185.             if(!$ListNom){
  186.                 $ListNom = new ListNom();
  187.             }
  188.             $ListNom->setNom$DevisSend->getUsernom() );
  189.             $ListNom->setAdresse$DevisSend->getUseradresse() );
  190.             $ListNom->setCpVille$DevisSend->getUsercpville() );
  191.             $ListNom->setEmail$DevisSend->getUseremail() );
  192.             $ListNom->setTvaClient$DevisSend->getTvaClient() );
  193.             $ListNom->setCodeClient$DevisSend->getCodeClient() );
  194.             $ListNom->setTelephone$DevisSend->getTelephone() );
  195.             $ListNom->setNomClient$DevisSend->getNomClient() );
  196.             $ListNom->setTyprospect$DevisSend->getTyprospect() );
  197.             $ListNom->setType$DevisSend->getCatclient() );
  198.  
  199.             $manager->persist($ListNom);
  200.             
  201.             $manager->persist($DevisSend);
  202.             $manager->flush();
  203.             return $this->redirectToRoute('voir_devis', array('pdf' => $DevisSend->getId()));
  204.         }
  205.         
  206.         $users $UsersRepository->findBy(
  207.             array(),
  208.             array('Nom' => 'ASC')
  209.         );
  210.         $ListNoms $ListNomRepository->findBy(
  211.             array(),
  212.             array('Nom' => 'ASC')
  213.         );
  214.         $users array_merge($users$ListNoms);
  215.          
  216.         function cmp($a$b) {
  217.             if ($a->getNom() == $b->getNom()) {
  218.                 return 0;
  219.             }
  220.             return ($a->getNom() < $b->getNom()) ? -1;
  221.  
  222.         }
  223.         
  224.         usort($users"App\Controller\cmp");
  225.        //  dd($users);
  226.         $cat 'Location';
  227.         $Vehicules $VehiculeRepository->createQueryBuilder('v')
  228.         ->where'v.cat LIKE :cat')
  229.         ->setParameter('cat''%'.$cat.'%'
  230.         ->orderBy('v.position''ASC')
  231.         ->getQuery()
  232.         ->getResult();
  233.       //  $Vehicules = $VehiculeRepository->findall();
  234.  
  235.       $liste_reduc $ReductionRepository->findBy(
  236.         array(),
  237.         array('position' => 'ASC')
  238.     );
  239.       $listreduc = [];
  240.       foreach(  $liste_reduc as $reduc ){
  241.         $object =  (object) ['id' => $reduc->getId(), 'detail' => json_decode($reduc->getDetail() ) ]; 
  242.         $listreduc[] = $object;
  243.          
  244.       } 
  245.     
  246.         $reducjson json_encode($listreduc);
  247.        $Personnels $PersonnelRepository->findAll();
  248.        $listperso = [];
  249.        foreach(  $Personnels as $Personnel ){
  250.         $persodetail = (object) ['Nom' => $Personnel->getNom(),'TableData' => $Personnel->getTableData(), 'NomPublic' => $Personnel->getNomPublic() ];
  251.         $listperso[] = $persodetail
  252.        }
  253.        $Personneljson json_encode($listperso);
  254.        $Agences $AgenceRepository->findBy(
  255.         array(),
  256.         array('Nom' => 'ASC')
  257.     );
  258.         
  259.         $datajsversion json_decode($DevisSend->getData() );
  260.          
  261.         return $this->render('gestiondevis/edite_devis.html.twig', [
  262.             'controller_name' => 'GestiondevisController',
  263.             'form' => $form->createView(),
  264.             'id' => $DevisSend->getId(),
  265.             'users' => $users,
  266.             'data' => $DevisSend->getData(),
  267.             'Vehicules' => $Vehicules,
  268.             'reductionliste' => $reducjson
  269.             'Personnel' => $Personneljson,
  270.             'Agen' => $DevisSend->getAgence(),
  271.             'Agences' => $Agences
  272.         ]);
  273.     }
  274.     /**
  275.      * @Route("/download/{trgfile}", name="download_file")
  276.     **/
  277.     public function downloadFileAction(string $trgfile null){
  278.         $response = new BinaryFileResponse('pdfgen/devis_'.$trgfile.'.pdf');
  279.         $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT,'devis_'.$trgfile.'.pdf');
  280.         return $response;
  281.     }
  282.     /**
  283.      * @Route("/admin/devis/rechenom/{trg}", name="rechnom" )
  284.      */
  285.     public function rechnom(string $trg null ListNom $ListNom =nullListNomRepository $ListNomRepositoryUsersRepository $UsersRepository)
  286.     { 
  287.         $target explode("_"$trg);
  288.  
  289.         $jsonObject =[];
  290.         if( $target[0] == 'u'){
  291.             $users $UsersRepository->findBy(
  292.                 array( 'id' => $target[1]),
  293.                 array('Nom' => 'ASC')
  294.             );
  295.             if($users != null){
  296.                 
  297.                 $users $users[0];
  298.                 $jsonObject['id'] = $users->getId();
  299.                 $jsonObject['Name'] = $users->getNom() . ' ' $users->getPrenom();
  300.                 $jsonObject['Adresse'] = $users->getAdresse();
  301.                 $jsonObject['CpVille'] = $users->getCP() . ' ' $users->getVille();
  302.                 $jsonObject['email'] = $users->getEmail();
  303.                 $jsonObject['Usertype'] = 'particulier';
  304.                 $jsonObject['TvaClient'] = $users->getTvaClient();
  305.                 $jsonObject['CodeClient'] = $users->getCodeClient();
  306.                 $jsonObject['Telephone'] = $users->getTelephone();
  307.                 $jsonObject['NoTva'] = $users->getNoTva(); 
  308.                 $jsonObject['Type'] = ''
  309.                 $jsonObject['Typrospect'] = ''
  310.                 $jsonObject['NomClient'] = ''
  311.             }
  312.         }else{
  313.             $ListNom $ListNomRepository->findBy(
  314.                 array( 'id' => $target[1]),
  315.                 array('Nom' => 'ASC')
  316.             );
  317.             if($ListNom != null){
  318.                 $ListNom $ListNom[0]; 
  319.                 $jsonObject['id'] = $ListNom->getId();
  320.                 $jsonObject['Name'] = $ListNom->getNom();
  321.                 $jsonObject['Adresse'] = $ListNom->getAdresse();
  322.                 $jsonObject['CpVille'] = $ListNom->getCpVille() ;
  323.                 $jsonObject['email'] = $ListNom->getEmail();
  324.                 $jsonObject['Usertype'] = 'listnom';
  325.                 $jsonObject['TvaClient'] = $ListNom->getTvaClient();
  326.                 $jsonObject['CodeClient'] = $ListNom->getCodeClient();
  327.                 $jsonObject['Telephone'] = $ListNom->getTelephone();
  328.                 $jsonObject['NoTva'] = $ListNom->getNoTva(); 
  329.                 $jsonObject['Type'] = $ListNom->getType(); 
  330.                 $jsonObject['Typrospect'] = $ListNom->getTyprospect(); 
  331.                 $jsonObject['NomClient'] = $ListNom->getNomClient(); 
  332.             }
  333.         }  
  334.        $jsonGzip gzencode($jsonObject9);
  335.         $response = new Response($jsonGzip);
  336.         $response->headers->set('Content-Encoding''gzip');
  337.         $response->headers->set('Content-Type''application/json');
  338.         
  339.         return $response;
  340.         
  341.     }
  342.     /**
  343.      * @Route("/admin/devis/vehicdetail/{targid}", name="vehicdetail" )
  344.      */
  345.     public function vehicdetail(Int $targidVehiculeRepository $VehiculeRepositoryOptionveloRepository $OptionveloRepositoryCaractVehiculeRepository $CaractVehiculeRepository)
  346.     {
  347.         if( $targid >= 1000000 ){
  348.             $targid $targid 1000000 ;
  349.         }
  350.         
  351.         $Vehicule $VehiculeRepository->findBy(
  352.             ['id' => $targid ]
  353.         );
  354.         $cat 'Location';
  355.         $CaractVehicules $CaractVehiculeRepository->findBy(
  356.             array(),
  357.             array('position' => 'ASC'));
  358.         $listeoption $OptionveloRepository->findBy(
  359.             ['typeElem' => $cat],
  360.             array('position' => 'ASC')
  361.         );
  362.         $response = [];
  363.         if(isset($Vehicule[0])){
  364.             $response['listevehicules']= $Vehicule[0];
  365.         }else{
  366.         $response['listevehicules']= null;
  367.         }
  368.         $response['CaractVehicules']= $CaractVehicules
  369.         $response['listeoption']= $listeoption;
  370.        // dd($Vehicule);
  371.         
  372.        $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  373.        $normalizers = [new ObjectNormalizer()];
  374.        $serializer = new Serializer($normalizers$encoders);
  375.        // Serialize your object in Json
  376.        $jsonObject $serializer->serialize($response'json', [
  377.            'circular_reference_handler' => function ($object) {
  378.                return $object->getId();
  379.            }
  380.        ]);
  381.        
  382.        
  383.        $jsonGzip gzencode($jsonObject9);
  384.         $response = new Response($jsonGzip);
  385.         $response->headers->set('Content-Encoding''gzip');
  386.         $response->headers->set('Content-Type''application/json');
  387.         
  388.         return $response;
  389.     }
  390.     
  391.     /**
  392.      * @Route("/admin/devis/optiondetail/{targid}/{optid}", name="optiondetail" )
  393.      */
  394.     public function optiondetail(Int $targidInt $optidVehiculeRepository $VehiculeRepositoryOptionveloRepository $OptionveloRepositoryCaractVehiculeRepository $CaractVehiculeRepository)
  395.     {
  396.         $Vehicule $VehiculeRepository->findBy(
  397.             ['id' => $targid ]
  398.         );
  399.         $cat 'Location';
  400.         
  401.         $listeoption $OptionveloRepository->findBy(
  402.             ['id' => $optid ]
  403.         );
  404.         $response = [];
  405.         
  406.         $response['listevehicules']= $Vehicule[0]; 
  407.         $response['listeoption']= $listeoption[0];
  408.        // dd($Vehicule);
  409.         
  410.        $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  411.        $normalizers = [new ObjectNormalizer()];
  412.        $serializer = new Serializer($normalizers$encoders);
  413.        // Serialize your object in Json
  414.        $jsonObject $serializer->serialize($response'json', [
  415.            'circular_reference_handler' => function ($object) {
  416.                return $object->getId();
  417.            }
  418.        ]);
  419.        
  420.        
  421.        $jsonGzip gzencode($jsonObject9);
  422.         $response = new Response($jsonGzip);
  423.         $response->headers->set('Content-Encoding''gzip');
  424.         $response->headers->set('Content-Type''application/json');
  425.         
  426.         return $response;
  427.     }
  428.     
  429.     /**
  430.      * @Route("/admin/devis/devisvehic/{targid}", name="devisvehic" )
  431.      */
  432.     public function devisvehic(Int $targidVehiculeRepository $VehiculeRepositoryOptionveloRepository $OptionveloRepositoryCaractVehiculeRepository $CaractVehiculeRepository)
  433.     {
  434.         if( $targid 1000000 ){
  435.             $targid $targid 1000000 ;
  436.         }
  437.         $Vehicule $VehiculeRepository->findBy(
  438.             ['id' => $targid ]
  439.         );
  440.         $cat 'Location';
  441.          
  442.         $response = [];
  443.         
  444.         $response['listevehicules']= $Vehicule[0];  
  445.        // dd($Vehicule);
  446.         
  447.        $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  448.        $normalizers = [new ObjectNormalizer()];
  449.        $serializer = new Serializer($normalizers$encoders);
  450.        // Serialize your object in Json
  451.        $jsonObject $serializer->serialize($response'json', [
  452.            'circular_reference_handler' => function ($object) {
  453.                return $object->getId();
  454.            }
  455.        ]);
  456.        
  457.        
  458.        $jsonGzip gzencode($jsonObject9);
  459.         $response = new Response($jsonGzip);
  460.         $response->headers->set('Content-Encoding''gzip');
  461.         $response->headers->set('Content-Type''application/json');
  462.         
  463.         return $response;
  464.     }
  465.     /**
  466.      * @Route("/admin/devis/pdf/{targid}", name="pdf_devis" )
  467.      */
  468.     public function pdf_devis(Int $targidDevisSend $DevisSend null ,Request $request,EntityManagerInterface $manager,DevisSendRepository $DevisSendRepositoryUsersRepository $UsersRepositoryVehiculeRepository $VehiculeRepository ReductionRepository $ReductionRepositoryAgenceRepository $AgenceRepository)
  469.     {
  470.          
  471.         //     dd( $request->cookies->get('devis') );
  472.             //recup n° devis et le devis 
  473.           $selectvehics $DevisSendRepository->findBy(
  474.             ['id' => $targid]
  475.              ); 
  476.            //  dd( $selectvehics[0]->getIduser()  );
  477.              $user =  $UsersRepository->findBy(
  478.                 ['id' => $selectvehics[0]->getIduser() ]
  479.                  ); 
  480.                  if($user){
  481.                     $user =  $user[0] ;
  482.                  } 
  483.               //   dd( $user  );
  484.  
  485.             $devis =  $selectvehics[0]->getNoDevis();
  486.              if($selectvehics ){
  487.                 $selectvehic $selectvehics[0];
  488.                 // basculer le devis dans le devis a valider
  489.                 $DevisSend $selectvehic ;
  490.                       
  491.             
  492.             $Data json_decode $selectvehic->getData() );
  493.              
  494.             $DataLivraison json_decode $selectvehic->getDataLivraison() );
  495.           /*  for ($i=0; $i < count( $Data ) ; $i++) {
  496.                 
  497.                 if( $Data[$i]->service == 'Location' ){
  498.                     $datedeb =  explode("-",  $Data[$i]->datedeb );
  499.                     $formdatedeb = $datedeb[2].'/'.$datedeb[1].'/'.$datedeb[0];
  500.                     $Data[$i]->datedeb = $formdatedeb;
  501.                     $datefin =  explode("-",  $Data[$i]->datefin );
  502.                     $formdatefin = $datefin[2].'/'.$datefin[1].'/'.$datefin[0];
  503.                     $Data[$i]->datefin = $formdatefin;
  504.                 }
  505.               
  506.                
  507.             }*/
  508.             $DataPersonnel json_decode $selectvehic->getDataPersonnel() );
  509.         $Agences $AgenceRepository->findBy(
  510.             array(),
  511.             array('Nom' => 'ASC')
  512.         );
  513.         
  514.         foreach ($Agences as $Agence) {
  515.             if( $Agence->getId() == $DevisSend->getAgence()){
  516.                 $agencename $Agence->getNom();
  517.             }
  518.         }
  519.             
  520.             $DataReduc json_decode $selectvehic->getDataReduc() );
  521.             $today date("j / n / Y") ;
  522.             $nextmonth date("j / n / Y"strtotime("+1 month"));
  523.             $liste_reduc $ReductionRepository->findBy(
  524.                 array(),
  525.                 array('position' => 'ASC')
  526.             );
  527.               
  528.                // Configure Dompdf according to your needs
  529.         $pdfOptions = new Options(); 
  530. $tmp sys_get_temp_dir();
  531.  
  532.         $pdfOptions->set('fontDir' $tmp ); 
  533.         $pdfOptions->set('fontCache' $tmp ); 
  534.         
  535.         // Instantiate Dompdf with our options
  536.         $dompdf = new Dompdf($pdfOptions);
  537.         // Retrieve the HTML generated in our twig file
  538.        
  539.         /*    return $this->render('default/mypdf2.html.twig', [
  540.             'title' => "Welcome to our PDF Test",
  541.             'no_devis' => $devis,
  542.             'today' => $today,
  543.             'nextmonth' => $nextmonth,
  544.             'Data' => $Data,
  545.             'DataLivraison' => $DataLivraison,
  546.             'user' => $user,
  547.             'DataPersonnel' => $DataPersonnel,
  548.             'DataReduc' => $DataReduc,
  549.             'DevisSend' => $DevisSend,
  550.             'reductionliste' => $liste_reduc,
  551.             'agencename' => $agencename
  552.         ]);  */
  553.   
  554.         
  555.         $html $this->renderView('default/mypdf2.html.twig', [
  556.             'title' => "Welcome to our PDF Test",
  557.             'no_devis' => $devis,
  558.             'today' => $today,
  559.             'nextmonth' => $nextmonth,
  560.             'Data' => $Data,
  561.             'DataLivraison' => $DataLivraison,
  562.             'user' => $user,
  563.             'DataPersonnel' => $DataPersonnel,
  564.             'DataReduc' => $DataReduc,
  565.             'DevisSend' => $DevisSend,
  566.             'reductionliste' => $liste_reduc,
  567.             'agencename' => $agencename
  568.         ]);
  569.         
  570.       /*  // Load HTML to Dompdf
  571.         $dompdf->loadHtml($html);
  572.         
  573.         // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  574.         $dompdf->setPaper('A4', 'portrait');
  575.         // Render the HTML as PDF
  576.         $dompdf->render();
  577.         $pdfname = 'devis_'.$devis.'.pdf';
  578.         // Output the generated PDF to Browser (force download)
  579.         $dompdf->stream( $pdfname , [
  580.             "Attachment" => true
  581.         ]);*/
  582.         // Load HTML to Dompdf
  583.         $dompdf->loadHtml($html);
  584.             
  585.         // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  586.         $dompdf->setPaper('A4''portrait');
  587.         // Render the HTML as PDF
  588.         $dompdf->render();
  589.         // Store PDF Binary Data
  590.         $output $dompdf->output();
  591.         
  592.         // In this case, we want to write the file in the public directory
  593.         $publicDirectory $this->getParameter('kernel.project_dir') . '/public/pdfgen';
  594.         // e.g /var/www/project/public/mypdf.pdf
  595.         $pdfFilepath =  $publicDirectory '/devis_'.$devis.'.pdf';
  596.         
  597.         // Write file to the desired path
  598.         file_put_contents($pdfFilepath$output);
  599.         
  600.         /*
  601.             
  602.          // Configure Dompdf according to your needs
  603.         $pdfOptions = new Options();
  604.         $pdfOptions->set('defaultFont', 'Arial');
  605.         
  606.         // Instantiate Dompdf with our options
  607.         $dompdf = new Dompdf($pdfOptions);
  608.         // Retrieve the HTML generated in our twig file
  609.         $html = $this->renderView('default/mypdf.html.twig', [
  610.             'title' => "Welcome to our PDF Test",
  611.             'no_devis' => $devis,
  612.             'today' => $today,
  613.             'nextmonth' => $nextmonth,
  614.             'Data' => $Data,
  615.             'DataLivraison' => $DataLivraison,
  616.             'user' => $user,
  617.             'DataPersonnel' => $DataPersonnel,
  618.             'DataReduc' => $DataReduc,
  619.             'DevisSend' => $DevisSend,
  620.             'reductionliste' => $listreduc
  621.         ]);
  622.         
  623.         // Load HTML to Dompdf
  624.         $dompdf->loadHtml($html);
  625.         
  626.         // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  627.         $dompdf->setPaper('A4', 'portrait');
  628.         // Render the HTML as PDF
  629.         $dompdf->render();
  630.         // Store PDF Binary Data
  631.         $output = $dompdf->output();
  632.         
  633.         // In this case, we want to write the file in the public directory
  634.         $publicDirectory = $this->getParameter('kernel.project_dir') . '/public/pdfgen';
  635.         // e.g /var/www/project/public/mypdf.pdf
  636.         $pdfFilepath =  $publicDirectory . '/devis_'.$devis.'.pdf';
  637.         
  638.         // Write file to the desired path
  639.         file_put_contents($pdfFilepath, $output);
  640.         
  641.         // Send some text response
  642.        // return new Response("The PDF file has been succesfully generated !");
  643.        // Envoi de l'email avec le devis
  644.        $message = (new \Swift_Message('Hello Email'))
  645.         ->setFrom('contact@tripup.fr')
  646.         ->setTo(  $email  )
  647.         ->setBody(
  648.             $this->renderView(
  649.                 // templates/emails/registration.html.twig
  650.                 'emails/envoidevis.html.twig'
  651.                 
  652.             ),
  653.             'text/html'
  654.         )
  655.         // attachement du fichier joins
  656.         ->attach(\Swift_Attachment::fromPath($pdfFilepath), "application/octet-stream")
  657.         // you can remove the following code if you don't define a text version for your emails
  658.         ->addPart(
  659.             $this->renderView(
  660.                 // templates/emails/registration.txt.twig
  661.                 'emails/envoidevis.txt.twig'
  662.                
  663.             ),
  664.             'text/plain'
  665.         )
  666.     ;
  667.           $mailer->send($message);
  668.           //find de l'envoi*/
  669.            
  670.              
  671.           
  672.     }
  673.     $devis $DevisSendRepository->findBy(
  674.         array(),
  675.         array('id' => 'DESC')
  676.     );
  677.     
  678.     $jsonObject =[];
  679.     
  680.     $jsonObject['pdf'] = 'ok';
  681.    $jsonGzip gzencode($jsonObject9);
  682.         $response = new Response($jsonGzip);
  683.         $response->headers->set('Content-Encoding''gzip');
  684.         $response->headers->set('Content-Type''application/json');
  685.         
  686.         return $response;
  687.     
  688.    /* return $this->render('gestiondevis/index.html.twig', [
  689.         'controller_name' => 'GestiondevisController',
  690.         'devis' => $devis
  691.     ]);*/
  692.     
  693. }
  694.     /**
  695.      * @Route("/admin/devis/validevis/{targid}", name="validevis" )
  696.      */
  697.     public function validevis(Int $targidDevisSend $DevisSend null ,Request $request,EntityManagerInterface $manager,DevisSendRepository $DevisSendRepositoryLocation $Location null LocationLock $LocationLock nullVersionVehiculesRepository $VersionVehiculesRepositoryListes $Listes)
  698.     {
  699.          $DevisSends $DevisSendRepository->findBy(
  700.             ['id' => $targid ]
  701.         );
  702.         if($DevisSends ){
  703.         $DevisSend $DevisSends[0];
  704.         
  705.         }
  706.         $detailsvalidevis json_decode($request->request->get('detailsvalidevis') );
  707.         $listv = [];
  708.         foreach ($detailsvalidevis as $detailsvalidevi ) {
  709.           // $listv[] = $detailsvalidevi->veculid;
  710.            array_push($listv$detailsvalidevi->veculid) ;
  711.         }
  712.         $devsend JSON_decode$DevisSend->getData());
  713.         
  714.         $listv \json_encode($listv);
  715.          
  716.         $Location = new Location();
  717.         $Location->setNoDevis$DevisSend->getNoDevis() );
  718.         $Location->setDateDeb$DevisSend->getDateDeb() );
  719.         $Location->setDateFin$DevisSend->getDateFin() );
  720.         $Location->setNbJours(  $DevisSend->getNbJours() );
  721.         $Location->setData(  $DevisSend->getData() );
  722.         $Location->setDatalivraison$DevisSend->getDataLivraison() );
  723.         $Location->setDataPersonnel$DevisSend->getDataPersonnel() );
  724.         $Location->setDataReduc$DevisSend->getDataReduc() );
  725.         $Location->setDateDevis$DevisSend->getDatedevis() );
  726.         $Location->setIdUser$DevisSend->getIduser() );
  727.         $Location->setUsernom$DevisSend->getUsernom() );
  728.         $Location->setUseradresse$DevisSend->getUseradresse() );
  729.         $Location->setUsercpville$DevisSend->getUsercpville() );
  730.         $Location->setTvaClient$DevisSend->getTvaClient() );
  731.         $Location->setCodeClient$DevisSend->getCodeClient() );
  732.         $Location->setTelephone$DevisSend->getTelephone() );
  733.         $Location->setNoTva$DevisSend->getNoTva() );
  734.         $Location->setNomClient$DevisSend->getNomClient() );
  735.         $Location->setTyprospect$DevisSend->getTyprospect() );
  736.         $Location->setUsernom$DevisSend->getUsernom() );
  737.         $Location->setCatclient$DevisSend->getCatclient() ); 
  738.         $Location->setUsertype$DevisSend->getUsertype() ); 
  739.         $Location->setListversionve(  $listv ); 
  740.         $Location->setAgence(  $devsend[0]->agence ); 
  741.         
  742.         
  743.         $manager->persist($Location);
  744.         $manager->flush();
  745.     
  746.         $vehiclist json_decode$DevisSend->getData() );
  747.         foreach ($vehiclist as $vehic) {
  748.               //  dd($vehic); 
  749.             if( isset($vehic->cover) ){
  750.                 foreach ($vehic->cover as $cover) {
  751.                     $LocationLock = new LocationLock();
  752.                     $LocationLock->setNoDevis$DevisSend->getNoDevis() );
  753.                     $LocationLock->setDateDeb\DateTime::createFromFormat('Y-m-d'$vehic->datedeb)  );
  754.                     $LocationLock->setDateFin\DateTime::createFromFormat('Y-m-d'$vehic->datefin) );
  755.                     $LocationLock->setVehictruefalse );
  756.                     $LocationLock->setVehicIdfalse );
  757.                     $LocationLock->setOptionId$cover->id );
  758.                     $LocationLock->setNbsel$cover->nbchoisi );
  759.                 //    $LocationLock->setLocId( $vehic->nb );
  760.                     
  761.                     $manager->persist($LocationLock);
  762.                     $manager->flush();
  763.                 }
  764.             }
  765.             if( isset($vehic->equip) ){
  766.                 foreach ($vehic->equip as $equip) {
  767.                     $LocationLock = new LocationLock();
  768.                     $LocationLock->setNoDevis$DevisSend->getNoDevis() );
  769.                     $LocationLock->setDateDeb\DateTime::createFromFormat('Y-m-d'$vehic->datedeb)  );
  770.                     $LocationLock->setDateFin\DateTime::createFromFormat('Y-m-d'$vehic->datefin) );
  771.                     $LocationLock->setVehictruefalse );
  772.                     $LocationLock->setVehicIdfalse );
  773.                     $LocationLock->setOptionId$equip->id );
  774.                     $LocationLock->setNbsel$equip->nbchoisi );
  775.                 //    $LocationLock->setLocId( $vehic->nb );
  776.                     
  777.                     $manager->persist($LocationLock);
  778.                     $manager->flush();
  779.               }
  780.             }
  781.         /*    $LocationLock = new LocationLock();
  782.             $LocationLock->setNoDevis( $DevisSend->getNoDevis() );
  783.             $LocationLock->setDateDeb( \DateTime::createFromFormat('Y-m-d', $vehic->datedeb)  );
  784.             $LocationLock->setDateFin( \DateTime::createFromFormat('Y-m-d', $vehic->datefin) );
  785.             $LocationLock->setVehictrue( true );
  786.             $LocationLock->setVehicId( $vehic->id );
  787.             $LocationLock->setOptionId( false );
  788.             $LocationLock->setNbsel( $vehic->nb );*/
  789.         //    $LocationLock->setLocId( $vehic->nb );
  790.             
  791.     /*    $manager->persist($LocationLock);
  792.           $manager->flush();
  793.     */     }
  794.         //vérouillage des versions de vehicules
  795.         $dataloc $DevisSend->getData();
  796.         $dataloc json_decode($dataloc);
  797.         
  798.         for ($i=0$i count($detailsvalidevis); $i++) {
  799.             $detailsvalidevi $detailsvalidevis[$i];
  800.             foreach ($dataloc as $datloc) {
  801.                 if( $datloc->id == $detailsvalidevis[$i]->idve){
  802.                     $datoc $datloc;
  803.                 }
  804.             }
  805.             $VersionVehicules $VersionVehiculesRepository->findBy(
  806.                 array('id' => $detailsvalidevi->veculid),
  807.                 array()
  808.             );
  809.             $VersionVehicule $VersionVehicules[0];
  810.             $Infos $VersionVehicule->getInfos();
  811.             
  812.             if( $Infos == null ){  $Infos '[]' ;}
  813.             $Infos \json_decode($Infos);
  814.             $object = new \stdClass();
  815.             $object->idevis $DevisSend->getId();
  816.             $object->nodevis $DevisSend->getNoDevis();
  817.             $object->datedeb $datoc->datedeb;
  818.             $object->datefin $datoc->datefin;
  819.             $Infos[] = $object ;
  820.             $Infos \json_encode($Infos);
  821.             $VersionVehicule->setInfos($Infos);
  822.            
  823.         $manager->persist($VersionVehicule);
  824.           $manager->flush();
  825.     
  826.           
  827.     $LocationLock = new LocationLock();
  828.     $LocationLock->setNoDevis$DevisSend->getNoDevis() );
  829.     $LocationLock->setDateDeb\DateTime::createFromFormat('Y-m-d'$vehic->datedeb)  );
  830.     $LocationLock->setDateFin\DateTime::createFromFormat('Y-m-d'$vehic->datefin) );
  831.     $LocationLock->setVehictruetrue );
  832.     $LocationLock->setVehicId(  $VersionVehicule->getId() );
  833.     $LocationLock->setOptionIdfalse );
  834.     $LocationLock->setNbsel);
  835.         $manager->persist($LocationLock);
  836.           $manager->flush();
  837.     
  838.         }
  839.         
  840.         //fin de vérouillage des versions de vehicules
  841.         $response = ['ok'];
  842.          
  843.         // dd($Location);
  844.         
  845.        $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  846.        $normalizers = [new ObjectNormalizer()];
  847.        $serializer = new Serializer($normalizers$encoders);
  848.        // Serialize your object in Json
  849.        $jsonObject $serializer->serialize($response'json', [
  850.            'circular_reference_handler' => function ($object) {
  851.                return $object->getId();
  852.            }
  853.        ]);
  854.        
  855.        
  856.        $jsonGzip gzencode($jsonObject9);
  857.         $response = new Response($jsonGzip);
  858.         $response->headers->set('Content-Encoding''gzip');
  859.         $response->headers->set('Content-Type''application/json');
  860.         
  861.         return $response;
  862.     }
  863.     /**
  864.      * @Route("/admin/devis/detaildudevis/{targid}", name="detaildudevis" )
  865.      */
  866.     public function detaildudevis(Int $targid DevisSendRepository $DevisSendRepositoryVersionVehiculesRepository $VersionVehiculesRepository ,Request $request,EntityManagerInterface $managerAgenceRepository $AgenceRepositoryGaragesRepository $GaragesRepositoryProprietaireRepository $ProprietaireRepositoryEntretientRepository $EntretientRepository )
  867.     {
  868.          $DevisSends $DevisSendRepository->findBy(
  869.             ['id' => $targid ]
  870.         );
  871.         if($DevisSends ){
  872.         $DevisSend $DevisSends[0];
  873.         
  874.         }
  875.         $Agences $AgenceRepository->findBy(
  876.             array(),
  877.             array('Nom' => 'ASC')
  878.         );
  879.         $Garages $GaragesRepository->findBy(
  880.             array(),
  881.             array('Nom' => 'ASC')
  882.         );
  883.         $Proprietaires $ProprietaireRepository->findBy(
  884.             array(),
  885.             array('Nom' => 'ASC')
  886.         );
  887.         $VersionVehicules $VersionVehiculesRepository->findBy(
  888.             array(),
  889.             array('Nom' => 'ASC')
  890.         );
  891.         
  892.         $Entretient $EntretientRepository->findBy(
  893.             array(),
  894.             ['IdVersion' => 'ASC' ]
  895.         );
  896.         $versiondispo = []; 
  897.         $entret = [];
  898.         $vehiclist json_decode$DevisSend->getData() );
  899.         foreach ($vehiclist as $vehic) {
  900.             $idv $vehic->id ;
  901.             if( $idv 1000000 ){
  902.                 $idv $idv 1000000;
  903.             }
  904.             foreach ($VersionVehicules as $VersionVehicule) {
  905.                 if( $VersionVehicule->getVehicule() == $vehic->id){
  906.                     foreach ($Entretient as $Entre) { 
  907.                         if( $Entre->getIdVersion()->getVehicule() == $vehic->id){
  908.                             array_push$entret$Entre);
  909.                          }
  910.                     }
  911.                 }
  912.                 if(!isset($vehic->pilote)){
  913.                     $vehic->pilote 0;
  914.                 } 
  915.                     if( $VersionVehicule->getVehicule() == $idv &&  $vehic->pilote == $VersionVehicule->getPilote()){
  916.     
  917.                        array_push$versiondispo$VersionVehicule);
  918.                     }
  919.             }
  920.         }
  921.         $response=[];
  922.         $response['DevisSend'] = $DevisSend;
  923.         $response['versiondispo'] = $versiondispo;
  924.         $response['Agences'] = $Agences;
  925.         $response['Garages'] = $Garages;
  926.         $response['Proprietaires'] = $Proprietaires;
  927.         $response['Entretient'] = $entret;
  928.         
  929.         
  930.         // dd($Location);
  931.         
  932.        $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  933.        $normalizers = [new ObjectNormalizer()];
  934.        $serializer = new Serializer($normalizers$encoders);
  935.        // Serialize your object in Json
  936.        $jsonObject $serializer->serialize($response'json', [
  937.            'circular_reference_handler' => function ($object) {
  938.                return $object->getId();
  939.            }
  940.        ]);
  941.        
  942.        
  943.        $jsonGzip gzencode($jsonObject9);
  944.         $response = new Response($jsonGzip);
  945.         $response->headers->set('Content-Encoding''gzip');
  946.         $response->headers->set('Content-Type''application/json');
  947.         
  948.         return $response;
  949.     }
  950.      /**
  951.      * @Route("/admin/devis/supprime/{trg}", name="devisdel_delete")
  952.      */
  953.     public function devisdel_delete(int $trg DevisSendRepository $DevisSendRepository Request $requestEntityManagerInterface $manager)
  954.     {
  955.         $DevisSends $DevisSendRepository->findBy(
  956.             ['id' => $trg ]
  957.         );  
  958.         if($DevisSends ){
  959.         $DevisSend $DevisSends[0];
  960.         
  961.         }
  962.         $manager->remove($DevisSend);
  963.         $manager->flush();
  964.             return $this->redirectToRoute('voir_devis');
  965.     }
  966.     /**
  967.      * @Route("/devis/api/vehicule/", name="devis_api_vehicule_liste")
  968.      */
  969.     public function devis_api_vehicule_liste(VehiculeRepository $VehiculeRepositoryRequest $request,  VersionVehiculesRepository $VersionVehiculesRepositoryEntityManagerInterface $manager)
  970.     {
  971.      
  972.       //  dd( $request->request );
  973.         $location $request->request->get('location');
  974.         if($location == 'false'){
  975.             $cat 'Achat';
  976.         }else{
  977.             $cat 'Location';
  978.         }
  979.         $ville $request->request->get('ville');
  980.     
  981.  
  982.        //  dd( $filtre_assistance_elect_sans. ' '. $filtre_assistance_elect_avec );
  983.       $filter 'v.cat LIKE :cat';
  984.       $filtelect = ['cat' => '%'.$cat.'%']; 
  985.         
  986.       
  987.         $infofiltres = [];
  988.         $VersionVehicules $VersionVehiculesRepository->findBy(
  989.             array('Agence' => $ville)
  990.         );
  991.         $listver = [];
  992.         foreach ($VersionVehicules as $VersionVehicule) {
  993.             if( !in_array$VersionVehicule->getVehicule(), $listver ) ){
  994.                 $listver[] = $VersionVehicule->getVehicule();
  995.             }
  996.         }
  997.  
  998.         
  999.                 $listevehicules $VehiculeRepository->createQueryBuilder('v')
  1000.             ->where'v.cat LIKE :cat')
  1001.             ->andWhere('v.id IN (:list)')
  1002.             ->setParameter('cat''%'.$cat.'%')  
  1003.             ->setParameter('list'$listver)
  1004.             ->orderBy('v.nom''ASC')   
  1005.             ->getQuery()
  1006.             ->getResult();
  1007.             
  1008.         $listevehiculess = [];
  1009.         for ($i 0$i count$listevehicules ); $i++) {
  1010.             $countve 0;
  1011.             $countvepi 0;
  1012.             foreach ($VersionVehicules as $VersionVehicule) {
  1013.                 if( $VersionVehicule->getVehicule() == $listevehicules[$i]->getId()){
  1014.                     if( $VersionVehicule->getPilote() == true ){
  1015.                         $countvepi $countvepi 1;
  1016.                     }else{
  1017.                         $countve $countve 1;
  1018.                     } 
  1019.                 }
  1020.             }
  1021.             if($countvepi 0){
  1022.                 $vlis = clone $listevehicules[$i] ;
  1023.                  $manager->detach($vlis); 
  1024.                  $vlis->setId$listevehicules[$i]->getId() + 1000000 ); 
  1025.                 $vlis->setPilotetrue );
  1026.                 $vlis->setNbVehicules$countvepi );
  1027.                 $listevehiculess[] = $vlis ;
  1028.             }
  1029.             if($countve 0){
  1030.                 $listevehicules[$i]->setPilotefalse );
  1031.                 $listevehicules[$i]->setNbVehicules$countve );
  1032.                 $listevehiculess[] = $listevehicules[$i];
  1033.             }
  1034.             
  1035.         }
  1036.         $VersionVehiculesmores $VersionVehiculesRepository->createQueryBuilder('t')
  1037.         ->where('t.Agence != :agence')
  1038.         ->setParameter('agence'$ville)
  1039.         ->getQuery()
  1040.         ->getResult();
  1041.         
  1042.          
  1043.         $listvermore = [];
  1044.         foreach ($VersionVehiculesmores as $VersionVehiculesmore) {
  1045.             if( !in_array$VersionVehiculesmore->getVehicule(), $listvermore ) ){
  1046.                 $listvermore[] = $VersionVehiculesmore->getVehicule();
  1047.             }
  1048.         }
  1049.         $listevehiculesmores = [];
  1050.                 $listevehiculesmores $VehiculeRepository->createQueryBuilder('v')
  1051.             ->where'v.cat LIKE :cat')
  1052.             ->andWhere('v.id IN (:list)')
  1053.             ->setParameter('cat''%'.$cat.'%')  
  1054.             ->setParameter('list'$listvermore)
  1055.             ->orderBy('v.nom''ASC')   
  1056.             ->getQuery()
  1057.             ->getResult();
  1058.             
  1059.  
  1060.         $listevehiculesmoress = [];
  1061.         for ($i 0$i count$listevehiculesmores ); $i++) {
  1062.             $countve 0;
  1063.             $countvepi 0;
  1064.             foreach ($VersionVehiculesmores as $VersionVehicule) {
  1065.                 if( $VersionVehicule->getVehicule() == $listevehiculesmores[$i]->getId()){
  1066.                     if( $VersionVehicule->getPilote() == true ){
  1067.                         $countvepi $countvepi 1;
  1068.                     }else{
  1069.                         $countve $countve 1;
  1070.                     } 
  1071.                 }
  1072.             }
  1073.             if($countvepi 0){
  1074.                 $vlis = clone $listevehiculesmores[$i] ;
  1075.                  $manager->detach($vlis); 
  1076.                  $vlis->setId$listevehiculesmores[$i]->getId() + 1000000 ); 
  1077.                 $vlis->setPilotetrue );
  1078.                 $vlis->setNbVehicules$countvepi );
  1079.                 $listevehiculesmoress[] = $vlis ;
  1080.             }
  1081.             if($countve 0){
  1082.                 $listevehiculesmores[$i]->setPilotefalse );
  1083.                 $listevehiculesmores[$i]->setNbVehicules$countve );
  1084.                 $listevehiculesmoress[] = $listevehiculesmores[$i];
  1085.             }
  1086.             
  1087.         }
  1088.             
  1089.       
  1090.         $response['listevehicules']= $listevehiculess;
  1091.         $response['VersionVehicules']= $VersionVehicules;
  1092.         $response['listevehiculesmores']= $listevehiculesmores;
  1093.         $response['VersionVehiculesmores']= $VersionVehiculesmores;
  1094.         
  1095.         
  1096.  
  1097.            //   dd( $response );
  1098.   
  1099.         $encoders = [new JsonEncoder()]; // If no need for XmlEncoder
  1100.         $normalizers = [new ObjectNormalizer()];
  1101.         $serializer = new Serializer($normalizers$encoders);
  1102.         // Serialize your object in Json
  1103.         $jsonObject $serializer->serialize($response'json',
  1104.         [AbstractNormalizer::IGNORED_ATTRIBUTES => [ 'listeVehicule' ],
  1105.             'circular_reference_handler' => function ($object) {
  1106.                 return $object->getId();
  1107.             }
  1108.         ]);  
  1109.         
  1110.         $jsonGzip gzencode($jsonObject9);
  1111.         $response = new Response($jsonGzip);
  1112.         $response->headers->set('Content-Encoding''gzip');
  1113.         $response->headers->set('Content-Type''application/json');
  1114.         
  1115.         return $response;
  1116.     }
  1117.     
  1118. }