src/Controller/GestionComerciale/HistoriqueEmailController.php line 56

Open in your IDE?
  1. <?php
  2. namespace App\Controller\GestionComerciale;
  3. use App\Entity\Articles\Article;
  4. use App\Entity\Clients\Client;
  5. use App\Entity\Fournisseurs\Fournisseur;
  6. use App\Entity\GestionComerciale\Commande;
  7. use App\Entity\GestionComerciale\CommandeFournisseur;
  8. use App\Entity\GestionComerciale\HistoriqueCommande;
  9. use App\Entity\Transporteurs\Transporteur;
  10. use App\Library\Datatable\Util\Datatable;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\JsonResponse;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\Validator\Validator\ValidatorInterface;
  18. use Symfony\Contracts\Translation\TranslatorInterface;
  19. class HistoriqueEmailController extends AbstractController
  20. {
  21.     /**
  22.      * @Route("/email-client/charger-tableau/{id}/{type}", name="dtc_email_client_charger_tableau")
  23.      */
  24.     public function chargerTableauAction(Request $request$id "0"$type ""EntityManagerInterface $em)
  25.     {
  26.         $objet null;
  27.         if ($type == "article") {
  28.             $repo_objet $em->getRepository(Article::class);
  29.             $objet      $repo_objet->find($id);
  30.         } elseif ($type == "client") {
  31.             $repo_objet $em->getRepository(Client::class);
  32.             $objet      $repo_objet->find($id);
  33.         } elseif ($type == "commande") {
  34.             $repo_objet $em->getRepository(Commande::class);
  35.             $objet      $repo_objet->find($id);
  36.         } elseif ($type == "commandeFournisseur") {
  37.             $repo_objet $em->getRepository(CommandeFournisseur::class);
  38.             $objet      $repo_objet->find($id);
  39.         } elseif ($type == "fournisseur") {
  40.             $repo_objet $em->getRepository(Fournisseur::class);
  41.             $objet      $repo_objet->find($id);
  42.         }
  43.         $rendu $this->renderView('GestionComerciale/HistoriqueEmail/charger_tableau.html.twig', ["id" => $id"type" => $type"objet" => $objet]);
  44.         return new JsonResponse(['rendu' => $rendu]);
  45.     }
  46.     /**
  47.      * @Route("", name="")
  48.      */
  49.     public function listerAction(Request $request$id$type ""EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  50.     {
  51.         if ($type == 'client') {
  52.             $repo_objet $em->getRepository(Client::class);
  53.             $objet      $repo_objet->find($id);
  54.         } elseif ($type == 'transporteur') {
  55.             $repo_objet $em->getRepository(Transporteur::class);
  56.             $objet      $repo_objet->find($id);
  57.         } elseif ($type == 'fournisseur') {
  58.             $repo_objet $em->getRepository(Fournisseur::class);
  59.             $objet      $repo_objet->find($id);
  60.         }
  61.         $tableau_class_cellule   = [];
  62.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id text-center""targets" => [0], "visible" => true"orderable" => true"searchable" => false];
  63.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [1], "visible" => true"orderable" => true"searchable" => true];
  64.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [2], "visible" => true"orderable" => true"searchable" => true];
  65.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [3], "visible" => true"orderable" => true"searchable" => true];
  66.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id text-center""targets" => [4], "visible" => true"orderable" => false"searchable" => true];
  67.         $tableau_class_cellule[] = ["className" => "visible_export colonne_id""targets" => [5], "visible" => true"orderable" => false"searchable" => false];
  68.         /*
  69.         $tableau_class_cellule[]=array("className"=>"visible_export colonne_id","targets"=>array(0),"visible"=>true,"orderable"=>true,"searchable"=> true);
  70.         $tableau_class_cellule[]=array("className"=>"visible_export colonne_id","targets"=>array(1),"visible"=>true,"orderable"=>true,"searchable"=> true);
  71.         $tableau_class_cellule[]=array("className"=>"visible_export colonne_id","targets"=>array(2),"visible"=>true,"orderable"=>true,"searchable"=> true);
  72.         $tableau_class_cellule[]=array("className"=>"visible_export colonne_id","targets"=>array(3),"visible"=>true,"orderable"=>true,"searchable"=> true);
  73.         $tableau_class_cellule[]=array("className"=>"visible_export colonne_id","targets"=>array(4),"visible"=>true,"orderable"=>true,"searchable"=> true);
  74.         $tableau_class_cellule[]=array("className"=>"visible_export colonne_id","targets"=>array(5),"visible"=>true,"orderable"=>true,"searchable"=> true);
  75.         $tableau_class_cellule[]=array("orderable"=>false,"className"=>"colonne_id","targets"=>array(6),"visible"=>true,"orderable"=>true);
  76.         $tableau_class_cellule[]=array("orderable"=>false,"className"=>"colonne_id","targets"=>array(7),"visible"=>true,"orderable"=>true);
  77.         $tableau_class_cellule[]=array("orderable"=>false,"className"=>"colonne_id","targets"=>array(8),"visible"=>true,"orderable"=>false);
  78.         */
  79.         $this->datatable($objet$type$datatable$translator);
  80.         return $this->render('GestionComerciale/HistoriqueEmail/lister.html.twig', ['tableauClassColonne' => $tableau_class_cellule"id" => $id"type" => $type]);
  81.     }
  82.     /**
  83.      * set datatable configs
  84.      *
  85.      * @return \App\Library\Datatable\Util\Datatable
  86.      */
  87.     private function datatable($objet$type ""Datatable $datatableTranslatorInterface $translator)
  88.     {
  89.         $type_jointure 'x.'.$type;
  90.         $datatable->setDatatableId('dta-historique-email')
  91.                   ->setEntity(HistoriqueCommande::class, "x")
  92.                   ->setFields(
  93.                       [
  94.                           //$translator->trans("ID") =>  'x.id',
  95.                           $translator->trans("Date envoi")   => 'x.date',
  96.                           $translator->trans("ExpĂ©diteur")   => 'x.expediteurMail',
  97.                           $translator->trans("Destinataire") => 'x.destinataireMail',
  98.                           $translator->trans("Sujet")        => 'x.sujetMail',
  99.                           $translator->trans("pj")           => 'x.pjMail',
  100.                           $translator->trans("Actions")      => 'x.id',
  101.                           "_identifier_"                     => 'x.id',
  102.                       ]
  103.                   )
  104.             //->addJoin('x.civilite', 'c', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
  105.                   ->setWhere(
  106.                 $type_jointure.' = :objet',
  107.                 ['objet' => $objet]
  108.             )
  109.                   ->setRenderers(
  110.                       [
  111.                           => [
  112.                               'view'   => 'FO/DataTable/heure.html.twig',
  113.                               'params' => [],
  114.                           ],
  115.                           => [
  116.                               'view'   => 'FO/DataTable/total_pj_email.html.twig',
  117.                               'params' => [],
  118.                           ],
  119.                           => [
  120.                               'view'   => 'FO/DataTable/actions_modal.html.twig',
  121.                               'params' => [
  122.                                   'afficher_route'       => 'dtc_email_client_afficher',
  123.                                   'email_renvoyer_route' => 'dtc_commande_email_envoyer',
  124.                                   'id'                   => $objet->getId(),
  125.                                   'type'                 => $type,
  126.                                   'entite'               => 'HistoriqueCommande',
  127.                                   'objet'                => HistoriqueCommande::class,
  128.                                   'table'                => "",
  129.                                   'width_modal'          => "1000",
  130.                               ],
  131.                           ],
  132.                       ]
  133.                   )
  134.                   ->setOrder("x.id""desc")
  135.                   ->setSearch(true)
  136.                   ->setSearchFields([123])
  137.                   ->setOrder("x.date""desc");
  138.         return $datatable;
  139.     }
  140.     /**
  141.      * @Route("/historique-email/grid/{id}/{type}", name="dtc_historique_email_liste_grid")
  142.      */
  143.     public function gridAction(Request $request$id ""$type ""EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  144.     {
  145.         if ($type == 'client') {
  146.             $repo_objet $em->getRepository(Client::class);
  147.             $objet      $repo_objet->find($id);
  148.         } elseif ($type == 'transporteur') {
  149.             $repo_objet $em->getRepository(Transporteur::class);
  150.             $objet      $repo_objet->find($id);
  151.         } elseif ($type == 'fournisseur') {
  152.             $repo_objet $em->getRepository(Fournisseur::class);
  153.             $objet      $repo_objet->find($id);
  154.         }
  155.         return $this->datatable($objet$type$datatable$translator)->execute();
  156.     }
  157.     /**
  158.      * @Route("/email-client/afficher/{objet}/{id}/{type}", name="dtc_email_client_afficher")
  159.      */
  160.     public function afficherAction(Request $requestHistoriqueCommande $objet$id$typeTranslatorInterface $translator)
  161.     {
  162.         $type_json "";
  163.         $user    $this->getUser();
  164.         $param   $request->query->all();
  165.         $get     $request->query->all();
  166.         $titre_modal $translator->trans("DĂ©tails email");
  167.         $rendu $this->renderView('GestionComerciale/HistoriqueEmail/afficher_modal.html.twig', ['email' => $objet]);
  168.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  169.     }
  170. }