src/Controller/GestionComerciale/ArticleDevisController.php line 146

Open in your IDE?
  1. <?php
  2. namespace App\Controller\GestionComerciale;
  3. use App\Entity\Articles\Article;
  4. use App\Entity\GestionComerciale\Commande;
  5. use App\Library\Datatable\Util\Datatable;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Validator\Validator\ValidatorInterface;
  12. use Symfony\Contracts\Translation\TranslatorInterface;
  13. class ArticleDevisController extends AbstractController
  14. {
  15.     /**
  16.      * @Route("", name="")
  17.      */
  18.     public function listerAction(Request $request$id="0",$type="a"EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  19.     {                
  20.         $tableau_class_cellule = [];
  21.         $tableau_class_cellule[]= ["orderable" =>true"searchable" => false"className" =>"visible_export colonne_id""targets" => [0], "visible" =>true];
  22.         $tableau_class_cellule[]= ["orderable" =>true"searchable" => false"className" =>"visible_export colonne_id""targets" => [1], "visible" =>true];
  23.         $tableau_class_cellule[]= ["orderable" =>false"searchable" => false"className" =>"visible_export colonne_id text-center""targets" => [2], "visible" =>true];
  24.         $tableau_class_cellule[]= ["orderable" =>false"searchable" => false"className" =>"visible_export colonne_id text-center""targets" => [3], "visible" =>true];
  25.         $tableau_class_cellule[]= ["orderable" =>false"searchable" => false"className" =>"visible_export colonne_id text-right""targets" => [4], "visible" =>true];
  26.             
  27.         $modal $request->query->get('modal');        
  28.         $qte $request->query->get('qte');
  29.         if($type == "commande")  $repo_objet $em->getRepository(Commande::class);
  30.         $objet $repo_objet->find($id);     
  31.         if(is_object($objet)) {                
  32.             if($type == "commande") {                    
  33.                 $this->datatableCommande($objet,$type$datatable$translator);
  34.             }                
  35.             return $this->render('GestionComerciale/ArticleDevis/lister.html.twig', ['tableauClassColonne' =>$tableau_class_cellule"id" =>$id"type" =>$type]);
  36.         }            
  37.     }    
  38.     
  39.     
  40.     /**
  41.      * set datatable configs
  42.      *
  43.      * @return \App\Library\Datatable\Util\Datatable
  44.      */
  45.     private function datatableCommande($objet,$type=""Datatable $datatableTranslatorInterface $translator)
  46.     {
  47.     
  48.         $type_jointure 'x.'.$type;
  49.         $datatable  ->setDatatableId('dta-article-devis')
  50.                     ->setEntity(Article::class, "x")
  51.                     ->setFields(
  52.                         [
  53.                                $translator->trans("Référence") =>  'x.reference',                                                                                                                                                                                                                                                                                             
  54.                                $translator->trans("Libellé") =>  'x.libelle',                                                                                                                                                                                                                                                                                             
  55.                                $translator->trans("Nombre de lignes") =>  'x.id',                                                                                                                                                                                                                                                                                             
  56.                                $translator->trans("Quantité totale") =>  'x.id',                                                                                                                                                                                                                                                                                             
  57.                                $translator->trans("Prix") =>  'x.id',                                                                                                                                                                                                                                                                                             
  58.                                    "_identifier_" => 'x.id'
  59.                         ]
  60.                             )  
  61.                     //->addJoin('x.article', 'a', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)     
  62.                     ->addJoin('x.articleCommande''ac'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN\Doctrine\ORM\Query\Expr\Join::WITH'ac.article = x.id')                
  63.                     //->addJoin('ac.commande', 'c', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN, \Doctrine\ORM\Query\Expr\Join::WITH, 'c.id = ac.commande')                
  64.                      ->setWhere(
  65.                         'ac.commande = :objet',
  66.                         ['objet' => $objet]
  67.                         )
  68.                     ->setRenderers(
  69.                         [
  70.                                 
  71.                                 => [
  72.                                     'view' => 'FO/DataTable/nombre_de_lignes.html.twig',
  73.                                     'params' => [
  74.                                          'commande'=>$objet
  75.                                     ]
  76.                                 ],
  77.                                 => [
  78.                                     'view' => 'FO/DataTable/quantite_total.html.twig',
  79.                                     'params' => [
  80.                                          'commande'=>$objet
  81.                                     ]
  82.                                 ],
  83.                                 => [
  84.                                     'view' => 'FO/DataTable/prix_chaque_ligne.html.twig',
  85.                                     'params' => [
  86.                                          'commande'=>$objet
  87.                                     ]
  88.                                 ],
  89.                                 /*
  90.                                 1 => array(
  91.                                     'view' => 'FO/DataTable/date.html.twig',
  92.                                 ),
  93.                                 2 => array(
  94.                                     'view' => 'FO/DataTable/prix.html.twig',
  95.                                 ),
  96.                                 3 => array(
  97.                                 'view' => 'FO/DataTable/prix.html.twig',
  98.                                 'params' => array(
  99.                                                 
  100.                                  )  
  101.                                 ),
  102.                                 
  103.                                 1=> array(
  104.                                     'view' => 'FO/DataTable/actions_modal.html.twig',
  105.                                     'params' => array(
  106.                                             //'edit_route'  => 'dtc_concurrence_commande_modifier', 
  107.                                             //'supprimer_route'  => 'dtc_concurrence_commande_supprimer',  
  108.                                             //'id'    => $objet->getId(), 
  109.                                             //'type'    => $type, 
  110.                                             //'table'    => "dta-concurrence", 
  111.                                             //'entite'    => '', 
  112.                                             //'objet' => "DTCGestionComercialeBundle:Concurrence",
  113.                                             //'width_modal'=>800
  114.                                         ), 
  115.                                 ),*/
  116.                         ]
  117.                     )
  118.                     //->setOrder("x.id", "desc")
  119.                     //->setSearch(true)
  120.                     ->setGroupBy("x.id")
  121.                     
  122.                     //->setSearchFields(array(1,2))
  123.                     ;  
  124.          
  125.         return $datatable;                                    
  126.     }
  127.     
  128.     
  129.     /**
  130.      * Grid action 
  131.     
  132.      * @return Response
  133.      */
  134.     /**
  135.      * @Route("/articles-devis/grid/{id}/{type}", name="dtc_article_devis_liste_grid")
  136.      */
  137.     public function gridAction(Request $request$id="",$type=""EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  138.     {
  139.         if($type == "commande"$repo_objet $em->getRepository(Commande::class);
  140.         $objet $repo_objet->find($id); 
  141.         
  142.         if(is_object($objet) and $type == "commande") return $this->datatableCommande($objet,$type$datatable$translator)->execute();
  143.     }
  144. }