<?php
namespace App\Controller\Litiges;
use App\Entity\Litiges\Litige;
use App\Form\Litiges\LitigeType;
use App\Form\Litiges\SupprimerLitigeType;
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\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class LitigeCompletController extends AbstractController
{
/**
* @Route("/litige-complet", name="dtc_litige_global_liste")
*/
public function listerAction(Request $request, Datatable $datatable, TranslatorInterface $translator)
{
$tableau_class_cellule = [];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id text-center", "targets" => [0], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [1], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id ", "targets" => [2], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id ", "targets" => [3], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id ", "targets" => [4], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id ", "targets" => [5], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id text-right", "targets" => [6], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id ", "targets" => [7], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id text-center", "targets" => [8], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id text-right", "targets" => [9], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["orderable" => false, "className" => "colonne_id", "targets" => [10], "visible" => true];
$this->datatable($datatable, $translator);
return $this->render('Litiges/LitigeComplet/lister.html.twig', ['tableauClassColonne' => $tableau_class_cellule]);
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatable(Datatable $datatable, TranslatorInterface $translator)
{
$type_jointure = '';
$where = "";
$parametres_where = [];
$datatable->setDatatableId('dta-litiges')
->setEntity(Litige::class, "x")
->setFields(
[
//$translator->trans("ID") => 'x.id',
$translator->trans("Date") => 'x.date',
$translator->trans("Commande client") => 'c.reference',
$translator->trans("Client") => 'cl.reference',
$translator->trans("Commande fournisseur") => 'cf.reference',
$translator->trans("Fournisseur") => 'f.reference',
$translator->trans("Référence") => 'x.reference',
$translator->trans("Montant") => 'x.montant',
$translator->trans("Clôturé") => 'x.statut',
$translator->trans("Date clôture") => 'x.dateCloture',
$translator->trans("Commentaire") => 'x.commentaire',
$translator->trans("Actions") => 'x.id',
"_identifier_" => 'x.id',
]
)
->addJoin('x.commande', 'c', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('x.client', 'cl', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('x.fournisseur', 'f', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('x.commandeFournisseur', 'cf', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->setRenderers(
[
0 => [
'view' => 'FO/DataTable/date.html.twig',
'params' => [],
],
1 => [
'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
'params' => [
'edit_route' => 'dtc_commande_modifier',
'typeDocument' => 'commande',
],
],
2 => [
'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
'params' => [
'edit_route' => 'dtc_client_modifier',
'typeDocument' => 'client',
],
],
3 => [
'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
'params' => [
'edit_route' => 'dtc_commande_fournisseur_modifier',
'typeDocument' => 'commandeFournisseur',
],
],
4 => [
'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
'params' => [
'edit_route' => 'dtc_fournisseur_modifier',
'typeDocument' => 'fournisseur',
],
],
6 => [
'view' => 'FO/DataTable/prix.html.twig',
'params' => [],
],
7 => [
'view' => 'FO/DataTable/statut.html.twig',
'params' => [
'edit_route' => 'dtc_litige_statut',
],
],
8 => [
'view' => 'FO/DataTable/heure.html.twig',
'params' => [
'edit_route' => 'dtc_litige_statut',
],
],
10 => [
'view' => 'FO/DataTable/actions_litige.html.twig',
'params' => [
'edit_route' => 'dtc_litige_modifier',
'supprimer_route' => 'dtc_litige_supprimer',
'id' => '',
'type' => '',
'entite' => 'adresse',
'objet' => Litige::class,
'table' => "dta-litiges",
'deplier_litige' => true,
],
],
]
)
->setOrder("x.statut asc,x.date", "asc")
->setSearch(true)
->setSearchFields([1, 2, 3, 4]);
if ($where != "") {
$datatable->setWhere($where, $parametres_where);
}
return $datatable;
}
/**
* @Route("/litige-complet/grid/", name="dtc_litige_global_liste_grid")
*/
public function gridAction(Request $request, $id = "", $type = "", Datatable $datatable, TranslatorInterface $translator)
{
return $this->datatable($datatable, $translator)->execute();
}
}