src/Controller/Vehicules/VehiculeClientController.php line 324

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Vehicules;
  3. use App\Entity\Clients\Client;
  4. use App\Entity\FO\Societe;
  5. use App\Entity\GestionComerciale\Commande;
  6. use App\Entity\GestionComerciale\Facture;
  7. use App\Entity\GestionComerciale\OrdreRep;
  8. use App\Entity\Vehicules\Marque;
  9. use App\Entity\Vehicules\Modele;
  10. use App\Entity\Vehicules\VehiculeClient;
  11. use App\Form\Vehicules\SupprimerVehiculeClientType;
  12. use App\Form\Vehicules\VehiculeClientType;
  13. use App\Library\Datatable\Util\Datatable;
  14. use App\Model\GestionCommerciale\TypeDocumentCommercial;
  15. use App\Security\Voter\EntityVoter;
  16. use App\Service\FO\Logo;
  17. use App\Service\Utilisateur\ColonneTableauService;
  18. use App\Service\Vehicules\DocumentVehicule;
  19. use App\Service\Vehicules\ImageVehicule;
  20. use Doctrine\ORM\EntityManagerInterface;
  21. use Knp\Snappy\Pdf;
  22. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  23. use Symfony\Component\HttpFoundation\JsonResponse;
  24. use Symfony\Component\HttpFoundation\Request;
  25. use Symfony\Component\HttpFoundation\Response;
  26. use Symfony\Component\Routing\Annotation\Route;
  27. use Symfony\Component\Validator\Validator\ValidatorInterface;
  28. use Symfony\Contracts\Translation\TranslatorInterface;
  29. class VehiculeClientController extends AbstractController
  30. {
  31.     /**
  32.      * @Route("/vehicule/client/historique/pdf/{id}", name="dtc_vehicule_client_historique_pdf")
  33.      */
  34.     public function pdfHistoriqueAction(Request $requestVehiculeClient $vehiculeClient$retour trueEntityManagerInterface $emPdf $snappy)
  35.     {
  36.         $societe    $em->getRepository(Societe::class)->find(1);
  37.         $date_Y     date("Y");
  38.         $date_M     date("m");
  39.         $date_D     date("d");
  40.         $date       $date_Y.'/'.$date_M.'/'.$date_D;
  41.         $chemin_pdf 'PDF/VEHICULES/'.$date.'/V-'.$vehiculeClient->getId().'.pdf';
  42.         if (file_exists($chemin_pdf)) {
  43.             unlink($chemin_pdf);
  44.         }
  45.         //return $this->render('GestionComerciale/BonPreparation/template_pdf.html.twig',array('commande'  => $bonPreparation,'societe'  => $societe));
  46.         $footer $this->renderView('FO/PDF/footer_pagination_pdf.html.twig', ['societe' => $societe]);
  47.         $header $this->renderView('FO/PDF/header_vehicule_historique.html.twig', ['societe' => $societe'vehiculeClient' => $vehiculeClient]);
  48.         //$snappy->setOption('page-size', 'A4');
  49.         $snappy->setOption('header-html'$header);
  50.         $snappy->setOption('footer-html'$footer);
  51.         $snappy->setOption('orientation'"Landscape");
  52.         //$snappy->setOption('header-html',$footer);
  53.         $snappy->setOption('margin-bottom'"10");
  54.         //$snappy->setOption('margin-top',"5");
  55.         //$snappy->setOption('zoom', 1 );
  56.         //$snappy->setOption('dpi', 300 );
  57.         $ors $em->getRepository(Commande::class)->getOrVehiculeClient($vehiculeClient);
  58.         $snappy->generateFromHtml(
  59.             $this->renderView(
  60.                 'Vehicules/VehiculeClient/historique_pdf.html.twig',
  61.                 [
  62.                     'vehiculeClient' => $vehiculeClient,
  63.                     'ors'            => $ors,
  64.                     'societe'        => $societe,
  65.                 ]
  66.             ),
  67.             $chemin_pdf
  68.         );
  69.         if ($retour == true) {
  70.             return $this->render('FO/PDF/conteneur_pdf.html.twig', ['chemin_pdf' => '/'.$chemin_pdf]);
  71.             //return new RedirectResponse("/".$chemin_pdf);
  72.         }
  73.     }
  74.     /**
  75.      * @Route("/vehicule/client/historique/{id}", name="dtc_vehicule_client_historique")
  76.      */
  77.     public function historiqueAction(Request $requestVehiculeClient $vehiculeClient)
  78.     {
  79.         $titre_modal "Historique véhicule";
  80.         $errors      "";
  81.         $rendu       $this->renderView('Vehicules/VehiculeClient/historique.html.twig', ['vehiculeClient' => $vehiculeClient'type' => '''errors' => $errors]);
  82.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  83.     }
  84.     /**
  85.      * @Route("/vehicule/client/dupliquer/{id}", name="dtc_vehicule_client_dupliquer")
  86.      */
  87.     public function dupliquerAction(Request $requestVehiculeClient $vehiculeClientEntityManagerInterface $em)
  88.     {
  89.         $vehiculeClient_duplique = clone $vehiculeClient;
  90.         $vehiculeClient_duplique->setLibelle("COPIE ".$vehiculeClient_duplique->getLibelle());
  91.         $em->persist($vehiculeClient_duplique);
  92.         $em->flush();
  93.         $this->addFlash(
  94.             'notice',
  95.             'Véhicule dupliqué avec succès !'
  96.         );
  97.         return $this->redirectToRoute('dtc_vehicule_client_liste');
  98.     }
  99.     /**
  100.      * @Route("/vehicule/client/nouveau", name="dtc_vehicule_client_ajouter")
  101.      */
  102.     public function ajouterAction(Request $requestEntityManagerInterface $emImageVehicule $imageServiceDocumentVehicule $documentServiceValidatorInterface $validator)
  103.     {
  104.         $vehiculeClient = new VehiculeClient;
  105.         $user           $this->getUser();
  106.         $vehiculeClient->setUtilisateur($user);
  107.         $form   $this->createForm(VehiculeClientType::class, $vehiculeClient);
  108.         $errors "";
  109.         $form->handleRequest($request);
  110.         if ($form->isSubmitted()) {
  111.             $tokenP $request->request->get('tokenPicture');
  112.             $tokenD $request->request->get('tokenDocument');
  113.             if ($form->isValid()) {
  114.                 $em->persist($vehiculeClient);
  115.                 $em->flush();
  116.                 $imageService->sauvegarder($vehiculeClient'images'$tokenP);
  117.                 $documentService->sauvegarder($vehiculeClient'documents'$tokenD);
  118.                 $this->addFlash(
  119.                     'notice',
  120.                     'Véhicule client ajouté avec succès !'
  121.                 );
  122.                 return $this->redirectToRoute('dtc_vehicule_client_liste');
  123.             } else {
  124.                 $errors $validator->validate($vehiculeClient);
  125.             }
  126.         }
  127.         return $this->render('Vehicules/VehiculeClient/ajouter.html.twig', ['form' => $form->createView(), 'errors' => $errors]);
  128.     }
  129.     /**
  130.      * @Route("/vehicule/client/nouveau/{id}", name="dtc_vehicule_client_ajouter2")
  131.      */
  132.     public function ajouterAjaxAction(Request $request$idEntityManagerInterface $emLogo $imageServiceDocumentVehicule $documentServiceValidatorInterface $validator)
  133.     {
  134.         $vehiculeClient = new VehiculeClient;
  135.         $user           $this->getUser();
  136.         $vehiculeClient->setUtilisateur($user);
  137.         $clients     $request->get('id');
  138.         $redirection $request->get('redirection');
  139.         $get         $request->query->all();
  140.         if ($id != "") {
  141.             $repoclient $em->getRepository(Client::class);
  142.             $client     $repoclient->find($id);
  143.             $vehiculeClient->setClient($client);
  144.         }
  145.         $form        $this->createForm(VehiculeClientType::class, $vehiculeClient);
  146.         $titre_modal " Nouveau véhicule";
  147.         $errors      "";
  148.         $form->handleRequest($request);
  149.         if ($form->isSubmitted()) {
  150.             $tokenP $request->request->get('tokenPicture');
  151.             $tokenD $request->request->get('tokenDocument');
  152.             if ($form->isValid()) {
  153.                 $em->persist($vehiculeClient);
  154.                 $em->flush();
  155.                 $imageService->sauvegarder($vehiculeClient'images'$tokenP);
  156.                 $documentService->sauvegarder($vehiculeClient'documents'$tokenD);
  157.                 if (array_key_exists('table'$get) && $get["table"] != "") {
  158.                     return new JsonResponse(['rendu' => '''valide' => '1''url' => '''type' => 'recharger_datatable''id_datatable' => $get["table"]]);
  159.                 } else {
  160.                     //$this->addFlash( 'notice','Véhicule client ajouté avec succès !');
  161.                     //$libelle = $vehiculeClient->getMarque()->getLibelle()." ".$vehiculeClient->getModele()->getLibelle()." ".$vehiculeClient->getNumSerie();
  162.                     $libelle $vehiculeClient->getLibelle();
  163.                     return new JsonResponse(
  164.                         ['rendu' => '''valide' => '0''url' => ""'type' => 'client''libelle' => $client->getNom(), 'id_client' => $client->getId()]
  165.                     );
  166.                 }
  167.             } else {
  168.                 $errors $validator->validate($vehiculeClient);
  169.                 $rendu  $this->renderView(
  170.                     'Vehicules/VehiculeClient/ajouterAjax.html.twig',
  171.                     ['form' => $form->createView(), 'errors' => $errors'client' => $id'vehiculeClient' => $vehiculeClient]
  172.                 );
  173.                 return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  174.             }
  175.         }
  176.         $rendu $this->renderView('Vehicules/VehiculeClient/ajouterAjax.html.twig', ['form' => $form->createView(), 'errors' => $errors'client' => $id]);
  177.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  178.     }
  179.     /**
  180.      * @Route("/vehicule/client/modifier/{id}", name="dtc_vehicule_client_modifier")
  181.      */
  182.     public function modifierAction(Request            $requestVehiculeClient $vehiculeClientEntityManagerInterface $emImageVehicule $imageServiceDocumentVehicule $documentService,
  183.                                    ValidatorInterface $validator
  184.     ) {
  185.         $user $this->getUser();
  186.         $vehiculeClient->setUtilisateur($user);
  187.         $clients     $request->get('id');
  188.         $redirection $request->get('redirection');
  189.         $get         $request->query->all();
  190.         $id          $vehiculeClient->getClient()->getId();
  191.         if ($id != "") {
  192.             $repoclient $em->getRepository(Client::class);
  193.             $client     $repoclient->find($id);
  194.             $vehiculeClient->setClient($client);
  195.         }
  196.         $form        $this->createForm(VehiculeClientType::class, $vehiculeClient);
  197.         $titre_modal " Modifier véhicule";
  198.         $errors      "";
  199.         $form->handleRequest($request);
  200.         if ($form->isSubmitted()) {
  201.             $tokenP $request->request->get('tokenPicture');
  202.             $tokenD $request->request->get('tokenDocument');
  203.             if ($form->isValid()) {
  204.                 $em->persist($vehiculeClient);
  205.                 $em->flush();
  206.                 $imageService->sauvegarder($vehiculeClient'images'$tokenP);
  207.                 $documentService->sauvegarder($vehiculeClient'documents'$tokenD);
  208.                 if (array_key_exists('table'$get) && $get["table"] != "") {
  209.                     return new JsonResponse(['rendu' => '''valide' => '1''url' => '''type' => 'recharger_datatable''id_datatable' => $get["table"]]);
  210.                 } else {
  211.                     $this->addFlash('notice''Véhicule client ajouté avec succès !');
  212.                     return new JsonResponse(
  213.                         ['rendu' => '''valide' => '0''url' => "#"'type' => 'client''libelle' => $client->getNom(), 'id_client' => $client->getId()]
  214.                     );
  215.                 }
  216.             } else {
  217.                 $errors $validator->validate($vehiculeClient);
  218.                 $rendu  $this->renderView(
  219.                     'Vehicules/VehiculeClient/ajouterAjax.html.twig',
  220.                     ['vehiculeClient' => $vehiculeClient'form' => $form->createView(), 'errors' => $errors'client' => $id]
  221.                 );
  222.                 return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  223.             }
  224.         }
  225.         $rendu $this->renderView(
  226.             'Vehicules/VehiculeClient/ajouterAjax.html.twig',
  227.             ['vehiculeClient' => $vehiculeClient'form' => $form->createView(), 'errors' => $errors'client' => $id]
  228.         );
  229.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  230.     }
  231.     /**
  232.      * @Route("", name="")
  233.      */
  234.     public function ____modifierAction(Request          $requestVehiculeClient $vehiculeClientEntityManagerInterface $emImageVehicule $imageService,
  235.                                        DocumentVehicule $documentServiceTranslatorInterface $translatorValidatorInterface $validator
  236.     ) {
  237.         $user $this->getUser();
  238.         $vehiculeClient->setUtilisateur($user);
  239.         $form   $this->createForm(VehiculeClientType::class, $vehiculeClient);
  240.         $errors "";
  241.         $form->handleRequest($request);
  242.         if ($form->isSubmitted()) {
  243.             $droit $this->isGranted(EntityVoter::UPDATEVehiculeClient::class);
  244.             if ( ! $droit) {
  245.                 return $this->redirectToRoute('dtc_vehicule_client_modifier', ["id" => $vehiculeClient->getId()]);
  246.             }
  247.             if ($form->isValid()) {
  248.                 $imageService->sauvegarder($vehiculeClient'images');
  249.                 $documentService->sauvegarder($vehiculeClient'documents');
  250.                 $em->persist($vehiculeClient);
  251.                 $em->flush();
  252.                 $this->addFlash(
  253.                     'notice',
  254.                     'Véhicule client sauvegardé avec succès !'
  255.                 );
  256.                 return $this->redirectToRoute('dtc_vehicule_client_modifier', ["id" => $vehiculeClient->getId()]);
  257.             } else {
  258.                 $errors $validator->validate($vehiculeClient);
  259.             }
  260.         }
  261.         return $this->render('Vehicules/VehiculeClient/ajouter.html.twig', ['form' => $form->createView(), 'errors' => $errors'vehiculeClient' => $vehiculeClient]);
  262.     }
  263.     /**
  264.      * @Route("", name="")
  265.      */
  266.     public function listerFactureAction(Request $requestVehiculeClient $vehiculesClient$type ""ColonneTableauService $serviceColonneTableauDatatable $datatable)
  267.     {
  268.         $tableau_class_cellule[] = ["className" => "colonne_id""targets" => [0], "visible" => false"orderable" => false];
  269.         $tableau_class_cellule[] = [
  270.             "className" => "visible_export colonne_id",
  271.             "targets"   => [1],
  272.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(Facture::class, "vehicule_client__date"),
  273.         ];
  274.         $tableau_class_cellule[] = [
  275.             "className" => "visible_export colonne_id",
  276.             "targets"   => [2],
  277.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(Facture::class, "vehicule_client__reference"),
  278.         ];
  279.         $tableau_class_cellule[] = [
  280.             "className" => "visible_export colonne_id",
  281.             "targets"   => [3],
  282.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(Facture::class, "vehicule_client__ordre_reparation"),
  283.         ];
  284.         $tableau_class_cellule[] = [
  285.             "className" => "visible_export colonne_id",
  286.             "targets"   => [4],
  287.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(Facture::class, "vehicule_client__total_ht"),
  288.         ];
  289.         $tableau_class_cellule[] = ["orderable" => false"className" => "colonne_id""targets" => [5], "visible" => true];
  290.         $this->datatableFactures($datatable$vehiculesClient);
  291.         return $this->render('GestionComerciale/Facture/listerVehicule.html.twig', ["vehiculesClientId" => $vehiculesClient->getId(), 'tableauClassColonne' => $tableau_class_cellule]);
  292.     }
  293.     private function datatableFactures(Datatable $datatable$vehiculesClient)
  294.     {
  295.         $datatable->setDatatableId('dta-facture-vehicule')
  296.                   ->setEntity(Commande::class, "x")
  297.                   ->setFields(
  298.                       [
  299.                           "ID"           => 'x.id',
  300.                           "Date"         => 'x.date',
  301.                           "Réf"          => 'x.reference',
  302.                           //"Type" => 't.libelle',
  303.                           "OR"           => "c.reference",
  304.                           "Total HT"     => 'x.total',
  305.                           "Actions"      => 'x.id',
  306.                           "_identifier_" => 'x.id',
  307.                       ]
  308.                   )
  309.                   ->addJoin('x.statutCommande''s'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  310.                   //->addJoin('x.typeDocumentCommercial', 't', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  311.                   ->addJoin('x.vehiculesClient''v'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  312.                   ->addJoin('x.commande''c'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  313.                   ->setRenderers(
  314.                       [
  315.                           => [
  316.                               'view'   => 'FO/DataTable/heure.html.twig',
  317.                               'params' => [],
  318.                           ],
  319.                           => [
  320.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  321.                               'params' => [
  322.                                   'edit_route'   => 'auto',
  323.                                   'typeDocument' => "",
  324.                               ],
  325.                           ],
  326.                           => [
  327.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  328.                               'params' => [
  329.                                   'edit_route'   => 'dtc_ordre_reparation_modifier',
  330.                                   'typeDocument' => "commande",
  331.                               ],
  332.                           ],
  333.                           => [
  334.                               'view' => 'FO/DataTable/prix.html.twig',
  335.                           ],
  336.                           => [
  337.                               'view'   => 'FO/DataTable/actions.html.twig',
  338.                               'params' => [
  339.                                   'edit_route' => 'auto',
  340.                                   'pdf_route'  => 'auto',
  341.                                   'objet'      => Commande::class,
  342.                                   'deplier'    => 'true',
  343.                               ],
  344.                           ],
  345.                       ]
  346.                   )
  347.                   ->setOrder("x.id""desc")
  348.                   ->setSearch(true)
  349.                   ->setSearchFields([123]);
  350.         /*
  351.             13     Ordre de fabrication multiple
  352.             12     Facture fournisseur
  353.             11     Bon de préparation atelier
  354.             10     Devis OR
  355.             9     Ordre de fabrication
  356.             8     Commande fournisseur
  357.             7     Avoir
  358.             6     Facture
  359.             5     Bon de livraison
  360.             4     Bon de préparation
  361.             3     Ordre de réparation
  362.             2     Commande
  363.             1     Devis
  364.         */
  365.         $typeDoc    = ["6"];
  366.         $where      "    v.id = :vehiculesClient
  367.                     AND
  368.                     x.dateSuppression IS NULL
  369.                     AND
  370.                     s.ordre != :ordreStatutDoc
  371.                     AND x.typeDocumentCommercial IN (:typeDocumentCommercial)
  372.                 ";
  373.         $parameters = ['vehiculesClient' => $vehiculesClient"typeDocumentCommercial" => $typeDoc'ordreStatutDoc' => '0'];
  374.         $datatable->setWhere($where$parameters);
  375.         return $datatable;
  376.     }
  377.     /**
  378.      * @Route("/vehicule/client/supprimer/multiple", name="dtc_vehicule_liste_client_supprimer")
  379.      */
  380.     public function supprimerMultipleAction(Request $requestEntityManagerInterface $em)
  381.     {
  382.         $url $this->generateUrl('dtc_vehicule_client_liste', []);
  383.         return new JsonResponse(['url' => $url'valide' => '1']);
  384.         $data $request->get('dataTables');
  385.         $ids  $data['actions'];
  386.         $repo $em->getRepository(VehiculeClient::class);
  387.         for ($i 0$i count($ids); $i++) {
  388.             $v $repo->find($ids[$i]);
  389.             if (is_object($v)) {
  390.                 $em->remove($v);
  391.             }
  392.         }
  393.         $em->flush();
  394.         $this->addFlash(
  395.             'notice',
  396.             'Véhicules client supprimé avec succès !'
  397.         );
  398.         $url $this->generateUrl('dtc_vehicule_client_liste', []);
  399.         return new JsonResponse(['url' => $url'valide' => '1']);
  400.     }
  401.     /**
  402.      * @Route("/vehicule/client/supprimer/{id}", name="dtc_vehicule_client_supprimer")
  403.      */
  404.     public function supprimerAction(Request $requestVehiculeClient $vehiculeClientEntityManagerInterface $emValidatorInterface $validator)
  405.     {
  406.         $titre_modal "Demande de confirmation";
  407.         $user        $this->getUser();
  408.         $repo_commande            $em->getRepository(Commande::class);
  409.         $vehicule_commande_existe $repo_commande->findOneBy(["vehiculesClient" => $vehiculeClient]);
  410.         $erreur                   "";
  411.         //Verifier si un client a une civilité
  412.         if (is_object($vehicule_commande_existe)) {
  413.             $erreur .= 'Le véhicule n\'est pas supprimable car il est relié à une ou plusieurs commandes.';
  414.         }
  415.         if ($erreur != "") {
  416.             $rendu $this->renderView('FO/Supprimer/supprimer_impossible.html.twig', ['errors' => $erreur]);
  417.             return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  418.         }
  419.         $form   $this->createForm(SupprimerVehiculeClientType::class, $vehiculeClient);
  420.         $errors "";
  421.         $form->handleRequest($request);
  422.         $get $request->query->all();
  423.         if ($form->isSubmitted()) {
  424.             if ($form->isValid()) {
  425.                 $em->remove($vehiculeClient);
  426.                 $em->flush();
  427.                 if (array_key_exists('table'$get) && $get["table"] != "") {
  428.                     return new JsonResponse(['rendu' => '''valide' => '1''url' => '''type' => 'recharger_datatable''id_datatable' => $get["table"]]);
  429.                 } else {
  430.                     $this->addFlash('notice''Véhicule supprimé avec succès !');
  431.                     $url $this->generateUrl('dtc_vehicule_client_liste', []);
  432.                     return new JsonResponse(['rendu' => '''valide' => '1''url' => $url]);
  433.                 }
  434.             } else {
  435.                 $errors $validator->validate($vehiculeClient);
  436.                 $rendu  $this->renderView('FO/Supprimer/supprimer.html.twig', ['form' => $form->createView(), 'errors' => $errors'id' => $vehiculeClient->getId(), 'type' => '']);
  437.                 return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  438.             }
  439.         }
  440.         $rendu $this->renderView('FO/Supprimer/supprimer.html.twig', ['form' => $form->createView(), 'id' => $vehiculeClient->getId(), 'type' => '''errors' => $errors]);
  441.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  442.     }
  443.     /**
  444.      * @Route("/vehicule/client", name="dtc_vehicule_client_liste")
  445.      */
  446.     public function listerAction(Request $request$client$idEntityManagerInterface $emColonneTableauService $serviceColonneTableauDatatable $datatable)
  447.     {
  448.         $tableau_class_cellule[] = ["className" => "colonne_id""targets" => [0], "visible" => true"orderable" => false];
  449.         $tableau_class_cellule[] = [
  450.             "className" => "visible_export colonne_id",
  451.             "targets"   => [1],
  452.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "id"),
  453.         ];
  454.         $tableau_class_cellule[] = [
  455.             "className" => "visible_export colonne_id",
  456.             "targets"   => [2],
  457.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "image"),
  458.         ];
  459.         $tableau_class_cellule[] = [
  460.             "className" => "visible_export colonne_id",
  461.             "targets"   => [3],
  462.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "libelle"),
  463.         ];
  464.         $tableau_class_cellule[] = [
  465.             "className" => "visible_export colonne_id",
  466.             "targets"   => [4],
  467.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "marque"),
  468.         ];
  469.         $tableau_class_cellule[] = [
  470.             "className" => "visible_export colonne_id",
  471.             "targets"   => [5],
  472.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "modele"),
  473.         ];
  474.         $tableau_class_cellule[] = [
  475.             "className" => "visible_export colonne_id",
  476.             "targets"   => [6],
  477.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "type"),
  478.         ];
  479.         $tableau_class_cellule[] = [
  480.             "className" => "visible_export colonne_id",
  481.             "targets"   => [7],
  482.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "client"),
  483.         ];
  484.         $tableau_class_cellule[] = [
  485.             "className" => "visible_export colonne_id",
  486.             "targets"   => [8],
  487.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "kilometrage"),
  488.         ];
  489.         $tableau_class_cellule[] = [
  490.             "className" => "visible_export colonne_id",
  491.             "targets"   => [9],
  492.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "puissance"),
  493.         ];
  494.         $tableau_class_cellule[] = [
  495.             "className" => "visible_export colonne_id",
  496.             "targets"   => [10],
  497.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "immatriculation"),
  498.         ];
  499.         $tableau_class_cellule[] = [
  500.             "className" => "visible_export colonne_id",
  501.             "targets"   => [11],
  502.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "numSerie"),
  503.         ];
  504.         $tableau_class_cellule[] = [
  505.             "className" => "visible_export colonne_id",
  506.             "targets"   => [12],
  507.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(VehiculeClient::class, "dateControleTechnique"),
  508.         ];
  509.         $tableau_class_cellule[] = ["orderable" => false"className" => "colonne_id""targets" => [13], "visible" => true];
  510.         $modele      = [];
  511.         $repo_marque $em->getRepository(Marque::class);
  512.         $marque      $repo_marque->findBy([], ["libelle" => "ASC"]);
  513.         $param $request->query->all();
  514.         if (array_key_exists('marque'$param) and $param["marque"] > 0) {
  515.             $parent $repo_marque->find($param["marque"]);
  516.             if (is_object($parent)) {
  517.                 $repo_modele $em->getRepository(Modele::class);
  518.                 $modele      $repo_modele->findBy(["marque" => $parent], ["libelle" => "ASC"]);
  519.             }
  520.         }
  521.         $this->datatable($request$datatable$client$id);
  522.         $parametres = [];
  523.         //$parametres["parametres"] = $param;
  524.         if (is_object($client)) {
  525.             return $this->render('Vehicules/VehiculeClient/lister-client.html.twig', [
  526.                 'client'              => $client,
  527.                 'parametres'          => $param,
  528.                 "marque"              => $marque,
  529.                 "modele"              => $modele,
  530.                 'tableauClassColonne' => $tableau_class_cellule,
  531.             ]);
  532.         } else {
  533.             return $this->render('Vehicules/VehiculeClient/lister.html.twig', [
  534.                 'parametres'          => $param,
  535.                 "marque"              => $marque,
  536.                 "modele"              => $modele,
  537.                 'tableauClassColonne' => $tableau_class_cellule,
  538.             ]);
  539.         }
  540.     }
  541.     /**
  542.      * set datatable configs
  543.      *
  544.      * @return \App\Library\Datatable\Util\Datatable
  545.      */
  546.     private function datatable(Request $requestDatatable $datatable$client null)
  547.     {
  548.         $param $request->query->all();
  549.         $datatable->setDatatableId('dta-vehicules')
  550.                   ->setEntity(VehiculeClient::class, "x")
  551.                   ->setFields(
  552.                       [
  553.                           "ID"           => 'x.id',
  554.                           "Img"          => 'x.id',
  555.                           "Libellé"      => 'x.libelle',
  556.                           "Marque"       => 'm.libelle',
  557.                           "Modèle"       => 'mod.libelle',
  558.                           "Type"         => 't.libelle',
  559.                           "Clt"          => 'c.nom',
  560.                           "Km"           => 'x.kilometrage',
  561.                           "Puissance"    => 'x.puissance',
  562.                           "Immat"        => 'x.immatriculation',
  563.                           "Num série"    => 'x.numSerie',
  564.                           "Date CT"      => 'x.dateControleTechnique',
  565.                           "Actions"      => 'x.id',
  566.                           "_identifier_" => 'x.id',
  567.                       ]
  568.                   )
  569.                   ->addJoin('x.marque''m'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  570.                   ->addJoin('x.modele''mod'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  571.                   ->addJoin('x.type''t'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  572.                   ->addJoin('x.client''c'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  573.                   ->setRenderers(
  574.                       [
  575.                           0  => [
  576.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  577.                               'params' => [
  578.                                   'edit_route' => 'dtc_vehicule_client_modifier',
  579.                               ],
  580.                           ],
  581.                           1  => [
  582.                               'view'   => 'FO/DataTable/image.html.twig',
  583.                               'params' => [
  584.                                   'edit_route' => 'dtc_vehicule_client_modifier',
  585.                               ],
  586.                           ],
  587.                           2  => [
  588.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  589.                               'params' => [
  590.                                   'edit_route' => 'dtc_vehicule_client_modifier',
  591.                               ],
  592.                           ],
  593.                           3  => [
  594.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  595.                               'params' => [
  596.                                   'edit_route'   => 'dtc_vehicule_marque_modifier',
  597.                                   'typeDocument' => 'marqueVehicule',
  598.                               ],
  599.                           ],
  600.                           4  => [
  601.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  602.                               'params' => [
  603.                                   'edit_route'   => 'dtc_vehicule_modele_modifier',
  604.                                   'typeDocument' => 'modeleVehicule',
  605.                               ],
  606.                           ],
  607.                           5  => [
  608.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  609.                               'params' => [
  610.                                   'edit_route'   => 'dtc_vehicule_type_modifier',
  611.                                   'typeDocument' => 'typeVehicule',
  612.                               ],
  613.                           ],
  614.                           6  => [
  615.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  616.                               'params' => [
  617.                                   'edit_route'   => 'dtc_client_modifier',
  618.                                   'typeDocument' => 'client',
  619.                               ],
  620.                           ],
  621.                           11 => [
  622.                               'view' => 'FO/DataTable/date.html.twig',
  623.                           ],
  624.                           12 => [
  625.                               'view'   => 'FO/DataTable/actions_modal.html.twig',
  626.                               'params' => [
  627.                                   'pdf_route'       => 'dtc_vehicule_client_historique_pdf',
  628.                                   'edit_route'      => 'dtc_vehicule_client_modifier',
  629.                                   'type'            => '',
  630.                                   //'dupliquer_route'    => 'dtc_vehicule_client_dupliquer',
  631.                                   'supprimer_route' => 'dtc_vehicule_client_supprimer',
  632.                                   'objet'           => VehiculeClient::class,
  633.                                   'table'           => 'dta-vehicules',
  634.                               ],
  635.                           ],
  636.                           /*3=> array(
  637.       'view' => 'FO/DataTable/edit_texte.html.twig',
  638.       'params' => array(
  639.               'objet'    => 'DTCVehiculesBundle:VehiculeClient',
  640.               'champ'    => 'setImmatriculation',
  641.           ),
  642. ),
  643. 4=> array(
  644.       'view' => 'FO/DataTable/edit_texte.html.twig',
  645.       'params' => array(
  646.               'objet'    => 'DTCVehiculesBundle:VehiculeClient',
  647.               'champ'    => 'setNumSerie',
  648.           ),
  649. ),
  650. */
  651.                       ]
  652.                   )
  653.                   ->setMultiple(
  654.                       [
  655.                           'delete' => [
  656.                               'title' => 'Non disponible',
  657.                               'route' => 'dtc_vehicule_liste_client_supprimer' // path to multiple delete route action
  658.                           ],
  659.                       ]
  660.                   )
  661.                   ->setOrder("x.id""desc")
  662.                   ->setSearch(true)
  663.                   ->setSearchFields([23456]);
  664.         $where      "";
  665.         $parameters = [];
  666.         if (is_object($client)) {
  667.             $where                .= "c.id = :client";
  668.             $parameters["client"] = $client->getId();
  669.         }
  670.         if (array_key_exists('parametres'$param)) {
  671.             if (array_key_exists('client'$param["parametres"]) and $param["parametres"]["client"] > 0) {
  672.                 //$datatable->addJoin('x.client', 'client', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
  673.                 $parameters["client"] = $param["parametres"]["client"];
  674.                 if ($where != "") {
  675.                     $where .= " AND ";
  676.                 }
  677.                 $where .= "c.id = :client";
  678.             }
  679.             if (array_key_exists('marque'$param["parametres"]) and $param["parametres"]["marque"] > 0) {
  680.                 //echo "AZERTYUI";
  681.                 //$datatable->addJoin('x.clientCategorie', 'cc', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
  682.                 //$datatable->addJoin('cc.categorie', 'catC', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
  683.                 $parameters["marque"] = $param["parametres"]["marque"];
  684.                 if ($where != "") {
  685.                     $where .= " AND ";
  686.                 }
  687.                 $where .= "x.marque = :marque";
  688.                 if (array_key_exists('modele'$param["parametres"]) and $param["parametres"]["modele"] > 0) {
  689.                     $parameters["modele"] = $param["parametres"]["modele"];
  690.                     $where                .= " AND x.modele = :modele";
  691.                 }
  692.             }
  693.         }
  694.         //echo $where;
  695.         if ($where != '') {
  696.             //echo $where;
  697.             $datatable->setWhere($where$parameters);
  698.         }
  699.         return $datatable;
  700.     }
  701.     /**
  702.      * Grid action
  703.      * @return Response
  704.      */
  705.     /**
  706.      * @Route("/vehicule/client/grid/{id}", name="dtc_vehicule_client_liste_grid")
  707.      */
  708.     public function gridAction(Request $requestClient $clientDatatable $datatable)
  709.     {
  710.         return $this->datatable($request$datatable$client)->execute();
  711.     }
  712.     /**
  713.      * @Route("/vehicule/client/or", name="dtc_vehicule_client_liste_or")
  714.      */
  715.     public function listerOrdreRepAction(Request $requestVehiculeClient $vehiculesClient$type ""ColonneTableauService $serviceColonneTableauDatatable $datatable)
  716.     {
  717.         $visible_col_1  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "id");
  718.         $visible_col_2  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "reference");
  719.         $visible_col_3  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "date");
  720.         $visible_col_4  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "statutCommande");
  721.         $visible_col_5  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "refclient");
  722.         $visible_col_6  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "client");
  723.         $visible_col_7  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "rdv");
  724.         $visible_col_8  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "equipier");
  725.         $visible_col_9  $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "immat");
  726.         $visible_col_10 $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "marque");
  727.         $visible_col_11 $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "modele");
  728.         $visible_col_12 $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "km");
  729.         $visible_col_13 $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "serie");
  730.         $visible_col_14 $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "commentaire");
  731.         $visible_col_15 $serviceColonneTableau->getColonneUtilisateur(OrdreRep::class, "refCli");
  732.         if ($type == "modal") {
  733.             $visible_col_1  false;
  734.             $visible_col_4  false;
  735.             $visible_col_5  false;
  736.             $visible_col_8  true;
  737.             $visible_col_9  false;
  738.             $visible_col_10 false;
  739.             $visible_col_11 false;
  740.             $visible_col_12 true;
  741.             $visible_col_15 false;
  742.         }
  743.         $tableau_class_cellule[] = ["className" => "colonne_id""targets" => [0], "visible" => false"orderable" => false];
  744.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [1], "visible" => $visible_col_1];
  745.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [2], "visible" => $visible_col_2];
  746.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [3], "visible" => $visible_col_3];
  747.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [4], "visible" => $visible_col_4];
  748.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [5], "visible" => $visible_col_5];
  749.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [6], "visible" => $visible_col_6];
  750.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [7], "visible" => $visible_col_7];
  751.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [8], "visible" => $visible_col_8];
  752.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [9], "visible" => $visible_col_9];
  753.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [10], "visible" => $visible_col_10];
  754.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [11], "visible" => $visible_col_11];
  755.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [12], "visible" => $visible_col_12];
  756.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [13], "visible" => $visible_col_13];
  757.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [14], "visible" => $visible_col_14];
  758.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [15], "visible" => $visible_col_15];
  759.         $tableau_class_cellule[] = ["orderable" => false"className" => "colonne_id""targets" => [16], "visible" => true];
  760.         $this->datatableOrdreRep$datatable,$vehiculesClient);
  761.         return $this->render('GestionComerciale/OrdreRep/listerVehicule.html.twig', ["vehiculesClientId" => $vehiculesClient->getId(), 'tableauClassColonne' => $tableau_class_cellule]);
  762.     }
  763.     /**
  764.      * set datatable configs
  765.      *
  766.      * @return \App\Library\Datatable\Util\Datatable
  767.      */
  768.     private function datatableOrdreRep(Datatable $datatable$vehiculesClient)
  769.     {
  770.         $datatable
  771.             ->setDatatableId('dta-or-vehicule')
  772.             ->setEntity(Commande::class, "x")
  773.             ->setFields(
  774.                 [
  775.                     "ID"           => 'x.id',
  776.                     "Réf"          => 'x.reference',
  777.                     "Date"         => 'x.date',
  778.                     "Statut"       => 'sc.id',
  779.                     "Réf client"   => 'c.reference',
  780.                     "Client"       => 'c.nom',
  781.                     "RDV "         => 'x.dateBon',
  782.                     "Équipier"     => 'u.reference',
  783.                     "Immat"        => 'v.immatriculation',
  784.                     "Marque"       => 'm.libelle',
  785.                     "Modèle"       => 'mo.libelle',
  786.                     "Km"           => 'x.kilometrage',
  787.                     "Num serie"    => 'v.numSerie',
  788.                     "Comm"         => 'x.commentaire',
  789.                     "Réf cmde cli" => 'x.referenceClient',
  790.                     "Actions"      => 'x.id',
  791.                     "_identifier_" => 'x.id',
  792.                 ]
  793.             )
  794.             ->addJoin('x.vehiculesClient''v'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  795.             ->addJoin('v.marque''m'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  796.             ->addJoin('x.statutCommande''sc'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  797.             ->addJoin('v.modele''mo'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  798.             ->addJoin('x.etatCommande''ec'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  799.             ->addJoin('x.client''c'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  800.             ->addJoin('x.utilisateur''u'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  801.             ->setWhere(
  802.                 'x.typeDocumentCommercial = :typeDocumentCommercial AND x.vehiculesClient = :vehiculesClient  ',
  803.                 ['vehiculesClient' => $vehiculesClient'typeDocumentCommercial' => TypeDocumentCommercial::COMMANDE]
  804.             )
  805.             ->setRenderers(
  806.                 [
  807.                     => [
  808.                         'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  809.                         'params' => [
  810.                             'edit_route' => 'dtc_ordre_reparation_modifier',
  811.                         ],
  812.                     ],
  813.                     => [
  814.                         'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  815.                         'params' => [
  816.                             'edit_route' => 'dtc_ordre_reparation_modifier',
  817.                         ],
  818.                     ],
  819.                     => [
  820.                         'view' => 'FO/DataTable/heure.html.twig',
  821.                     ],
  822.                     => [
  823.                         'view' => 'FO/DataTable/statut-commande-fournisseur.html.twig',
  824.                     ],
  825.                     => [
  826.                         'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  827.                         'params' => [
  828.                             'edit_route'   => 'dtc_client_modifier',
  829.                             'typeDocument' => 'client',
  830.                         ],
  831.                     ],
  832.                     5  => [
  833.                         'view'   => 'FO/DataTable/client.html.twig',
  834.                         'params' => [],
  835.                     ],
  836.                     6  => [
  837.                         'view' => 'FO/DataTable/heure.html.twig',
  838.                     ],
  839.                     7  => [
  840.                         'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  841.                         'params' => [
  842.                             'edit_route'   => 'dtc_utilisateur_modifier',
  843.                             'typeDocument' => 'equipier',
  844.                         ],
  845.                     ],
  846.                     9  => [
  847.                         'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  848.                         'params' => [
  849.                             'edit_route'   => 'dtc_vehicule_marque_modifier',
  850.                             'typeDocument' => 'marqueVehiculeOr',
  851.                         ],
  852.                     ],
  853.                     10 => [
  854.                         'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  855.                         'params' => [
  856.                             'edit_route'   => 'dtc_vehicule_modele_modifier',
  857.                             'typeDocument' => 'modeleVehiculeOr',
  858.                         ],
  859.                     ],
  860.                     13 => [
  861.                         'view' => 'FO/DataTable/commentaire.html.twig',
  862.                     ],
  863.                     15 => [
  864.                         'view'   => 'FO/DataTable/actions.html.twig',
  865.                         'params' => [
  866.                             'edit_route' => 'dtc_commande_modifier',
  867.                             //'supprimer_route'    => 'dtc_commande_supprimer',
  868.                             'objet'      => Commande::class,
  869.                             'deplier'    => true,
  870.                         ],
  871.                     ],
  872.                 ]
  873.             )
  874.             ->setMultiple(
  875.                 [
  876.                     'delete' => [
  877.                         'title' => 'Non disponible',
  878.                         'route' => 'dtc_commande_liste_supprimer',
  879.                     ],
  880.                 ]
  881.             )
  882.             ->setOrder("x.date""desc")
  883.             //->setOrder("ec.ordre", "desc")
  884.             ->setSearch(true)
  885.             ->setSearchFields([1345910]);
  886.         //$datatable->setSearchFields(array(0,2));
  887.         return $datatable;
  888.     }
  889.     /**
  890.      * set datatable configs
  891.      *
  892.      * @return \App\Library\Datatable\Util\Datatable
  893.      */
  894.     private function __datatableOrdreRep(Datatable $datatable,$vehiculesClient)
  895.     {
  896.         $datatable->setEntity(Commande::class, "x")
  897.                   ->setFields(
  898.                       [
  899.                           "ID"           => 'x.id',
  900.                           "Réf"          => 'x.reference',
  901.                           "Date"         => 'x.date',
  902.                           "Type"         => 'x.id',
  903.                           "Réf client"   => 'c.reference',
  904.                           "Client"       => 'c.nom',
  905.                           "RDV"          => 'x.dateBon',
  906.                           "Équipier"     => 'u.reference',
  907.                           "Num serie"    => 'v.numSerie',
  908.                           "Comm"         => 'x.commentaire',
  909.                           "Réf cmde cli" => 'x.referenceClient',
  910.                           "Actions"      => 'x.id',
  911.                           "_identifier_" => 'x.id',
  912.                       ]
  913.                   )
  914.                   ->addJoin('x.vehiculesClient''v'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  915.                   ->addJoin('v.marque''m'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  916.                   ->addJoin('v.modele''mo'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  917.                   ->addJoin('x.etatCommande''ec'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  918.                   ->addJoin('x.client''c'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  919.                   ->addJoin('x.utilisateur''u'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  920.                   ->setWhere(
  921.                       'x.typeDocumentCommercial = :typeDocumentCommercial AND x.vehiculesClient = :vehiculesClient  ',
  922.                       ['vehiculesClient' => $vehiculesClient'typeDocumentCommercial' => TypeDocumentCommercial::ORDREREPARATION]
  923.                   )
  924.                   ->setRenderers(
  925.                       [
  926.                           0  => [
  927.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  928.                               'params' => [
  929.                                   'edit_route' => 'dtc_ordre_reparation_modifier',
  930.                               ],
  931.                           ],
  932.                           2  => [
  933.                               'view' => 'FO/DataTable/heure.html.twig',
  934.                           ],
  935.                           3  => [
  936.                               'view'   => 'FO/DataTable/type_or.html.twig',
  937.                               'params' => [
  938.                                   'edit_route' => 'dtc_ordre_reparation_modifier',
  939.                               ],
  940.                           ],
  941.                           5  => [
  942.                               'view'   => 'FO/DataTable/client.html.twig',
  943.                               'params' => [],
  944.                           ],
  945.                           6  => [
  946.                               'view' => 'FO/DataTable/heure.html.twig',
  947.                           ],
  948.                           11 => [
  949.                               'view'   => 'FO/DataTable/actions.html.twig',
  950.                               'params' => [
  951.                                   'edit_route' => 'dtc_ordre_reparation_modifier',
  952.                                   //'supprimer_route'    => 'dtc_commande_supprimer',
  953.                                   'objet'      => Commande::class,
  954.                               ],
  955.                           ],
  956.                       ]
  957.                   )
  958.                   ->setMultiple(
  959.                       [
  960.                           'delete' => [
  961.                               'title' => 'Non disponible',
  962.                               'route' => 'dtc_commande_liste_supprimer',
  963.                           ],
  964.                       ]
  965.                   )
  966.                   ->setOrder("x.date""desc")
  967.             //->setOrder("ec.ordre", "desc")
  968.                   ->setSearch(true)
  969.                   ->setSearchFields([12345]);
  970.         //$datatable->setSearchFields(array(0,2));
  971.         return $datatable;
  972.     }
  973.     /**
  974.      * @Route("/vehicule/client/grid/or/{id}", name="dtc_vehicule_client_liste_ordre_rep")
  975.      */
  976.     public function gridOrdreRepAction(Request $requestVehiculeClient $vehiculesClient,Datatable $datatable)
  977.     {
  978.         return $this->datatableOrdreRep($datatable,$vehiculesClient)->execute();
  979.     }
  980.     /**
  981.      * @Route("/vehicule/client/grid/facture/{id}", name="dtc_vehicule_client_liste_facture_grid")
  982.      */
  983.     public function gridFactureAction(Request $requestVehiculeClient $vehiculesClientDatatable $datatable)
  984.     {
  985.         return $this->datatableFactures($datatable$vehiculesClient)->execute();
  986.     }
  987. }