src/Service/DatatablesHomeService.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Doctrine\ORM\QueryBuilder;
  5. use Omines\DataTablesBundle\Adapter\ArrayAdapter;
  6. use Omines\DataTablesBundle\Column\TextColumn;
  7. use Omines\DataTablesBundle\Column\DateTimeColumn;
  8. use Omines\DataTablesBundle\Column\BoolColumn;
  9. use Omines\DataTablesBundle\Adapter\Doctrine\ORMAdapter;
  10. use Omines\DataTablesBundle\DataTableFactory;
  11. use Omines\DataTablesBundle\DataTable;
  12. use Omines\DataTablesBundle\Filter\ChoiceFilter;
  13. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  14. use Symfony\Contracts\Translation\TranslatorInterface;
  15. class DatatablesHomeService
  16. {
  17.     public function __construct(EntityManagerInterface $emUrlGeneratorInterface $routerDataTableFactory $dataTableFactory
  18.         GeneralService $general_serviceTranslatorInterface $translator)
  19.     {
  20.         $this->router $router;
  21.         $this->em $em;
  22.         $this->factory $dataTableFactory;
  23.         $this->general_service $general_service;
  24.         $this->translator $translator;
  25.     }
  26.     public function getFournisseurDerogation($user){
  27.         $table $this->factory->create([])
  28.         ->setName('datatable_superadmin_qualite')
  29.         //->add('date', DateTimeColumn::class, ['searchable' => true, 'className' => '_date', 'field' => 'u.date', 'label' => 'Date', 'format' => 'd/m/Y'])
  30.         ->add('typeCmd'TextColumn::class, ['searchable' => false'field' => 'u.typeCmd''label' =>  $this->translator->trans('QU_TYPECOMMANDE')])
  31.         ->add('numCommande'TextColumn::class, ['searchable' => true'field' => 'u.numCommande''label' => $this->translator->trans('QU_NUMCOMMANDE')])
  32.         ->add('numLot'TextColumn::class, ['searchable' => true'field' => 'u.numLot''label' => $this->translator->trans('QU_NUMLOT')])
  33.         ->add('reference'TextColumn::class, ['searchable' => true'field' => 'u.reference''label' => $this->translator->trans('G_REFERENCE')])
  34.         ->add('coloris'TextColumn::class, ['searchable' => true'field' => 'color.code_couleur''label' => $this->translator->trans('G_COLORIS')])
  35.         ->add('fournisseur'TextColumn::class, ['searchable' => false,'label' => $this->translator->trans('G_FOURNISSEUR'), 'className' => 'fiche_fourni''field' => 'fourni.name'])
  36.         ->add('numDerogation'TextColumn::class, ['searchable' => false,'label' => $this->translator->trans('QU_NUMDERO'), 'className' => 'fiche_numdero''field' => 'u.numDerogation'])
  37.         ->add('numPieceFournisseur'TextColumn::class, ['searchable' => false,'label' => $this->translator->trans('QU_NUMPIECEFOURNISSEUR'), 'className' => 'fiche_numpiecef''field' => 'u.numPieceFournisseur'])
  38.         ;
  39.         $table
  40.         ->createAdapter(ORMAdapter::class, [
  41.             'entity' => \App\Entity\FicheControle::class,
  42.             'query' => function (QueryBuilder $builder) use($user) {
  43.                 $builder
  44.                     ->select('u')
  45.                     ->from(\App\Entity\FicheControle::class, 'u')
  46.                     ->join('u.statutFournisseur''statutf')
  47.                     ->join('u.statutPerele'"statutsp")
  48.                     ->join('u.coloris''color')
  49.                     ->join('u.fournisseur''fourni')
  50.                     ->where('statutf.id = 6 OR statutf.id = 7 OR statutf.id = 17 or statutf.id = 13')
  51.                     ->andWhere('u.ficheFerme = 0')
  52.                     ->orderBy('u.dateControleFournisseur');
  53.                 if($user->getFournisseur() != null){
  54.                     $builder->andWhere('fourni.id = :fid')
  55.                         ->setParameter('fid'$user->getFournisseur()->getId());
  56.                 }
  57.                 if($user->getBu() != null){
  58.                     $builder->andWhere('u.bu = :bid')
  59.                         ->setParameter('bid'$user->getBu()->getId());
  60.                 }
  61.             },
  62.         ]);
  63.         return $table;
  64.     }
  65.         
  66.     public function getSuperadminControlesReception(){
  67.         $table $this->factory->create([])
  68.         ->setName('datatable_superadmin_qualite')
  69.         //->add('date', DateTimeColumn::class, ['searchable' => true, 'className' => '_date', 'field' => 'u.date', 'label' => 'Date', 'format' => 'd/m/Y'])
  70.         ->add('typeCmd'TextColumn::class, ['searchable' => false'field' => 'u.typeCmd''label' => $this->translator->trans('QU_TYPECOMMANDE')])
  71.         ->add('numCommande'TextColumn::class, ['searchable' => true'field' => 'u.numCommande''label' => $this->translator->trans('QU_NUMCOMMANDE')])
  72.         ->add('numLot'TextColumn::class, ['searchable' => true'field' => 'u.numLot''label' => $this->translator->trans('QU_NUMLOT')])
  73.         ->add('reference'TextColumn::class, ['searchable' => true'field' => 'u.reference''label' => $this->translator->trans('G_REFERENCE')])
  74.         ->add('coloris'TextColumn::class, ['searchable' => true'field' => 'color.code_couleur''label' => $this->translator->trans('G_COLORIS')])
  75.         ->add('fournisseur'TextColumn::class, ['searchable' => false,'label' => $this->translator->trans('G_FOURNISSEUR'), 'className' => 'fiche_fourni''field' => 'fourni.name'])
  76.         ->add('numDerogation'TextColumn::class, ['searchable' => false,'label' => 'N° déro''className' => 'fiche_numdero''field' => 'u.numDerogation'])
  77.         ->add('numPieceFournisseur'TextColumn::class, ['searchable' => false,'label' => 'N°pièce fournisseur''className' => 'fiche_numpiecef''field' => 'u.numPieceFournisseur'])
  78.         ;
  79.         $table
  80.         ->createAdapter(ORMAdapter::class, [
  81.             'entity' => \App\Entity\FicheControle::class,
  82.             'query' => function (QueryBuilder $builder) {
  83.             $builder
  84.                 ->select('u')
  85.                 ->from(\App\Entity\FicheControle::class, 'u')
  86.                 ->join('u.statutFournisseur''statutf')
  87.                 ->join('u.statutPerele'"statutsp")
  88.                 ->join('u.coloris''color')
  89.                 ->join('u.fournisseur''fourni')
  90.                 ->where('statutf.id = 6'// OR statutf.id = 7 OR statutf.id = 17 or statutf.id = 13
  91.                 ->andWhere('u.ficheFerme = 0')
  92.                 ->orderBy('u.dateControleFournisseur');
  93.             },
  94.         ]);
  95.         return $table;
  96.     }
  97.     public function getAtelierAttenteAtelier($user){
  98.         $table $this->factory->create([])
  99.         ->setName('datatable_ateliers_attente')
  100.         //->add('date', DateTimeColumn::class, ['searchable' => true, 'className' => '_date', 'field' => 'u.date', 'label' => 'Date', 'format' => 'd/m/Y'])
  101.         ->add('statuta'TextColumn::class, ['searchable' => false'field' => 'statuta.name_fr''label' => "Statut atelier"])
  102.         ->add('reference'TextColumn::class, ['searchable' => true'field' => 'u.reference''label' => $this->translator->trans('G_REFERENCE')])
  103.         ->add('coloris'TextColumn::class, ['searchable' => true'field' => 'color.code_couleur''label' => $this->translator->trans('G_COLORIS')])
  104.         ->add('fournisseur'TextColumn::class, ['searchable' => false,'label' => $this->translator->trans('G_FOURNISSEUR'), 'className' => 'fiche_fourni''field' => 'fourni.name'])
  105.         ->add('tailles'TextColumn::class, ['searchable' => true'field' => 'u.tailles''label' => $this->translator->trans('G_TAILLE')])
  106.         ->add('numLancement'TextColumn::class, ['searchable' => false,'label' => 'N° lancement''className' => 'fiche_numdero''field' => 'u.numLancement'])
  107.         ->add('numLot'TextColumn::class, ['searchable' => true'field' => 'u.numLot''label' => $this->translator->trans('QU_NUMLOT')])
  108.         ->add('quantiteControlee'TextColumn::class, ['searchable' => false,'label' => 'Quantité controlée''field' => 'u.quantiteControlee'])
  109.         ->add('quantiteNonConforme'TextColumn::class, ['searchable' => false,'label' => 'Quantité NC''field' => 'u.quantiteNonConforme'])
  110.         ->add('commentaires'TextColumn::class, ['searchable' => false,'label' => 'Commentaires''field' => 'u.commentaires'])
  111.         ->add('userSaisie'TextColumn::class, ['searchable' => false,'label' => 'Saisie par''field' => 'u.userSaisie'])
  112.         ->add('pdtFinisBloqueNonMonte'TextColumn::class, ['searchable' => false,'label' => 'Pdts finis bloqués non montés''field' => 'u.pdtFinisBloqueNonMonte'])
  113.         ->add('pdtFiniMonteNc'TextColumn::class, ['searchable' => false,'label' => 'Pdts finis montés NC''field' => 'u.pdtFiniMonteNc'])
  114.         ;
  115.         $table
  116.         ->createAdapter(ORMAdapter::class, [
  117.             'entity' => \App\Entity\FicheRetourAtelier::class,
  118.             'query' => function (QueryBuilder $builder) use($user){
  119.                 $builder
  120.                     ->select('u')
  121.                     ->from(\App\Entity\FicheRetourAtelier::class, 'u')
  122.                     ->join('u.statutSp''statut')
  123.                     ->join('u.statutAtelier''statuta')
  124.                     ->join('u.coloris2''color')
  125.                     ->join('u.fournisseur''fourni')
  126.                     ->where('u.ficheFerm = 0')
  127.                     ->andWhere('statuta.id = :sid')
  128.                     ->setParameter('sid'13)
  129.                     ->orderBy('u.dateCrea')
  130.                 ;
  131.                 if($user->getAtelier() != null){
  132.                     $builder->join('u.atelier''ate')
  133.                     ->andWhere('ate.id = :ateid')
  134.                     ->setParameter('ateid'$user->getAtelier()->getId());
  135.                 }
  136.             },
  137.         ]);
  138.         return $table;
  139.     }
  140.     public function getAtelierAttenteDecision($user){
  141.         $table $this->factory->create([])
  142.         ->setName('datatable_ateliers_decision')
  143.         //->add('date', DateTimeColumn::class, ['searchable' => true, 'className' => '_date', 'field' => 'u.date', 'label' => 'Date', 'format' => 'd/m/Y'])
  144.         ->add('statuta'TextColumn::class, ['searchable' => false'field' => 'statuta.name_fr''label' => "Statut atelier"])
  145.         ->add('reference'TextColumn::class, ['searchable' => true'field' => 'u.reference''label' => $this->translator->trans('G_REFERENCE')])
  146.         ->add('coloris'TextColumn::class, ['searchable' => true'field' => 'color.code_couleur''label' => $this->translator->trans('G_COLORIS')])
  147.         ->add('fournisseur'TextColumn::class, ['searchable' => false,'label' => $this->translator->trans('G_FOURNISSEUR'), 'className' => 'fiche_fourni''field' => 'fourni.name'])
  148.         ->add('tailles'TextColumn::class, ['searchable' => true'field' => 'u.tailles''label' => $this->translator->trans('G_TAILLE')])
  149.         ->add('numLancement'TextColumn::class, ['searchable' => false,'label' => 'N° lancement''className' => 'fiche_numdero''field' => 'u.numLancement'])
  150.         ->add('numLot'TextColumn::class, ['searchable' => true'field' => 'u.numLot''label' => $this->translator->trans('QU_NUMLOT')])
  151.         ->add('quantiteControlee'TextColumn::class, ['searchable' => false,'label' => 'Quantité controlée''field' => 'u.quantiteControlee'])
  152.         ->add('quantiteNonConforme'TextColumn::class, ['searchable' => false,'label' => 'Quantité NC''field' => 'u.quantiteNonConforme'])
  153.         ->add('commentaires'TextColumn::class, ['searchable' => false,'label' => 'Commentaires''field' => 'u.commentaires'])
  154.         ->add('userSaisie'TextColumn::class, ['searchable' => false,'label' => 'Saisie par''field' => 'u.userSaisie'])
  155.         ->add('pdtFinisBloqueNonMonte'TextColumn::class, ['searchable' => false,'label' => 'Pdts finis bloqués non montés''field' => 'u.pdtFinisBloqueNonMonte'])
  156.         ->add('pdtFiniMonteNc'TextColumn::class, ['searchable' => false,'label' => 'Pdts finis montés NC''field' => 'u.pdtFiniMonteNc'])
  157.         ;
  158.         $table
  159.         ->createAdapter(ORMAdapter::class, [
  160.             'entity' => \App\Entity\FicheRetourAtelier::class,
  161.             'query' => function (QueryBuilder $builder) use($user){
  162.                 $builder
  163.                     ->select('u')
  164.                     ->from(\App\Entity\FicheRetourAtelier::class, 'u')
  165.                     ->join('u.statutSp''statut')
  166.                     ->join('u.statutAtelier''statuta')
  167.                     ->join('u.coloris2''color')
  168.                     ->join('u.fournisseur''fourni')
  169.                     ->where('u.ficheFerm = 0')
  170.                     ->andWhere('statut.id = :sid')
  171.                     ->setParameter('sid'4)
  172.                     ->orderBy('u.dateCrea')
  173.                 ;
  174.                 if($user->getAtelier() != null){
  175.                     $builder->join('u.atelier''ate')
  176.                     ->andWhere('ate.id = :ateid')
  177.                     ->setParameter('ateid'$user->getAtelier()->getId());
  178.                 }
  179.             },
  180.         ]);
  181.         return $table;
  182.     }
  183.     public function getSuperadminAtelierAttente($user)
  184.     {
  185.         $table $this->factory->create([])
  186.         ->setName('datatable_superadmin_ateliers')
  187.         //->add('date', DateTimeColumn::class, ['searchable' => true, 'className' => '_date', 'field' => 'u.date', 'label' => 'Date', 'format' => 'd/m/Y'])
  188.         ->add('statuta'TextColumn::class, ['searchable' => false'field' => 'statuta.name_fr''label' => "Statut atelier"])
  189.         ->add('reference'TextColumn::class, ['searchable' => true'field' => 'u.reference''label' => $this->translator->trans('G_REFERENCE')])
  190.         ->add('coloris'TextColumn::class, ['searchable' => true'field' => 'color.code_couleur''label' => $this->translator->trans('G_COLORIS')])
  191.         ->add('fournisseur'TextColumn::class, ['searchable' => false,'label' => $this->translator->trans('G_FOURNISSEUR'), 'className' => 'fiche_fourni''field' => 'fourni.name'])
  192.         ->add('tailles'TextColumn::class, ['searchable' => true'field' => 'u.tailles''label' => $this->translator->trans('G_TAILLE')])
  193.         ->add('numLancement'TextColumn::class, ['searchable' => false,'label' => 'N° lancement''className' => 'fiche_numdero''field' => 'u.numLancement'])
  194.         ->add('numLot'TextColumn::class, ['searchable' => true'field' => 'u.numLot''label' => $this->translator->trans('QU_NUMLOT')])
  195.         ->add('quantiteControlee'TextColumn::class, ['searchable' => false,'label' => 'Quantité controlée''field' => 'u.quantiteControlee'])
  196.         ->add('quantiteNonConforme'TextColumn::class, ['searchable' => false,'label' => 'Quantité NC''field' => 'u.quantiteNonConforme'])
  197.         ->add('commentaires'TextColumn::class, ['searchable' => false,'label' => 'Commentaires''field' => 'u.commentaires'])
  198.         ->add('userSaisie'TextColumn::class, ['searchable' => false,'label' => 'Saisie par''field' => 'u.userSaisie'])
  199.         ->add('pdtFinisBloqueNonMonte'TextColumn::class, ['searchable' => false,'label' => 'Pdts finis bloqués non montés''field' => 'u.pdtFinisBloqueNonMonte'])
  200.         ->add('pdtFiniMonteNc'TextColumn::class, ['searchable' => false,'label' => 'Pdts finis montés NC''field' => 'u.pdtFiniMonteNc'])
  201.         ;
  202.         $table
  203.         ->createAdapter(ORMAdapter::class, [
  204.             'entity' => \App\Entity\FicheRetourAtelier::class,
  205.             'query' => function (QueryBuilder $builder) use($user){
  206.                 $builder
  207.                     ->select('u')
  208.                     ->from(\App\Entity\FicheRetourAtelier::class, 'u')
  209.                     ->join('u.statutSp''statut')
  210.                     ->join('u.statutAtelier''statuta')
  211.                     ->join('u.coloris2''color')
  212.                     ->join('u.fournisseur''fourni')
  213.                     ->where('u.ficheFerm = 0')
  214.                     ->andWhere('statut.id = :sid')
  215.                     ->setParameter('sid'4)
  216.                     ->orderBy('u.dateCrea')
  217.                 ;
  218.                 if($user->getDroits()->getRole() == "ROLE_SUPERADMIN" || $user->getDroits()->getRole() == "ROLE_ADMIN"){
  219.                 }else{
  220.                     //$builder->andWhere('u.bu = :bu')
  221.                     //    ->setParameter('bu', $user->getBu()->getId())
  222.                    // ;
  223.                 }
  224.             },
  225.         ]);
  226.         return $table;
  227.        
  228.     }
  229. }