<?php
namespace App\Controller\GestionComerciale;
use App\Entity\GestionComerciale\ModeExpedition;
use App\Entity\GestionComerciale\ModeExpeditionPoidsTransporteur;
use App\Form\GestionComerciale\ModeExpeditionPoidsTransporteurType;
use App\Form\GestionComerciale\SupprimerModeExpeditionPoidsTransporteurType;
use App\Library\Datatable\Util\Datatable;
use App\Security\Voter\EntityVoter;
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\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class ModeExpeditionPoidsTransporteurController extends AbstractController
{
/**
* @Route("/mode-expe-poids-transporteur/nouveau/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_ajouter")
*/
public function ajouterAction(Request $request, $id, $type = "", EntityManagerInterface $em, TranslatorInterface $translator, ValidatorInterface $validator)
{
$titre_modal = $translator->trans("Nouvelle règle");
$page = $request->query->get('page');
$modeExpeditionPoidsTransporteur = new ModeExpeditionPoidsTransporteur();
$user = $this->getUser();
$get = $request->query->all();
$form = $this->createForm(ModeExpeditionPoidsTransporteurType::class, $modeExpeditionPoidsTransporteur);
$errors = "";
$form->handleRequest($request);
if ($form->isSubmitted()) {
$post = $request->request->all();
if ($form->isValid()) {
/*
if($type == 'client') {
$em = $em;
$repo_objet = $em->getRepository('DTCClientsBundle:Client');
$objet = $repo_objet->find($id);
$modeExpeditionPoidsTransporteur->setClient($objet);
$url = $this->generateUrl('dtc_client_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
}
else if($type == 'transporteur') {
$em = $em;
$repo_objet = $em->getRepository(Transporteur::class);
$objet = $repo_objet->find($id);
$modeExpeditionPoidsTransporteur->setTransporteur($objet);
$url = $this->generateUrl('dtc_transporteur_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
}
*/
$repo_objet = $em->getRepository(ModeExpedition::class);
$objet = $repo_objet->find($id);
$modeExpeditionPoidsTransporteur->setModeExpedition($objet);
$url = $this->generateUrl('dtc_mode_expedition_modifier', ['id' => $objet->getId(), 'tab' => 'regles']);
$em->persist($modeExpeditionPoidsTransporteur);
$em->flush();
if (array_key_exists('table', $get) && $get["table"] != "") {
return new JsonResponse(
['rendu' => '', 'valide' => '1', 'url' => $url, 'type' => 'recharger_datatable', 'id_datatable' => $get["table"]]
);
} else {
$this->addFlash('notice', $translator->trans('Règle ajoutée avec succès !'));
return new JsonResponse(['rendu' => '', 'valide' => '1', 'url' => $url]);
}
} else {
$errors = $validator->validate($modeExpeditionPoidsTransporteur);
$rendu = $this->renderView(
'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
['form' => $form->createView(), 'errors' => $errors, 'id' => $id, 'type' => $type]
);
return new Response(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
}
$rendu = $this->renderView(
'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
['form' => $form->createView(), 'errors' => $errors, 'id' => $id, 'type' => $type]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
//return $this->render('GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig', array('form' => $form->createView(),'errors'=>$errors,'id'=>$id,'type'=>$type));
}
/**
* @Route("/mode-expe-poids-transporteur/modifier/{objet}/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_modifier")
*/
public function modifierAction(Request $request, ModeExpeditionPoidsTransporteur $objet, $id, $type, EntityManagerInterface $em,
TranslatorInterface $translator, ValidatorInterface $validator
) {
$modeExpeditionPoidsTransporteur = $objet;
$titre_modal = $translator->trans("Modifier règle");
$get = $request->query->all();
$user = $this->getUser();
$form = $this->createForm(ModeExpeditionPoidsTransporteurType::class, $modeExpeditionPoidsTransporteur);
$errors = "";
$form->handleRequest($request);
$post = $request->request->all();
if ($form->isSubmitted()) {
$droit = $this->isGranted(EntityVoter::UPDATE, ModeExpeditionPoidsTransporteur::class);
if ( ! $droit) {
$rendu = $this->renderView(
'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
['form' => $form->createView(), 'errors' => $errors, 'id' => $id, 'type' => $type, 'objet' => $objet]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
if ($form->isValid()) {
/*
if($type == 'client') {
$em = $em;
$repo_objet = $em->getRepository('DTCClientsBundle:Client');
$objet = $repo_objet->find($id);
$modeExpeditionPoidsTransporteur->setClient($objet);
$url = $this->generateUrl('dtc_client_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
}
else if($type == 'transporteur') {
$em = $em;
$repo_objet = $em->getRepository(Transporteur::class);
$objet = $repo_objet->find($id);
$modeExpeditionPoidsTransporteur->setTransporteur($objet);
$url = $this->generateUrl('dtc_transporteur_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
}
else if($type == 'fournisseur') {
$em = $em;
$repo_objet = $em->getRepository('DTCFournisseursBundle:Fournisseur');
$objet = $repo_objet->find($id);
$modeExpeditionPoidsTransporteur->setFournisseur($objet);
$url = $this->generateUrl('dtc_fournisseur_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
}
*/
$repo_objet = $em->getRepository(ModeExpedition::class);
$objet = $repo_objet->find($id);
$modeExpeditionPoidsTransporteur->setModeExpedition($objet);
$url = $this->generateUrl('dtc_mode_expedition_modifier', ['id' => $objet->getId(), 'tab' => 'regles']);
$em->persist($modeExpeditionPoidsTransporteur);
$em->flush();
if (array_key_exists('table', $get) && $get["table"] != "") {
return new JsonResponse(
['rendu' => '', 'valide' => '1', 'url' => $url, 'type' => 'recharger_datatable', 'id_datatable' => $get["table"]]
);
} else {
$this->addFlash('notice', $translator->trans('Règle modifié avec succès !'));
return new JsonResponse(['rendu' => '', 'valide' => '1', 'url' => $url]);
}
} else {
$errors = $validator->validate($modeExpeditionPoidsTransporteur);
$rendu = $this->renderView(
'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
[
'form' => $form->createView(),
'errors' => $errors,
'id' => $id,
'type' => $type,
'objet' => $objet,
'modeExpeditionPoidsTransporteur' => $modeExpeditionPoidsTransporteur,
]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
}
$rendu = $this->renderView(
'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
[
'form' => $form->createView(),
'errors' => $errors,
'id' => $id,
'type' => $type,
'objet' => $objet,
'modeExpeditionPoidsTransporteur' => $modeExpeditionPoidsTransporteur,
]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
/**
* @Route("/mode-expe-poids-transporteur/supprimer/{objet}/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_supprimer")
*/
public function supprimerAction(Request $request, ModeExpeditionPoidsTransporteur $objet, $id, $type, EntityManagerInterface $em, TranslatorInterface $translator,
ValidatorInterface $validator
) {
$modeExpeditionPoidsTransporteur = $objet;
$titre_modal = $translator->trans("Demande de confirmation");
$user = $this->getUser();
$get = $request->query->all();
$form = $this->createForm(SupprimerModeExpeditionPoidsTransporteurType::class, $modeExpeditionPoidsTransporteur);
$errors = "";
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$em->remove($modeExpeditionPoidsTransporteur);
$em->flush();
/*
if($type == 'client') {
$url = $this->generateUrl('dtc_client_modifier', array('id' => $id,'tab'=>'adresses'));
}
else if($type == 'transporteur') {
$url = $this->generateUrl('dtc_transporteur_modifier', array('id' => $id,'tab'=>'adresses'));
}
else if($type == 'fournisseur') {
$url = $this->generateUrl('dtc_fournisseur_modifier', array('id' => $id,'tab'=>'adresses'));
}
*/
$url = $this->generateUrl('dtc_mode_expedition_modifier', ['id' => $id, 'tab' => 'regles']);
if (array_key_exists('table', $get) && $get["table"] != "") {
return new JsonResponse(
['rendu' => '', 'valide' => '1', 'url' => $url, 'type' => 'recharger_datatable', 'id_datatable' => $get["table"]]
);
} else {
$this->addFlash('notice', $translator->trans('Règle supprimée avec succès !'));
return new JsonResponse(['rendu' => '', 'valide' => '1', 'url' => $url]);
}
} else {
$errors = $validator->validate($modeExpeditionPoidsTransporteur);
$rendu = $this->renderView(
'FO/Supprimer/supprimer.html.twig',
['form' => $form->createView(), 'errors' => $errors, 'id' => $id, 'type' => $type, 'objet' => $objet]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
}
$rendu = $this->renderView('FO/Supprimer/supprimer.html.twig', ['form' => $form->createView(), 'errors' => $errors, 'id' => $id, 'type' => $type, 'objet' => $objet]);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
/**
* @Route("/mode-expe-poids-transporteur/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_liste")
*/
public function listerAction(Request $request, $id, $type = "", $objet = "", EntityManagerInterface $em, Datatable $datatable, TranslatorInterface $translator)
{
/*
if($type == 'client') {
$em = $em;
$repo_objet = $em->getRepository('DTCClientsBundle:Client');
$objet = $repo_objet->find($id);
}
else if($type == 'transporteur') {
$em = $em;
$repo_objet = $em->getRepository(Transporteur::class);
$objet = $repo_objet->find($id);
}
else if($type == 'fournisseur') {
$em = $em;
$repo_objet = $em->getRepository('DTCFournisseursBundle:Fournisseur');
$objet = $repo_objet->find($id);
}
*/
$repo_objet = $em->getRepository(ModeExpedition::class);
$objet = $repo_objet->find($id);
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "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", "targets" => [6], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["orderable" => false, "className" => "colonne_id", "targets" => [7], "visible" => true];
$tableau_class_cellule[] = ["orderable" => false, "className" => "colonne_id", "targets" => [11], "visible" => true, "orderable" => false];
$tableau_class_cellule = [];
$this->datatable($objet, $type, $datatable, $translator);
return $this->render(
'GestionComerciale/ModeExpeditionPoidsTransporteur/lister.html.twig',
['tableauClassColonne' => $tableau_class_cellule, "id" => $id, "type" => $type]
);
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatable($objet, $type = "", Datatable $datatable, TranslatorInterface $translator)
{
$type_jointure = 'x.'.$type;
$datatable->setDatatableId('dta-mode-expe-poids-transporteur')
->setEntity(ModeExpeditionPoidsTransporteur::class, "x")
->setFields(
[
$translator->trans("ID") => 'x.id',
$translator->trans("Poids min (grammes)") => 'x.poidsMin',
$translator->trans("Poids max (grammes)") => 'x.poidsMax',
$translator->trans("Transporteur") => 't.libelle',
$translator->trans("Actions") => 'x.id',
"_identifier_" => 'x.id',
]
)
->addJoin('x.transporteur', 't', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->setWhere(
$type_jointure.' = :objet',
['objet' => $objet]
)
->setRenderers(
[
4 => [
'view' => 'FO/DataTable/actions_modal.html.twig',
'params' => [
'edit_route' => 'dtc_mode_expedition_poids_transporteur_modifier',
'supprimer_route' => 'dtc_mode_expedition_poids_transporteur_supprimer',
'id' => $objet->getId(),
'type' => $type,
'entite' => 'modeExpedition',
'objet' => ModeExpedition::class,
'table' => "dta-mode-expe-poids-transporteur",
],
],
]
)
->setOrder("x.id", "asc")
->setSearch(true)
->setSearchFields([]);
return $datatable;
}
/**
* @Route("/mode-expe-poids-transporteur/grid/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_liste_grid")
*/
public function gridAction(Request $request, $id = "", $type = "", EntityManagerInterface $em, Datatable $datatable, TranslatorInterface $translator)
{
/*
if($type == 'client') {
$em = $em;
$repo_objet = $em->getRepository('DTCClientsBundle:Client');
$objet = $repo_objet->find($id);
}
else if($type == 'transporteur') {
$em = $em;
$repo_objet = $em->getRepository(Transporteur::class);
$objet = $repo_objet->find($id);
}
else if($type == 'fournisseur') {
$em = $em;
$repo_objet = $em->getRepository('DTCFournisseursBundle:Fournisseur');
$objet = $repo_objet->find($id);
}
*/
$em = $em;
$repo_objet = $em->getRepository(ModeExpedition::class);
$objet = $repo_objet->find($id);
return $this->datatable($objet, $type, $datatable, $translator)->execute();
}
/**
* @Route("/mode-expe-poids-transporteur/charger-tableau/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_charger_tableau")
*/
public function chargerTableauAction(Request $request, $id = "0", $type = "", EntityManagerInterface $em)
{
/*
if($type == 'client') {
$em = $em;
$repo_objet = $em->getRepository('DTCClientsBundle:Client');
$objet = $repo_objet->find($id);
}
else if($type == 'transporteur') {
$em = $em;
$repo_objet = $em->getRepository(Transporteur::class);
$objet = $repo_objet->find($id);
}
else if($type == 'fournisseur') {
$em = $em;
$repo_objet = $em->getRepository('DTCFournisseursBundle:Fournisseur');
$objet = $repo_objet->find($id);
}
*/
$repo_objet = $em->getRepository(ModeExpedition::class);
$objet = $repo_objet->find($id);
$rendu = $this->renderView('GestionComerciale/ModeExpeditionPoidsTransporteur/charger_tableau.html.twig', ["id" => $id, "type" => $type, "objet" => $objet]);
return new JsonResponse(['rendu' => $rendu]);
}
}