src/Controller/Utilisateur/HistoriqueInterventionController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Utilisateur;
  3. use App\Entity\GestionComerciale\Activite;
  4. use App\Library\Datatable\Util\Datatable;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\HttpFoundation\RedirectResponse;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\Validator\Validator\ValidatorInterface;
  13. use Symfony\Contracts\Translation\TranslatorInterface;
  14. class HistoriqueInterventionController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("", name="")
  18.      */
  19.     public function listerAction(Request $request$id "0"$type "a"Datatable $datatableTranslatorInterface $translator)
  20.     {
  21.         $tableau_class_cellule = [];
  22.         $tableau_class_cellule[] = ["searchable" => true"className" => "visible_export colonne_id""targets" => [0], "visible" => true"orderable" => false];
  23.         $tableau_class_cellule[] = ["searchable" => true"className" => "visible_export colonne_id""targets" => [1], "visible" => true"orderable" => false];
  24.         $tableau_class_cellule[] = ["searchable" => true"className" => "visible_export colonne_id text-center""targets" => [2], "visible" => true"orderable" => false];
  25.         $tableau_class_cellule[] = ["searchable" => true"className" => "visible_export colonne_id text-center""targets" => [3], "visible" => true"orderable" => false];
  26.         $tableau_class_cellule[] = ["searchable" => true"className" => "visible_export colonne_id""targets" => [4], "visible" => true"orderable" => false];
  27.         $this->datatable($datatable$translator);
  28.         return $this->render('Utilisateur/HistoriqueIntervention/lister.html.twig', ['tableauClassColonne' => $tableau_class_cellule]);
  29.     }
  30.     /**
  31.      * set datatable configs
  32.      *
  33.      * @return \App\Library\Datatable\Util\Datatable
  34.      */
  35.     private function datatable(Datatable $datatableTranslatorInterface $translator)
  36.     {
  37.         $user  $this->getUser();
  38.         $where 'x.dateFin IS NOT NULL AND u.id = :userId';
  39.         $where .= " AND ((x.action = 'emballage' AND x.objet = 'Bp') OR (x.action = 'preparation' AND x.objet = 'Bp') OR (x.action = 'reception' AND x.objet = 'Fabrication') OR (x.action = 'reception' AND x.objet = 'CommandeFournisseur'))";
  40.         $datatable->setDatatableId('dta-historique-intervention')
  41.             //->setEntity("DTCUtilisateurBundle:HistoriqueIntervention", "x")
  42.                   ->setEntity(Activite::class, "x")
  43.                   ->setFields(
  44.                       [
  45.                           $translator->trans("ID")       => 'x.id',
  46.                           $translator->trans("Document") => 'x.id',
  47.                           $translator->trans("Début")    => 'x.dateDebut',
  48.                           $translator->trans("Fin")      => 'x.dateFin',
  49.                           $translator->trans("Actions")  => 'x.action',
  50.                           "_identifier_"                 => 'x.id',
  51.                       ]
  52.                   )
  53.                   ->addJoin('x.utilisateur''u'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  54.             /*->setWhere(
  55.                     $type_jointure.' = :objet',
  56.                     array('objet' => $objet)
  57.                )
  58.               */
  59.                   ->setRenderers(
  60.                 [
  61.                     => [
  62.                         'view'   => 'FO/DataTable/reference_document_historique.html.twig',
  63.                         'params' => [],
  64.                     ],
  65.                     => [
  66.                         'view'   => 'FO/DataTable/heure.html.twig',
  67.                         'params' => [],
  68.                     ],
  69.                     => [
  70.                         'view'   => 'FO/DataTable/heure.html.twig',
  71.                         'params' => [],
  72.                     ],
  73.                     => [
  74.                         'view'   => 'FO/DataTable/libelle_activite.html.twig',
  75.                         'params' => [],
  76.                     ],
  77.                     /*
  78.                     5 => array(
  79.                         'view' => 'FO/DataTable/actions.html.twig',
  80.                         'params' => array(
  81.                                 //'edit_route'  => 'dtc_garantie_modifier',
  82.                                 //'supprimer_route'  => 'dtc_garantie_supprimer',
  83.                                 'entite'    => 'garantie',
  84.                                 'objet' => "DTCArticlesBundle:ConditionVente"
  85.                             ),
  86.                     ),
  87.                     */
  88.                 ]
  89.             )
  90.                   ->setWhere($where, ['userId' => $user->getId()])
  91.                   ->setOrder("x.dateFin desc, x.dateDebut""desc")
  92.                   ->setSearch(true)//->setSearchFields(array(1,4))
  93.         ;
  94.         return $datatable;
  95.     }
  96.     /**
  97.      * Grid action
  98.      * @return Response
  99.      */
  100.     /**
  101.      * @Route("/historique-intervention", name="dtc_historique_intervention_grid")
  102.      */
  103.     public function gridAction(Request $requestDatatable $datatableTranslatorInterface $translator)
  104.     {
  105.         return $this->datatable($datatable$translator)->execute();
  106.     }
  107. }