src/Controller/GestionComerciale/ModeExpeditionPoidsTransporteurController.php line 378

Open in your IDE?
  1. <?php
  2. namespace App\Controller\GestionComerciale;
  3. use App\Entity\GestionComerciale\ModeExpedition;
  4. use App\Entity\GestionComerciale\ModeExpeditionPoidsTransporteur;
  5. use App\Form\GestionComerciale\ModeExpeditionPoidsTransporteurType;
  6. use App\Form\GestionComerciale\SupprimerModeExpeditionPoidsTransporteurType;
  7. use App\Library\Datatable\Util\Datatable;
  8. use App\Security\Voter\EntityVoter;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\JsonResponse;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use Symfony\Component\Validator\Validator\ValidatorInterface;
  16. use Symfony\Contracts\Translation\TranslatorInterface;
  17. class ModeExpeditionPoidsTransporteurController extends AbstractController
  18. {
  19.     /**
  20.      * @Route("/mode-expe-poids-transporteur/nouveau/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_ajouter")
  21.      */
  22.     public function ajouterAction(Request $request$id$type ""EntityManagerInterface $emTranslatorInterface $translatorValidatorInterface $validator)
  23.     {
  24.         $titre_modal                     $translator->trans("Nouvelle règle");
  25.         $page                            $request->query->get('page');
  26.         $modeExpeditionPoidsTransporteur = new ModeExpeditionPoidsTransporteur();
  27.         $user                            $this->getUser();
  28.         $get $request->query->all();
  29.         $form   $this->createForm(ModeExpeditionPoidsTransporteurType::class, $modeExpeditionPoidsTransporteur);
  30.         $errors "";
  31.         $form->handleRequest($request);
  32.         if ($form->isSubmitted()) {
  33.             $post $request->request->all();
  34.             if ($form->isValid()) {
  35.                 /*
  36.                 if($type == 'client') {
  37.                   $em = $em;
  38.                   $repo_objet = $em->getRepository('DTCClientsBundle:Client');
  39.                   $objet = $repo_objet->find($id);
  40.                   $modeExpeditionPoidsTransporteur->setClient($objet);
  41.                   $url = $this->generateUrl('dtc_client_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
  42.                 }
  43.                 else if($type == 'transporteur') {
  44.                   $em = $em;
  45.                   $repo_objet = $em->getRepository(Transporteur::class);
  46.                   $objet = $repo_objet->find($id);
  47.                   $modeExpeditionPoidsTransporteur->setTransporteur($objet);
  48.                   $url = $this->generateUrl('dtc_transporteur_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
  49.                 }
  50.                 */
  51.                 $repo_objet $em->getRepository(ModeExpedition::class);
  52.                 $objet      $repo_objet->find($id);
  53.                 $modeExpeditionPoidsTransporteur->setModeExpedition($objet);
  54.                 $url $this->generateUrl('dtc_mode_expedition_modifier', ['id' => $objet->getId(), 'tab' => 'regles']);
  55.                 $em->persist($modeExpeditionPoidsTransporteur);
  56.                 $em->flush();
  57.                 if (array_key_exists('table'$get) && $get["table"] != "") {
  58.                     return new JsonResponse(
  59.                         ['rendu' => '''valide' => '1''url' => $url'type' => 'recharger_datatable''id_datatable' => $get["table"]]
  60.                     );
  61.                 } else {
  62.                     $this->addFlash('notice'$translator->trans('Règle ajoutée avec succès !'));
  63.                     return new JsonResponse(['rendu' => '''valide' => '1''url' => $url]);
  64.                 }
  65.             } else {
  66.                 $errors $validator->validate($modeExpeditionPoidsTransporteur);
  67.                 $rendu  $this->renderView(
  68.                     'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
  69.                     ['form' => $form->createView(), 'errors' => $errors'id' => $id'type' => $type]
  70.                 );
  71.                 return new Response(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  72.             }
  73.         }
  74.         $rendu $this->renderView(
  75.             'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
  76.             ['form' => $form->createView(), 'errors' => $errors'id' => $id'type' => $type]
  77.         );
  78.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  79.         //return $this->render('GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig', array('form' => $form->createView(),'errors'=>$errors,'id'=>$id,'type'=>$type));
  80.     }
  81.     /**
  82.      * @Route("/mode-expe-poids-transporteur/modifier/{objet}/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_modifier")
  83.      */
  84.     public function modifierAction(Request             $requestModeExpeditionPoidsTransporteur $objet$id$typeEntityManagerInterface $em
  85.                                    TranslatorInterface $translatorValidatorInterface $validator
  86.     ) {
  87.         $modeExpeditionPoidsTransporteur $objet;
  88.         $titre_modal                     $translator->trans("Modifier règle");
  89.         $get                             $request->query->all();
  90.         $user                            $this->getUser();
  91.         $form                            $this->createForm(ModeExpeditionPoidsTransporteurType::class, $modeExpeditionPoidsTransporteur);
  92.         $errors                          "";
  93.         $form->handleRequest($request);
  94.         $post $request->request->all();
  95.         if ($form->isSubmitted()) {
  96.             $droit $this->isGranted(EntityVoter::UPDATEModeExpeditionPoidsTransporteur::class);
  97.             if ( ! $droit) {
  98.                 $rendu $this->renderView(
  99.                     'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
  100.                     ['form' => $form->createView(), 'errors' => $errors'id' => $id'type' => $type'objet' => $objet]
  101.                 );
  102.                 return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  103.             }
  104.             if ($form->isValid()) {
  105.                 /*
  106.                 if($type == 'client') {
  107.                   $em = $em;
  108.                   $repo_objet = $em->getRepository('DTCClientsBundle:Client');
  109.                   $objet = $repo_objet->find($id);
  110.                   $modeExpeditionPoidsTransporteur->setClient($objet);
  111.                   $url = $this->generateUrl('dtc_client_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
  112.                 }
  113.                 else if($type == 'transporteur') {
  114.                   $em = $em;
  115.                   $repo_objet = $em->getRepository(Transporteur::class);
  116.                   $objet = $repo_objet->find($id);
  117.                   $modeExpeditionPoidsTransporteur->setTransporteur($objet);
  118.                   $url = $this->generateUrl('dtc_transporteur_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
  119.                 }
  120.                 else if($type == 'fournisseur') {
  121.                   $em = $em;
  122.                   $repo_objet = $em->getRepository('DTCFournisseursBundle:Fournisseur');
  123.                   $objet = $repo_objet->find($id);
  124.                   $modeExpeditionPoidsTransporteur->setFournisseur($objet);
  125.                   $url = $this->generateUrl('dtc_fournisseur_modifier', array('id' => $objet->getId(),'tab'=>'adresses'));
  126.                 }
  127.                 */
  128.                 $repo_objet $em->getRepository(ModeExpedition::class);
  129.                 $objet      $repo_objet->find($id);
  130.                 $modeExpeditionPoidsTransporteur->setModeExpedition($objet);
  131.                 $url $this->generateUrl('dtc_mode_expedition_modifier', ['id' => $objet->getId(), 'tab' => 'regles']);
  132.                 $em->persist($modeExpeditionPoidsTransporteur);
  133.                 $em->flush();
  134.                 if (array_key_exists('table'$get) && $get["table"] != "") {
  135.                     return new JsonResponse(
  136.                         ['rendu' => '''valide' => '1''url' => $url'type' => 'recharger_datatable''id_datatable' => $get["table"]]
  137.                     );
  138.                 } else {
  139.                     $this->addFlash('notice'$translator->trans('Règle modifié avec succès !'));
  140.                     return new JsonResponse(['rendu' => '''valide' => '1''url' => $url]);
  141.                 }
  142.             } else {
  143.                 $errors $validator->validate($modeExpeditionPoidsTransporteur);
  144.                 $rendu  $this->renderView(
  145.                     'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
  146.                     [
  147.                         'form'                            => $form->createView(),
  148.                         'errors'                          => $errors,
  149.                         'id'                              => $id,
  150.                         'type'                            => $type,
  151.                         'objet'                           => $objet,
  152.                         'modeExpeditionPoidsTransporteur' => $modeExpeditionPoidsTransporteur,
  153.                     ]
  154.                 );
  155.                 return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  156.             }
  157.         }
  158.         $rendu $this->renderView(
  159.             'GestionComerciale/ModeExpeditionPoidsTransporteur/ajouter.html.twig',
  160.             [
  161.                 'form'                            => $form->createView(),
  162.                 'errors'                          => $errors,
  163.                 'id'                              => $id,
  164.                 'type'                            => $type,
  165.                 'objet'                           => $objet,
  166.                 'modeExpeditionPoidsTransporteur' => $modeExpeditionPoidsTransporteur,
  167.             ]
  168.         );
  169.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  170.     }
  171.     /**
  172.      * @Route("/mode-expe-poids-transporteur/supprimer/{objet}/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_supprimer")
  173.      */
  174.     public function supprimerAction(Request            $requestModeExpeditionPoidsTransporteur $objet$id$typeEntityManagerInterface $emTranslatorInterface $translator,
  175.                                     ValidatorInterface $validator
  176.     ) {
  177.         $modeExpeditionPoidsTransporteur $objet;
  178.         $titre_modal                     $translator->trans("Demande de confirmation");
  179.         $user                            $this->getUser();
  180.         $get                             $request->query->all();
  181.         $form                            $this->createForm(SupprimerModeExpeditionPoidsTransporteurType::class, $modeExpeditionPoidsTransporteur);
  182.         $errors                          "";
  183.         $form->handleRequest($request);
  184.         if ($form->isSubmitted()) {
  185.             if ($form->isValid()) {
  186.                 $em->remove($modeExpeditionPoidsTransporteur);
  187.                 $em->flush();
  188.                 /*
  189.                 if($type == 'client') {
  190.                   $url = $this->generateUrl('dtc_client_modifier', array('id' => $id,'tab'=>'adresses'));
  191.                 }
  192.                 else if($type == 'transporteur') {
  193.                   $url = $this->generateUrl('dtc_transporteur_modifier', array('id' => $id,'tab'=>'adresses'));
  194.                 }
  195.                 else if($type == 'fournisseur') {
  196.                   $url = $this->generateUrl('dtc_fournisseur_modifier', array('id' => $id,'tab'=>'adresses'));
  197.                 }
  198.                 */
  199.                 $url $this->generateUrl('dtc_mode_expedition_modifier', ['id' => $id'tab' => 'regles']);
  200.                 if (array_key_exists('table'$get) && $get["table"] != "") {
  201.                     return new JsonResponse(
  202.                         ['rendu' => '''valide' => '1''url' => $url'type' => 'recharger_datatable''id_datatable' => $get["table"]]
  203.                     );
  204.                 } else {
  205.                     $this->addFlash('notice'$translator->trans('Règle supprimée avec succès !'));
  206.                     return new JsonResponse(['rendu' => '''valide' => '1''url' => $url]);
  207.                 }
  208.             } else {
  209.                 $errors $validator->validate($modeExpeditionPoidsTransporteur);
  210.                 $rendu  $this->renderView(
  211.                     'FO/Supprimer/supprimer.html.twig',
  212.                     ['form' => $form->createView(), 'errors' => $errors'id' => $id'type' => $type'objet' => $objet]
  213.                 );
  214.                 return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  215.             }
  216.         }
  217.         $rendu $this->renderView('FO/Supprimer/supprimer.html.twig', ['form' => $form->createView(), 'errors' => $errors'id' => $id'type' => $type'objet' => $objet]);
  218.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  219.     }
  220.     /**
  221.      * @Route("/mode-expe-poids-transporteur/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_liste")
  222.      */
  223.     public function listerAction(Request $request$id$type ""$objet ""EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  224.     {
  225.         /*
  226.         if($type == 'client') {
  227.           $em = $em;
  228.           $repo_objet = $em->getRepository('DTCClientsBundle:Client');
  229.           $objet = $repo_objet->find($id);
  230.         }
  231.         else if($type == 'transporteur') {
  232.           $em = $em;
  233.           $repo_objet = $em->getRepository(Transporteur::class);
  234.           $objet = $repo_objet->find($id);
  235.         }
  236.         else if($type == 'fournisseur') {
  237.           $em = $em;
  238.           $repo_objet = $em->getRepository('DTCFournisseursBundle:Fournisseur');
  239.           $objet = $repo_objet->find($id);
  240.         }
  241.         */
  242.         $repo_objet $em->getRepository(ModeExpedition::class);
  243.         $objet      $repo_objet->find($id);
  244.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [0], "visible" => true"orderable" => true"searchable" => true];
  245.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [1], "visible" => true"orderable" => true"searchable" => true];
  246.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [2], "visible" => true"orderable" => true"searchable" => true];
  247.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [3], "visible" => true"orderable" => true"searchable" => true];
  248.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [4], "visible" => true"orderable" => true"searchable" => true];
  249.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [5], "visible" => true"orderable" => true"searchable" => true];
  250.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [6], "visible" => true"orderable" => true"searchable" => true];
  251.         $tableau_class_cellule[] = ["orderable" => false"className" => "colonne_id""targets" => [7], "visible" => true];
  252.         $tableau_class_cellule[] = ["orderable" => false"className" => "colonne_id""targets" => [11], "visible" => true"orderable" => false];
  253.         $tableau_class_cellule   = [];
  254.         $this->datatable($objet$type$datatable$translator);
  255.         return $this->render(
  256.             'GestionComerciale/ModeExpeditionPoidsTransporteur/lister.html.twig',
  257.             ['tableauClassColonne' => $tableau_class_cellule"id" => $id"type" => $type]
  258.         );
  259.     }
  260.     /**
  261.      * set datatable configs
  262.      *
  263.      * @return \App\Library\Datatable\Util\Datatable
  264.      */
  265.     private function datatable($objet$type ""Datatable $datatableTranslatorInterface $translator)
  266.     {
  267.         $type_jointure 'x.'.$type;
  268.         $datatable->setDatatableId('dta-mode-expe-poids-transporteur')
  269.                   ->setEntity(ModeExpeditionPoidsTransporteur::class, "x")
  270.                   ->setFields(
  271.                       [
  272.                           $translator->trans("ID")                  => 'x.id',
  273.                           $translator->trans("Poids min (grammes)") => 'x.poidsMin',
  274.                           $translator->trans("Poids max (grammes)") => 'x.poidsMax',
  275.                           $translator->trans("Transporteur")        => 't.libelle',
  276.                           $translator->trans("Actions")             => 'x.id',
  277.                           "_identifier_"                            => 'x.id',
  278.                       ]
  279.                   )
  280.                   ->addJoin('x.transporteur''t'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  281.                   ->setWhere(
  282.                       $type_jointure.' = :objet',
  283.                       ['objet' => $objet]
  284.                   )
  285.                   ->setRenderers(
  286.                       [
  287.                           => [
  288.                               'view'   => 'FO/DataTable/actions_modal.html.twig',
  289.                               'params' => [
  290.                                   'edit_route'      => 'dtc_mode_expedition_poids_transporteur_modifier',
  291.                                   'supprimer_route' => 'dtc_mode_expedition_poids_transporteur_supprimer',
  292.                                   'id'              => $objet->getId(),
  293.                                   'type'            => $type,
  294.                                   'entite'          => 'modeExpedition',
  295.                                   'objet'           => ModeExpedition::class,
  296.                                   'table'           => "dta-mode-expe-poids-transporteur",
  297.                               ],
  298.                           ],
  299.                       ]
  300.                   )
  301.                   ->setOrder("x.id""asc")
  302.                   ->setSearch(true)
  303.                   ->setSearchFields([]);
  304.         return $datatable;
  305.     }
  306.     /**
  307.      * @Route("/mode-expe-poids-transporteur/grid/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_liste_grid")
  308.      */
  309.     public function gridAction(Request $request$id ""$type ""EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  310.     {
  311.         /*
  312.         if($type == 'client') {
  313.           $em = $em;
  314.           $repo_objet = $em->getRepository('DTCClientsBundle:Client');
  315.           $objet = $repo_objet->find($id);
  316.         }
  317.         else if($type == 'transporteur') {
  318.           $em = $em;
  319.           $repo_objet = $em->getRepository(Transporteur::class);
  320.           $objet = $repo_objet->find($id);
  321.         }
  322.         else if($type == 'fournisseur') {
  323.           $em = $em;
  324.           $repo_objet = $em->getRepository('DTCFournisseursBundle:Fournisseur');
  325.           $objet = $repo_objet->find($id);
  326.         }
  327.         */
  328.         $em         $em;
  329.         $repo_objet $em->getRepository(ModeExpedition::class);
  330.         $objet      $repo_objet->find($id);
  331.         return $this->datatable($objet$type$datatable$translator)->execute();
  332.     }
  333.     /**
  334.      * @Route("/mode-expe-poids-transporteur/charger-tableau/{id}/{type}", name="dtc_mode_expedition_poids_transporteur_charger_tableau")
  335.      */
  336.     public function chargerTableauAction(Request $request$id "0"$type ""EntityManagerInterface $em)
  337.     {
  338.         /*
  339.         if($type == 'client') {
  340.         $em = $em;
  341.         $repo_objet = $em->getRepository('DTCClientsBundle:Client');
  342.         $objet = $repo_objet->find($id);
  343.         }
  344.         else if($type == 'transporteur') {
  345.         $em = $em;
  346.         $repo_objet = $em->getRepository(Transporteur::class);
  347.         $objet = $repo_objet->find($id);
  348.         }
  349.         else if($type == 'fournisseur') {
  350.         $em = $em;
  351.         $repo_objet = $em->getRepository('DTCFournisseursBundle:Fournisseur');
  352.         $objet = $repo_objet->find($id);
  353.         }
  354.         */
  355.         $repo_objet $em->getRepository(ModeExpedition::class);
  356.         $objet      $repo_objet->find($id);
  357.         $rendu $this->renderView('GestionComerciale/ModeExpeditionPoidsTransporteur/charger_tableau.html.twig', ["id" => $id"type" => $type"objet" => $objet]);
  358.         return new JsonResponse(['rendu' => $rendu]);
  359.     }
  360. }