<?php
namespace App\Controller\Utilisateur;
use App\Entity\GestionComerciale\Activite;
use App\Library\Datatable\Util\Datatable;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class HistoriqueInterventionController extends AbstractController
{
/**
* @Route("", name="")
*/
public function listerAction(Request $request, $id = "0", $type = "a", Datatable $datatable, TranslatorInterface $translator)
{
$tableau_class_cellule = [];
$tableau_class_cellule[] = ["searchable" => true, "className" => "visible_export colonne_id", "targets" => [0], "visible" => true, "orderable" => false];
$tableau_class_cellule[] = ["searchable" => true, "className" => "visible_export colonne_id", "targets" => [1], "visible" => true, "orderable" => false];
$tableau_class_cellule[] = ["searchable" => true, "className" => "visible_export colonne_id text-center", "targets" => [2], "visible" => true, "orderable" => false];
$tableau_class_cellule[] = ["searchable" => true, "className" => "visible_export colonne_id text-center", "targets" => [3], "visible" => true, "orderable" => false];
$tableau_class_cellule[] = ["searchable" => true, "className" => "visible_export colonne_id", "targets" => [4], "visible" => true, "orderable" => false];
$this->datatable($datatable, $translator);
return $this->render('Utilisateur/HistoriqueIntervention/lister.html.twig', ['tableauClassColonne' => $tableau_class_cellule]);
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatable(Datatable $datatable, TranslatorInterface $translator)
{
$user = $this->getUser();
$where = 'x.dateFin IS NOT NULL AND u.id = :userId';
$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'))";
$datatable->setDatatableId('dta-historique-intervention')
//->setEntity("DTCUtilisateurBundle:HistoriqueIntervention", "x")
->setEntity(Activite::class, "x")
->setFields(
[
$translator->trans("ID") => 'x.id',
$translator->trans("Document") => 'x.id',
$translator->trans("Début") => 'x.dateDebut',
$translator->trans("Fin") => 'x.dateFin',
$translator->trans("Actions") => 'x.action',
"_identifier_" => 'x.id',
]
)
->addJoin('x.utilisateur', 'u', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
/*->setWhere(
$type_jointure.' = :objet',
array('objet' => $objet)
)
*/
->setRenderers(
[
1 => [
'view' => 'FO/DataTable/reference_document_historique.html.twig',
'params' => [],
],
2 => [
'view' => 'FO/DataTable/heure.html.twig',
'params' => [],
],
3 => [
'view' => 'FO/DataTable/heure.html.twig',
'params' => [],
],
4 => [
'view' => 'FO/DataTable/libelle_activite.html.twig',
'params' => [],
],
/*
5 => array(
'view' => 'FO/DataTable/actions.html.twig',
'params' => array(
//'edit_route' => 'dtc_garantie_modifier',
//'supprimer_route' => 'dtc_garantie_supprimer',
'entite' => 'garantie',
'objet' => "DTCArticlesBundle:ConditionVente"
),
),
*/
]
)
->setWhere($where, ['userId' => $user->getId()])
->setOrder("x.dateFin desc, x.dateDebut", "desc")
->setSearch(true)//->setSearchFields(array(1,4))
;
return $datatable;
}
/**
* Grid action
* @return Response
*/
/**
* @Route("/historique-intervention", name="dtc_historique_intervention_grid")
*/
public function gridAction(Request $request, Datatable $datatable, TranslatorInterface $translator)
{
return $this->datatable($datatable, $translator)->execute();
}
}