src/Controller/Notes/NoteObjetController.php line 485

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Notes;
  3. use App\Entity\Articles\Article;
  4. use App\Entity\Clients\Client;
  5. use App\Entity\Fournisseurs\Fournisseur;
  6. use App\Entity\GestionComerciale\Commande;
  7. use App\Entity\GestionComerciale\CommandeFournisseur;
  8. use App\Entity\Inventaires\Inventaire;
  9. use App\Entity\Litiges\Litige;
  10. use App\Entity\Notes\Categorie;
  11. use App\Entity\Notes\Note;
  12. use App\Library\Datatable\Util\Datatable;
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\JsonResponse;
  17. use Symfony\Component\HttpFoundation\Response;
  18. use Symfony\Component\Form\FormError;
  19. use Symfony\Component\Process\Process;
  20. use Symfony\Component\Process\Exception\ProcessFailedException;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. use Symfony\Component\Validator\Validator\ValidatorInterface;
  23. use Symfony\Contracts\Translation\TranslatorInterface;
  24. class NoteObjetController extends AbstractController
  25. {
  26.     /**
  27.      * @Route("", name="")
  28.      */
  29.     public function listerAction(Request $request$id$type ""EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  30.     {
  31.         $visibilite_colonne_commande_client      true;
  32.         $visibilite_colonne_client               true;
  33.         $visibilite_colonne_commande_fournisseur true;
  34.         $visibilite_colonne_fournisseur          true;
  35.         if ($type == 'commandeFournisseur') {
  36.             $repo_objet $em->getRepository(CommandeFournisseur::class);
  37.             $objet      $repo_objet->find($id);
  38.             $visibilite_colonne_commande_client      false;
  39.             $visibilite_colonne_client               false;
  40.             $visibilite_colonne_commande_fournisseur false;
  41.             $visibilite_colonne_fournisseur          true;
  42.         } elseif ($type == 'commande') {
  43.             $repo_objet $em->getRepository(Commande::class);
  44.             $objet      $repo_objet->find($id);
  45.             $visibilite_colonne_commande_client      false;
  46.             $visibilite_colonne_client               true;
  47.             $visibilite_colonne_commande_fournisseur false;
  48.             $visibilite_colonne_fournisseur          false;
  49.         } elseif ($type == 'client') {
  50.             $repo_objet $em->getRepository(Client::class);
  51.             $objet      $repo_objet->find($id);
  52.             $visibilite_colonne_commande_client      true;
  53.             $visibilite_colonne_client               false;
  54.             $visibilite_colonne_commande_fournisseur false;
  55.             $visibilite_colonne_fournisseur          false;
  56.         } elseif ($type == 'article') {
  57.             $repo_objet $em->getRepository(Article::class);
  58.             $objet      $repo_objet->find($id);
  59.             $visibilite_colonne_commande_client      true;
  60.             $visibilite_colonne_client               false;
  61.             $visibilite_colonne_commande_fournisseur false;
  62.             $visibilite_colonne_fournisseur          false;
  63.         } elseif ($type == 'fournisseur') {
  64.             $repo_objet $em->getRepository(Fournisseur::class);
  65.             $objet      $repo_objet->find($id);
  66.             $visibilite_colonne_commande_client      false;
  67.             $visibilite_colonne_client               false;
  68.             $visibilite_colonne_commande_fournisseur true;
  69.             $visibilite_colonne_fournisseur          false;
  70.         } elseif ($type == 'inventaire') {
  71.             $repo_objet $em->getRepository(Inventaire::class);
  72.             $objet      $repo_objet->find($id);
  73.             $visibilite_colonne_commande_client      false;
  74.             $visibilite_colonne_client               false;
  75.             $visibilite_colonne_commande_fournisseur true;
  76.             $visibilite_colonne_fournisseur          false;
  77.         }
  78.         // echo "TEST";
  79.         $tableau_class_cellule = [];
  80.         //    $tableau_class_cellule[]=array("className"=>"colonne_id","targets"=>array(0),"visible"=>true,"orderable"=>false,"searchable"=> false);
  81.         //    $tableau_class_cellule[]=array("className"=>"colonne_id","targets"=>array(1),"visible"=>true,"orderable"=>false,"searchable"=> false);
  82.         //    $tableau_class_cellule[]=array("className"=>"colonne_id text-center","targets"=>array(2),"visible"=>true,"orderable"=>false,"searchable"=> false);
  83.         $tableau_class_cellule[] = ["className" => "colonne_id text-center""targets" => [0], "visible" => false"orderable" => false"searchable" => false];
  84.         $tableau_class_cellule[] = ["className" => "colonne_id text-center""targets" => [1], "visible" => true"orderable" => false"searchable" => false];
  85.         $tableau_class_cellule[] = ["className" => "colonne_id ""targets" => [2], "visible" => $visibilite_colonne_client"orderable" => false"searchable" => false];
  86.         $tableau_class_cellule[] = ["className" => "colonne_id ""targets" => [3], "visible" => $visibilite_colonne_commande_client"orderable" => false"searchable" => true];
  87.         $tableau_class_cellule[] = ["className" => "colonne_id ""targets" => [4], "visible" => $visibilite_colonne_fournisseur"orderable" => false"searchable" => false];
  88.         $tableau_class_cellule[] = [
  89.             "className"  => "colonne_id ",
  90.             "targets"    => [5],
  91.             "visible"    => $visibilite_colonne_commande_fournisseur,
  92.             "orderable"  => false,
  93.             "searchable" => false,
  94.         ];
  95.         $tableau_class_cellule[] = ["className" => "colonne_id ""targets" => [6], "visible" => true"orderable" => false"searchable" => false];
  96.         $tableau_class_cellule[] = ["className" => "colonne_id ""targets" => [7], "visible" => true"orderable" => false"searchable" => true];
  97.         $tableau_class_cellule[] = ["className" => "colonne_id ""targets" => [8], "visible" => true"orderable" => false"searchable" => false];
  98.         $tableau_class_cellule[] = ["className" => "colonne_id text-center""targets" => [9], "visible" => true"orderable" => false"searchable" => false];
  99.         $tableau_class_cellule[] = ["className" => "colonne_id ""targets" => [10], "visible" => true"orderable" => false"searchable" => false];
  100.         $tableau_class_cellule[] = ["className" => "colonne_id ""targets" => [11], "visible" => true"orderable" => false"searchable" => false];
  101.         $this->datatable($request$datatable$translator$objet$type);
  102.         $listeCategorieNote $em->getRepository(Categorie::class)->findBy([], ["libelle" => "asc"]);
  103.         return $this->render(
  104.             'Notes/NoteObjet/lister.html.twig',
  105.             ['tableauClassColonne' => $tableau_class_cellule"id" => $id"type" => $type'listeCategorieNote' => $listeCategorieNote]
  106.         );
  107.     }
  108.     /**
  109.      * set datatable configs
  110.      *
  111.      * @return \App\Library\Datatable\Util\Datatable
  112.      */
  113.     private function datatable(Request $requestDatatable $datatableTranslatorInterface $translator$objet ""$type "")
  114.     {
  115.         $type_jointure 'x.'.$type;
  116.         $param $request->query->all();
  117.         $user $this->getUser();
  118.         $datatable->setDatatableId('dta-notes-objet')
  119.                   ->setEntity(Note::class, "x")
  120.                   ->setFields(
  121.                       [
  122.                           $translator->trans("ID")            => 'x.id',
  123.                           $translator->trans("Date échéance") => 'x.dateDebut',
  124.                           $translator->trans("Client")   => 'cl.nom',
  125.                           $translator->trans("Commande") => 'cmde.reference',
  126.                           $translator->trans("Fournisseur") => 'f.libelle',
  127.                           $translator->trans("Commande F")  => 'cmdeF.reference',
  128.                           $translator->trans("Titre")   => 'x.libelle',
  129.                           $translator->trans("Type")    => 'cn.libelle',
  130.                           $translator->trans("Contact") => 'c.nom',
  131.                           $translator->trans("Statut")  => 's.libelle',
  132.                           $translator->trans("Auteur")  => 'u.nom',
  133.                           $translator->trans("Actions") => 'x.id',
  134.                           "_identifier_"                => 'x.id',
  135.                       ]
  136.                   )
  137.                   ->addJoin('x.categorie''cn'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  138.                   ->addJoin('x.statut''s'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  139.                   ->addJoin('x.contact''c'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  140.                   ->addJoin('x.client''cl'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  141.                   ->addJoin('x.utilisateur''u'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  142.                   ->addJoin('x.commande''cmde'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  143.                   ->addJoin('x.commandeFournisseur''cmdeF'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  144.                   ->addJoin('x.fournisseur''f'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  145.                   ->setRenderers(
  146.                       [
  147.                           => [
  148.                               'view'   => 'FO/DataTable/heure.html.twig',
  149.                               'params' => [],
  150.                           ],
  151.                           => [
  152.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  153.                               'params' => [
  154.                                   'edit_route'   => 'dtc_client_modifier',
  155.                                   'typeDocument' => 'client',
  156.                               ],
  157.                           ],
  158.                           => [
  159.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  160.                               'params' => [
  161.                                   'edit_route'   => 'dtc_commande_modifier',
  162.                                   'typeDocument' => 'commande',
  163.                               ],
  164.                           ],
  165.                           => [
  166.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  167.                               'params' => [
  168.                                   'edit_route'   => 'dtc_fournisseur_modifier',
  169.                                   'typeDocument' => 'fournisseur',
  170.                               ],
  171.                           ],
  172.                           => [
  173.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  174.                               'params' => [
  175.                                   'edit_route'   => 'dtc_commande_fournisseur_modifier',
  176.                                   'typeDocument' => 'commandeFournisseur',
  177.                               ],
  178.                           ],
  179.                           => [
  180.                               'view'   => 'FO/DataTable/titre_activite.html.twig',
  181.                               'params' => [
  182.                                   'edit_route'      => 'dtc_note_modifier',
  183.                                   'supprimer_route' => 'dtc_note_supprimer',
  184.                                   //'id'    => $client->getId(),
  185.                                   'width_modal'     => 900,
  186.                                   'type'            => "liste",
  187.                                   'objet'           => Note::class,
  188.                               ],
  189.                           ],
  190.                           => [
  191.                               'view'   => 'FO/DataTable/type_activite.html.twig',
  192.                               'params' => [],
  193.                           ],
  194.                           => [
  195.                               'view'   => 'FO/DataTable/contact.html.twig',
  196.                               'params' => [],
  197.                           ],
  198.                           10 => [
  199.                               'view'   => 'FO/DataTable/utilisateur.html.twig',
  200.                               'params' => [],
  201.                           ],
  202.                           11 => [
  203.                               'view'   => 'FO/DataTable/actions_activites_modal.html.twig',
  204.                               'params' => [
  205.                                   'edit_route'      => 'dtc_note_modifier',
  206.                                   'supprimer_route' => 'dtc_note_supprimer',
  207.                                   //'id'    => $client->getId(),
  208.                                   'width_modal'     => 900,
  209.                                   'type'            => "liste",
  210.                                   'objet'           => Note::class,
  211.                                   'table'           => "dta-notes-objet",
  212.                               ],
  213.                           ],
  214.                       ]
  215.                   )
  216.                   ->setOrder("x.dateDebut""desc")
  217.                   ->setSearch(true)
  218.                   ->setSearchFields([23457])/*
  219.                     ->setMultiple(
  220.                         array(
  221.                             'delete' => array(
  222.                                 'title' => $translator->trans('Non disponible'),
  223.                                 'route' => 'dtc_commande_liste_supprimer'                            ),
  224.                         )
  225.                     )
  226.                     */
  227.         ;
  228.         $where      "";
  229.         $where      "(x.prive = :prive OR x.prive IS NULL OR x.utilisateur = :utilisateur) AND (x.categorie != :categorieintervention or x.categorie is null) AND x.statut = :statut";
  230.         $parameters = ["prive" => 0"utilisateur" => $user"categorieintervention" => 8'statut' => 1];
  231.         $where      $type_jointure." = :objet AND (x.categorie != :categorieintervention or x.categorie IS NULL) and (x.modifiable is null or x.modifiable=1)";
  232.         $parameters = ["categorieintervention" => 8'objet' => $objet];
  233.         if (array_key_exists('parametres'$param)) {
  234.             if (array_key_exists('affaire'$param["parametres"]) and $param["parametres"]["affaire"] > 0) {
  235.                 $parameters["affaire"] = $param["parametres"]["affaire"];
  236.                 if ($where != "") {
  237.                     $where .= " AND";
  238.                 }
  239.                 $where .= " x.fiche >= :affaire";
  240.             }
  241.             if (array_key_exists('client'$param["parametres"]) and $param["parametres"]["client"] > 0) {
  242.                 //$datatable->addJoin('x.client', 'client', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
  243.                 $parameters["client"] = $param["parametres"]["client"];
  244.                 if ($where != "") {
  245.                     $where .= " AND ";
  246.                 }
  247.                 $where .= "x.client = :client";
  248.             }
  249.             if (array_key_exists('date_debut'$param["parametres"]) and $param["parametres"]["date_debut"] > 0) {
  250.                 $debut \DateTime::createFromFormat('d/m/Y'$param["parametres"]['date_debut']);
  251.                 $debut->setTime(000000);
  252.                 $parameters["debut"] = $debut;
  253.                 if ($where != "") {
  254.                     $where .= " AND";
  255.                 }
  256.                 $where .= " x.dateDebut >= :debut";
  257.             }
  258.             if (array_key_exists('equipiers'$param["parametres"]) and count($param["parametres"]["equipiers"]) > 0) {
  259.                 if ($where != "") {
  260.                     $where .= " AND";
  261.                 }
  262.                 $where                     .= " x.utilisateur IN (:equipiers) AND (x.prive = :prive OR x.prive IS NULL OR x.utilisateur = :utilisateur)";
  263.                 $parameters["equipiers"]   = $param["parametres"]["equipiers"];
  264.                 $parameters["utilisateur"] = $user;
  265.                 $parameters["prive"]       = 0;
  266.                 //echo "AAAA";
  267.             }
  268.             if (array_key_exists('date_fin'$param["parametres"]) and $param["parametres"]["date_fin"] > 0) {
  269.                 $fin \DateTime::createFromFormat('d/m/Y'$param["parametres"]['date_fin']);
  270.                 $fin->setTime(235959);
  271.                 $parameters["fin"] = $fin;
  272.                 if ($where != "") {
  273.                     $where .= " AND";
  274.                 }
  275.                 $where .= " x.dateDebut <= :fin";
  276.             }
  277.             if (array_key_exists('statut'$param["parametres"]) and $param["parametres"]["statut"] > 0) {
  278.                 $parameters["statut"] = $param["parametres"]["statut"];
  279.                 if ($where != "") {
  280.                     $where .= " AND";
  281.                 }
  282.                 $where .= " s.id = :statut";
  283.             }
  284.             if (array_key_exists('cat'$param["parametres"]) and $param["parametres"]["cat"] > 0) {
  285.                 $parameters["cat"] = $param["parametres"]["cat"];
  286.                 if ($where != "") {
  287.                     $where .= " AND";
  288.                 }
  289.                 $where .= " cn.id = :cat";
  290.             }
  291.         }
  292.         if ($where != '') {
  293.             //echo $where."<br/><br/>";
  294.             //print_r($param) ;
  295.             //exit;
  296.             $datatable->setWhere($where$parameters);
  297.         }
  298.         return $datatable;
  299.     }
  300.     private function ____datatable(Datatable $datatableTranslatorInterface $translator$objet ""$type "")
  301.     {
  302.         $type_jointure    'x.'.$type;
  303.         $where            "";
  304.         $parametres_where = [];
  305.         $where            $type_jointure.' = :objet';
  306.         $parametres_where = ['objet' => $objet];
  307.         $datatable->setDatatableId('dta-notes-objet')
  308.                   ->setEntity(Litige::class, "x")
  309.                   ->setFields(
  310.                       [
  311.                           //$translator->trans("ID") =>  'x.id',
  312.                           $translator->trans("Date")                 => 'x.date',
  313.                           $translator->trans("Commande client")      => 'c.reference',
  314.                           $translator->trans("Client")               => 'cl.reference',
  315.                           $translator->trans("Commande fournisseur") => 'cf.reference',
  316.                           $translator->trans("Fournisseur")          => 'f.reference',
  317.                           $translator->trans("Référence")            => 'x.reference',
  318.                           $translator->trans("Montant")              => 'x.montant',
  319.                           $translator->trans("Clôturé")              => 'x.statut',
  320.                           $translator->trans("Commentaire")          => 'x.commentaire',
  321.                           $translator->trans("Actions")              => 'x.id',
  322.                           "_identifier_"                             => 'x.id',
  323.                       ]
  324.                   )
  325.                   ->addJoin('x.commande''c'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  326.                   ->addJoin('x.client''cl'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  327.                   ->addJoin('x.fournisseur''f'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  328.                   ->addJoin('x.commandeFournisseur''cf'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  329.                   ->setRenderers(
  330.                       [
  331.                           => [
  332.                               'view'   => 'FO/DataTable/date.html.twig',
  333.                               'params' => [],
  334.                           ],
  335.                           => [
  336.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  337.                               'params' => [
  338.                                   'edit_route'   => 'dtc_commande_modifier',
  339.                                   'typeDocument' => 'commande',
  340.                               ],
  341.                           ],
  342.                           => [
  343.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  344.                               'params' => [
  345.                                   'edit_route'   => 'dtc_client_modifier',
  346.                                   'typeDocument' => 'client',
  347.                               ],
  348.                           ],
  349.                           => [
  350.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  351.                               'params' => [
  352.                                   'edit_route'   => 'dtc_commande_fournisseur_modifier',
  353.                                   'typeDocument' => 'commandeFournisseur',
  354.                               ],
  355.                           ],
  356.                           => [
  357.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  358.                               'params' => [
  359.                                   'edit_route'   => 'dtc_fournisseur_modifier',
  360.                                   'typeDocument' => 'fournisseur',
  361.                               ],
  362.                           ],
  363.                           => [
  364.                               'view'   => 'FO/DataTable/prix.html.twig',
  365.                               'params' => [],
  366.                           ],
  367.                           => [
  368.                               'view'   => 'FO/DataTable/statut.html.twig',
  369.                               'params' => [
  370.                                   'edit_route' => 'dtc_litige_statut',
  371.                               ],
  372.                           ],
  373.                           => [
  374.                               'view'   => 'FO/DataTable/actions_modal.html.twig',
  375.                               'params' => [
  376.                                   'edit_route'      => 'dtc_litige_modifier',
  377.                                   'supprimer_route' => 'dtc_litige_supprimer',
  378.                                   'id'              => $objet->getId(),
  379.                                   'type'            => $type,
  380.                                   'entite'          => 'adresse',
  381.                                   'objet'           => Litige::class,
  382.                                   'table'           => "dta-notes-objet",
  383.                               ],
  384.                           ],
  385.                       ]
  386.                   )
  387.                   ->setOrder("x.id""desc")
  388.                   ->setSearch(true)
  389.                   ->setSearchFields([1]);
  390.         if ($where != "") {
  391.             $datatable->setWhere($where$parametres_where);
  392.         }
  393.         return $datatable;
  394.     }
  395.     /**
  396.      * Grid action
  397.      * @return Response
  398.      */
  399.     /**
  400.      * @Route("/note-objet/grid/{id}/{type}", name="dtc_note_objet_liste_grid")
  401.      */
  402.     public function gridAction(Request $request$id ""$type ""EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  403.     {
  404.         if ($type == 'commandeFournisseur') {
  405.             $repo_objet $em->getRepository(CommandeFournisseur::class);
  406.             $objet      $repo_objet->find($id);
  407.         } elseif ($type == 'commande') {
  408.             $repo_objet $em->getRepository(Commande::class);
  409.             $objet      $repo_objet->find($id);
  410.         } elseif ($type == 'client') {
  411.             $repo_objet $em->getRepository(Client::class);
  412.             $objet      $repo_objet->find($id);
  413.         } elseif ($type == 'fournisseur') {
  414.             $repo_objet $em->getRepository(Fournisseur::class);
  415.             $objet      $repo_objet->find($id);
  416.         } elseif ($type == 'article') {
  417.             $repo_objet $em->getRepository(Article::class);
  418.             $objet      $repo_objet->find($id);
  419.         } elseif ($type == 'inventaire') {
  420.             $repo_objet $em->getRepository(Inventaire::class);
  421.             $objet      $repo_objet->find($id);
  422.         }
  423.         return $this->datatable($request$datatable$translator$objet$type)->execute();
  424.     }
  425.     /**
  426.      * @Route("", name="")
  427.      */
  428.     public function chargerTableauTachesClientAction(Request $requestClient $clientEntityManagerInterface $em)
  429.     {
  430.         $listeCategorieNote $em->getRepository(Categorie::class)->findBy([], ["libelle" => "asc"]);
  431.         $rendu              $this->renderView('Notes/NoteObjet/charger_tableau.html.twig', ["client" => $client"listeCategorieNote" => $listeCategorieNote]);
  432.         return new JsonResponse(['rendu' => $rendu]);
  433.     }
  434.     /**
  435.      * @Route("", name="")
  436.      */
  437.     public function chargerTableauNotesModalClientAction(Request $requestClient $client)
  438.     {
  439.         $rendu $this->renderView('Notes/Note/charger_tableau_note_modal.html.twig', ["client" => $client]);
  440.         return new JsonResponse(['rendu' => $rendu]);
  441.     }
  442.     /**
  443.      * @Route("", name="")
  444.      */
  445.     public function listerNoteModalClientAction(Request $requestClient $clientDatatable $datatableNotesTranslatorInterface $translator)
  446.     {
  447.         $tableau_class_cellule = [];
  448.         $this->datatableNotes($datatableNotes$translator$client);
  449.         return $this->render('Notes/Note/lister_note_modal.html.twig', ['tableauClassColonne' => $tableau_class_cellule'client' => $client]);
  450.     }
  451.     private function datatableNotes(Datatable $datatableNotesTranslatorInterface $translator$client)
  452.     {
  453.         $user $this->getUser();
  454.         $datatableNotes->setDatatableId('dta-notes-clients')
  455.                        ->setEntity(Note::class, "x")
  456.                        ->setFields(
  457.                            [
  458.                                //$translator->trans("ID") =>  'x.id',
  459.                                $translator->trans("Message") => 'x.message',
  460.                                $translator->trans("Cat")     => 'cn.libelle',
  461.                                $translator->trans("Contact") => 'c.nom',
  462.                                $translator->trans("Date")    => 'x.dateSaisie',
  463.                                $translator->trans("Actions") => 'x.id',
  464.                                "_identifier_"                => 'x.id',
  465.                            ]
  466.                        )
  467.                        ->addJoin('x.categorie''cn'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  468.                        ->addJoin('x.contact''c'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  469.                        ->setWhere(
  470.                              'x.client = :client'
  471.                            , ['client' => $client]
  472.                        )
  473.                        ->setGroupBy('x.id')
  474.                        ->setRenderers(
  475.                            [
  476.                                => [
  477.                                    'view'   => 'FO/DataTable/titre_note.html.twig',
  478.                                    'params' => [],
  479.                                ],
  480.                                => [
  481.                                    'view'   => 'FO/DataTable/contact.html.twig',
  482.                                    'params' => [],
  483.                                ],
  484.                                => [
  485.                                    'view'   => 'FO/DataTable/heure.html.twig',
  486.                                    'params' => [],
  487.                                ],
  488.                                => [
  489.                                    'view'   => 'FO/DataTable/actions_modal.html.twig',
  490.                                    'params' => [
  491.                                        'edit_route'      => 'dtc_note_modifier',
  492.                                        'supprimer_route' => 'dtc_note_supprimer',
  493.                                        'id'              => $client->getId(),
  494.                                        'type'            => "client",
  495.                                        'objet'           => Note::class,
  496.                                        'width_modal'     => 900,
  497.                                    ],
  498.                                ],
  499.                            ]
  500.                        )
  501.                        ->setOrder("x.dateSaisie""desc")
  502.                        ->setSearch(true)
  503.                        ->setSearchFields([1]);
  504.         $where      "x.client = :client AND (x.prive = :prive OR x.prive IS NULL or x.utilisateur = :utilisateur)";
  505.         $parameters = ["prive" => 0"utilisateur" => $user'client' => $client];
  506.         $datatableNotes->setWhere($where$parameters);
  507.         return $datatableNotes;
  508.     }
  509. }