src/Controller/Articles/NumeroSerieController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Articles;
  3. use App\Entity\Articles\NumeroSerie;
  4. use App\Library\Datatable\Util\Datatable;
  5. use App\Service\Utilisateur\ColonneTableauService;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Contracts\Translation\TranslatorInterface;
  10. class NumeroSerieController extends AbstractController
  11. {
  12.     /**
  13.      * @Route("/numero-serie/{page}", name="dtc_numero_serie_liste", defaults={"page":1})
  14.      */
  15.     public function listerAction(Request $request$article ''ColonneTableauService $serviceColonneTableauDatatable $datatableTranslatorInterface $translator )
  16.     {
  17.         //$tableau_class_cellule[]=array("className"=>"colonne_id","targets"=>array(0),"visible"=>true,"orderable"=>false);
  18.         $tableau_class_cellule[] = [
  19.             "className" => "visible_export colonne_id",
  20.             "targets"   => [0],
  21.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(NumeroSerie::class, "id"),
  22.         ];
  23.         $tableau_class_cellule[] = [
  24.             "className" => "visible_export colonne_logo text-center",
  25.             "targets"   => [1],
  26.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(NumeroSerie::class, "date"),
  27.         ];
  28.         $tableau_class_cellule[] = [
  29.             "className" => "visible_export colonne_logo",
  30.             "targets"   => [2],
  31.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(NumeroSerie::class, "numero"),
  32.         ];
  33.         $tableau_class_cellule[] = [
  34.             "className" => "visible_export colonne_logo",
  35.             "targets"   => [3],
  36.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(NumeroSerie::class, "commande"),
  37.         ];
  38.         $tableau_class_cellule[] = [
  39.             "className" => "visible_export colonne_libelle",
  40.             "targets"   => [4],
  41.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(NumeroSerie::class, "commandeF"),
  42.         ];
  43.         $tableau_class_cellule[] = [
  44.             "className" => "visible_export colonne_libelle text-center",
  45.             "targets"   => [5],
  46.             "visible"   => $serviceColonneTableau->getColonneUtilisateur(NumeroSerie::class, "dureeGarantie"),
  47.         ];
  48. //$tableau_class_cellule[]=array("className"=>"visible_export colonne_statut","targets"=>array(5),"visible"=>$serviceColonneTableau->getColonneUtilisateur("DTCArticlesBundle:Marque","statut"));
  49.         //$tableau_class_cellule[]=array("orderable"=>false,"className"=>"colonne_id","targets"=>array(6),"visible"=>true);
  50.         $this->datatable($request,  $datatable,  $translator);
  51.         return $this->render('Articles/NumeroSerie/lister.html.twig', ['article' => $article'tableauClassColonne' => $tableau_class_cellule]);
  52.     }
  53.     /**
  54.      * set datatable configs
  55.      *
  56.      * @return \App\Library\Datatable\Util\Datatable
  57.      */
  58.     private function datatable(Request $requestDatatable $datatableTranslatorInterface $translator)
  59.     {
  60.         $articleId $request->query->get('article');
  61.         $datatable->setEntity(NumeroSerie::class, "x")
  62.                   ->setFields(
  63.                       [
  64.                          $translator->trans("ID")                   => 'x.id',
  65.                          $translator->trans("Date")                 => "x.date",
  66.                          $translator->trans("Numéro série")         => "x.numero",
  67.                          $translator->trans("Commande")             => 'c.reference',
  68.                          $translator->trans("Commande fournisseur") => 'cf.reference',
  69.                          $translator->trans("Durée de garantie")    => 'x.dureeGarantie',
  70.                           //$translator->trans("Actions") =>  'x.id',
  71.                           "_identifier_"                                          => 'x.id',
  72.                       ]
  73.                   )
  74.                   ->addJoin('x.articleCommande''ac'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  75.                   ->addJoin('ac.commande''c'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  76.                   ->addJoin('c.statutCommande''s'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  77.                   ->addJoin('ac.commandeFournisseur''cf'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  78.                   ->addJoin('cf.statutCommande''sf'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  79.                   ->addJoin('ac.article''a'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  80.                   ->setRenderers(
  81.                       [
  82.                           /*
  83.                           0 => array(
  84.                           'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
  85.                            'params' => array(
  86.                                       'edit_route'    => 'dtc_marque_modifier'
  87.                                   ),
  88.                           ),
  89.                            *
  90.                            */
  91.                           /*
  92.                           5 => array(
  93.                               'view' => 'FO/DataTable/actions.html.twig',
  94.                               'params' => array(
  95.                                       'edit_route'    => 'dtc_marque_modifier',
  96.                                       'objet'    => 'DTCArticlesBundle:Marque',
  97.                                   ),
  98.                           ),
  99.                          */
  100.                           => ['view' => 'FO/DataTable/date.html.twig'],
  101.                           => [
  102.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  103.                               'params' => [
  104.                                   'edit_route'   => 'dtc_commande_modifier',
  105.                                   'typeDocument' => 'acc',
  106.                               ],
  107.                           ],
  108.                           => [
  109.                               'view'   => 'FO/DataTable/avec_lien_edit_route.html.twig',
  110.                               'params' => [
  111.                                   'edit_route'   => 'dtc_commande_fournisseur_modifier',
  112.                                   'typeDocument' => 'accf',
  113.                               ],
  114.                           ],
  115.                       ]
  116.                   )
  117.             /*
  118.             ->setMultiple(
  119.                 array(
  120.                     'delete' => array(
  121.                         'title' => 'Non disponible',
  122.                         'route' => 'dtc_marque_liste'                            ),
  123.                 )
  124.             )
  125.              *
  126.              */
  127.                   ->setWhere('a.id = :articleId AND (s.ordre NOT IN (0) OR sf.ordre NOT IN (0))', ['articleId' => $articleId])
  128.                   ->setOrder("x.id""desc")
  129.                   ->setSearch(true)
  130.                   ->setSearchFields([234]);
  131.         //$datatable->setSearchFields(array(0,2));
  132.         return $datatable;
  133.     }
  134.     /**
  135.      * @Route("/numero-serie/grid", name="dtc_numero_serie_liste_grid")
  136.      */
  137.     public function gridAction(Request $requestDatatable $datatableTranslatorInterface $translator)
  138.     {
  139.         return $this->datatable($request$datatable$translator)->execute();
  140.     }
  141. }