src/Repository/stock/VilleRepository.php line 303

Open in your IDE?
  1. <?php
  2. namespace App\Repository\stock;
  3. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use App\Types\user\TypeEtat;
  6. use Doctrine\ORM\RepositoryRepository;
  7. use App\Entity\stock\Ville;
  8. use App\ControllerModel\user\paramUtilTrait;
  9. /**
  10.  * VilleRepository
  11.  *
  12.  * This class was generated by the Doctrine ORM. Add your own custom
  13.  * repository methods below.
  14.  */
  15. class VilleRepository extends ServiceEntityRepository
  16. {
  17.     use paramUtilTrait;
  18.     public function __construct(ManagerRegistry $registry)
  19.     {
  20.         parent::__construct($registryVille::class);
  21.     }
  22.     
  23.     
  24.             /**
  25.      * Retourne tous les profils.
  26.      *
  27.      * @return type
  28.      */
  29.     public function getAllVille($typeProdVille=1,$typeVille 3)
  30.     {
  31.         $qb $this->createQueryBuilder('r')
  32.                 ->where('r.etatVille != '.TypeEtat::SUPPRIME)
  33.                 //->andWhere('r.typeProdVille = '.$typeProdVille)
  34.                 //->andWhere('r.typeVille = '.$typeVille)
  35.                 ->orderBy('r.id''ASC');
  36.         return $qb->getQuery()->getResult();
  37.     }
  38.     /**
  39.      * Retourne un fournisseur.
  40.      *
  41.      * @return type
  42.      */
  43.     public function getAllVillePays($paysId)
  44.     {
  45.          $query $this->_em->createQuery(
  46.                        'SELECT  v
  47.                         FROM App\Entity\stock\Ville  v
  48.                         INNER JOIN v.pays p
  49.                         
  50.                         WHERE  p.id =:paysId'
  51.                             )                
  52.                  ->setParameters(["paysId"=>$paysId ]);
  53.        
  54.           return $query->getResult();;
  55.     }
  56.     /**
  57.      * Retourne un fournisseur.
  58.      *
  59.      * @return type
  60.      */
  61.     public function getAllIdActive($abonneId=0)
  62.     {
  63.          $query $this->_em->createQuery(
  64.                        'SELECT  av.id as idAv, v.id as id
  65.                         FROM App\Entity\user\AbonneVille  av
  66.                         INNER JOIN av.ville v
  67.                         INNER JOIN av.abonne a
  68.                         WHERE  a.id =:abonneId'
  69.                             )                
  70.                  ->setParameters(["abonneId"=>$abonneId]);
  71.         $transform = function($item){
  72.             return $item['id'];
  73.         };
  74.           return array_map($transform$query->getScalarResult());
  75.     }
  76.       /**
  77.      * Retourne un fournisseur.
  78.      *
  79.      * @return type
  80.      */
  81.     public function getAllAbonneActive($abonneId=0)
  82.     {
  83.          $query $this->_em->createQuery(
  84.                        'SELECT av
  85.                         FROM App\Entity\user\AbonneVille  av
  86.                         INNER JOIN av.ville v
  87.                         INNER JOIN av.abonne a
  88.                         WHERE  a.id =:abonneId'
  89.                             )                
  90.                  ->setParameters(["abonneId"=>$abonneId]);
  91.                  return $query->getResult();
  92.     }
  93.         /**
  94.      * Retourne un fournisseur.
  95.      *
  96.      * @return type
  97.      */
  98.     public function getZoneProducteur($abonneId=0)
  99.     {
  100.          $query $this->_em->createQuery(
  101.                        'SELECT  DISTINCT v.id , v.nomVille
  102.                         FROM App\Entity\stock\Ville  v
  103.                         INNER JOIN v.zoneproducteurs zp
  104.                         INNER JOIN zp.producteur p
  105.                         INNER JOIN p.abonne a
  106.                         WHERE  a.id =:abonneId'
  107.                             )                
  108.                  ->setParameters(["abonneId"=>$abonneId]);
  109.         $transform = function($item){
  110.             return $item['id'];
  111.         };
  112.           return array_map($transform$query->getScalarResult());
  113.     }
  114.             /**
  115.      * Retourne un fournisseur.
  116.      *
  117.      * @return type
  118.      */
  119.     public function getZoneInfoProducteur($producteurId=0)
  120.     {
  121.          $query $this->_em->createQuery(
  122.                        'SELECT  DISTINCT v.id , v.nomVille
  123.                         FROM App\Entity\stock\Ville  v
  124.                         INNER JOIN v.zoneproducteurs zp
  125.                         INNER JOIN zp.producteur p
  126.                         INNER JOIN p.abonne a
  127.                         WHERE  p.id =:producteurId'
  128.                             )                
  129.                  ->setParameters(["producteurId"=>$producteurId]);
  130.    
  131.           return $query->getResult();;
  132.     }
  133.     /**
  134.      * Retourne un fournisseur.
  135.      *
  136.      * @return type
  137.      */
  138.     public function getZoneAbonneProducteur($abonneId=0)
  139.     {
  140.          $query $this->_em->createQuery(
  141.                        'SELECT  DISTINCT v
  142.                         FROM App\Entity\stock\Ville  v
  143.                         INNER JOIN v.zoneabonnes p
  144.                         
  145.                         INNER JOIN p.abonne a
  146.                         WHERE  a.id =:abonneId'
  147.                             )                
  148.                  ->setParameters(["abonneId"=>$abonneId]);
  149.                  return $query->getResult();
  150.     }
  151.     
  152.             /**
  153.      * Retourne un fournisseur.
  154.      *
  155.      * @return type
  156.      */
  157.     public function getInfoZoneProducteur($abonneId=0)
  158.     {
  159.          $query $this->_em->createQuery(
  160.                        'SELECT  DISTINCT v.id , v.nomVille
  161.                         FROM App\Entity\stock\Ville  v
  162.                         INNER JOIN v.zoneproducteurs zp
  163.                         INNER JOIN zp.producteur p
  164.                         INNER JOIN p.abonne a
  165.                         WHERE  a.id =:abonneId'
  166.                             )                
  167.                  ->setParameters(["abonneId"=>$abonneId]);
  168.                  return $query->getResult();
  169.     }
  170.                 /**
  171.      * Retourne un fournisseur.
  172.      *
  173.      * @return type
  174.      */
  175.     public function getInfoZoneByVille($abonneId=0)
  176.     {
  177.          $query $this->_em->createQuery(
  178.                        'SELECT  DISTINCT v.id , v.nomVille
  179.                         FROM App\Entity\stock\Ville  v
  180.                         INNER JOIN v.abonnevilles av
  181.                         INNER JOIN av.abonne a
  182.                         WHERE  a.id =:abonneId AND av.typeAbonneVille = 5 '
  183.                 )                
  184.                  ->setParameters(["abonneId"=>$abonneId]);
  185.                  return $query->getResult();
  186.     }
  187.                 /**
  188.      * Retourne tous les profils.
  189.      *
  190.      * @return type
  191.      */
  192.     public function getAllVilleByProduit($typeProdVille=1)
  193.     {
  194.         $qb $this->createQueryBuilder('r')
  195.                 ->where('r.etatVille != '.TypeEtat::SUPPRIME)
  196.                 ->andWhere('r.typeVille = '.$typeProdVille)
  197.                 ->orderBy('r.id''ASC');
  198.         return $qb->getQuery()->getResult();
  199.     }
  200.             /**
  201.      * Retourne tous les profils.
  202.      *
  203.      * @return type
  204.      */
  205.     public function getAllActiveVille($typeProdVille=1,$typeVille 2)
  206.     {
  207.         $qb $this->createQueryBuilder('r')
  208.                 ->where('r.etatVille = '.TypeEtat::ACTIF)
  209.                
  210.                 ->andWhere('r.typeVille = '.$typeVille)
  211.                 ->orderBy('r.id''ASC');
  212.                // ->andWhere('r.typeProdVille = '.$typeProdVille)
  213.         //var_dump($typeProdVille);exit;
  214.         return $qb->getQuery()->getResult();
  215.     }
  216.     
  217.     /**
  218.      * Retourne un fournisseur.
  219.      *
  220.      * @return type
  221.      */
  222.     public function getPrixProducteur($id$idAnnee)
  223.     {
  224.          $query $this->_em->createQuery(
  225.                        'SELECT DISTINCT p.id, pr.infoPrixRigueur
  226.                         FROM App\Entity\stock\PrixZone p INNER JOIN p.prixrigueur pr INNER JOIN p.anneecampagne a INNER JOIN p.ville v
  227.                         INNER JOIN v.producteurs pd
  228.                         WHERE pd.id =:id and  a.id =:idAnnee'
  229.                             )                
  230.                  ->setParameters(array('id'=>$id,'idAnnee'=>$idAnnee));
  231.           return  $query->getResult();
  232.     }
  233.     
  234.     /**
  235.      * Retourne un fournisseur.
  236.      *
  237.      * @return type
  238.      */
  239.     public function getDistinctZoneProducteur($abonneId)
  240.     {
  241.          $query $this->_em->createQuery(
  242.                        'SELECT DISTINCT v.id, v.nomVille
  243.                         FROM App\Entity\stock\Ville v INNER JOIN v.zoneproducteurs  zp
  244.                         INNER JOIN zp.abonne a 
  245.                         WHERE  a.id =:abonneId'
  246.                         )                
  247.                  ->setParameters(array('abonneId'=>$abonneId));
  248.                //var_dump($query->getSql());exit;
  249.           return  $query->getResult();
  250.     }
  251.     public function getDistinctZone($abonneId$typeVille)
  252.     {
  253.          $query $this->_em->createQuery(
  254.                        'SELECT DISTINCT v.id, v.nomVille
  255.                         FROM App\Entity\stock\Ville v 
  256.                         INNER JOIN v.abonnevilles az
  257.                         INNER JOIN az.abonne a 
  258.                         WHERE  a.id =:abonneId and az.typeAbonneVille=:typeVille'
  259.                         )                
  260.                  ->setParameters(array('abonneId'=>$abonneId'typeVille'=>$typeVille));
  261.         if(count($query->getResult()) !=)
  262.             return $query->getResult();
  263.         $query2 $this->_em->createQuery(
  264.                     'SELECT DISTINCT v.id, v.nomVille 
  265.                      FROM App\Entity\stock\Ville v INNER JOIN v.zoneproducteurs zp
  266.                      INNER JOIN zp.abonne a 
  267.                      WHERE  a.id =:abonneId'
  268.                      )                
  269.               ->setParameters(array('abonneId'=>$abonneId));        
  270.                 //var_dump($query->getSql());exit;
  271.           $tabDistinctZone =  array_merge$query->getResult(),$query2->getResult());
  272.           
  273.           return $tabDistinctZone;
  274.     }
  275.     public function getVilleUtilisateur($niveau=4,$tabVille,$type=0) {
  276.         $param = array();
  277.         $datedebarray = array();
  278.         $datefinarray = array();
  279.         $nbTotal 10000;        
  280.        
  281.         $infoVille $this->getStringSqlVille($niveau);
  282.         if($tabVille==0){$p="v".$niveau;}else{$p="p";}
  283.         //var_dump($paramdeb,$paramfin);exit;     
  284.         $sql "SELECT DISTINCT(v".$niveau.".id ) as id,  v".$niveau.".nomVille    as nom               
  285.                 FROM   App\Entity\stock\Ville ".$p;                
  286.         $sql .= $infoVille[0];
  287.          
  288.         $sql .= " WHERE  1=1 ";
  289.         /**  debut critère recherche  * */
  290.         
  291.         $i 0;
  292.         ( $type == '0' || $type == '') ? $sql .= '' $sql .= " AND ".$p.".typeVille = :type";
  293.         
  294.         if($tabVille != 0){
  295.             foreach($tabVille as $uneVille){
  296.                 if($i == 0){
  297.                     $sql .= " AND ( v".$niveau.".id = :ville".$uneVille->getVille()->getId()."";
  298.                 }else{
  299.                     $sql .= " OR v".$niveau.".id = :ville".$uneVille->getVille()->getId()."";
  300.                 }
  301.                 $i++;
  302.                 //$tabProduitUser[] = $unInfoProduit->getId();               
  303.             }
  304.            // $sql .= ")";
  305.         }
  306.         // $sql .= " GROUP BY v".$niveau.".nomVille ";
  307.         $type == '0' || $type == '') ? $sql .= '' $param['type'] = $type;
  308.         if($tabVille != 0){
  309.             foreach($tabVille as $uneVille){
  310.                 //$tabProduitUser[] = $unInfoProduit->getId();
  311.                 $param["ville".$uneVille->getVille()->getId().""] = $uneVille->getVille()->getId();
  312.             } 
  313.         }
  314.         //var_dump($sql);exit;
  315.         $query $this->_em->createQuery($sql);
  316.         $query->setParameters($param);
  317.       // var_dump($query->getSQL());exit;
  318.         return $query->getResult();
  319.     }
  320.         /**
  321.      * Retourne un fournisseur.
  322.      *
  323.      * @return type
  324.      */
  325.     public function getVilleUtilisateurAPI($abonneId=0)
  326.     {
  327.             $query1 $this->_em->createQuery(
  328.                        'SELECT  v.id as id, v.nomVille as nom, av.typeAbonneVille as typeVille
  329.                         FROM App\Entity\user\AbonneVille  av
  330.                         INNER JOIN av.ville v
  331.                         INNER JOIN av.abonne a
  332.                         WHERE  a.id =:abonneId'
  333.                             )                
  334.                  ->setParameters(["abonneId"=>$abonneId]);
  335.                  
  336.             $query2 $this->_em->createQuery(
  337.                                'SELECT DISTINCT v.id, v.nomVille as nom, 5 as typeVille
  338.                                 FROM App\Entity\stock\Ville v INNER JOIN v.zoneproducteurs zp
  339.                                 INNER JOIN zp.abonne a 
  340.                                 WHERE  a.id =:abonneId'
  341.                                 )                
  342.                          ->setParameters(array('abonneId'=>$abonneId));
  343.                //  var_dump($query->getSql());exit;
  344.           //return  $query->getResult();
  345.         return  array_merge$query1->getResult(),$query2->getResult());
  346.     }
  347.         /**
  348.      * Retourne un fournisseur.
  349.      *
  350.      * @return type
  351.      */
  352.     public function getVilleUtilisateurAPIByZone($abonneId=0,$tabVille=array(), $partenaireId=0$typeAction=0)
  353.     {
  354.             $sql =" SELECT  v.id as id, v.nomVille as nom, 0  as typeVille
  355.                     FROM App\Entity\user\AbonneVille  av
  356.                     INNER JOIN av.ville v ";
  357.                     
  358.                     if($typeAction != 0){
  359.                         $sql .= " INNER JOIN av.abonne a ";
  360.                         if($typeAction == &&  $partenaireId != 0)
  361.                             $sql .= " INNER JOIN av.partenaire pt ";
  362.                     }else{
  363.                         $sql .= " INNER JOIN av.abonne a";   
  364.                     }
  365.                     $sql .=" WHERE  1 = 1  ";  
  366.                     if($typeAction == || $typeAction == 1)
  367.                         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= '  AND a.id = :abonneId ';
  368.                     else
  369.                         ( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' $sql .= '  AND pt.id = :partenaireId ';
  370.                     
  371.                     if($typeAction == || $typeAction == 1)
  372.                         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  373.                     else
  374.                         ( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' $param['partenaireId'] = $partenaireId;
  375.                 $query1 $this->_em->createQuery($sql)    ; 
  376.                 $query1->setParameters($param);
  377.                  
  378.             $sql =" SELECT DISTINCT v.id, v.nomVille as nom, 5 as typeVille
  379.                         FROM App\Entity\stock\Ville v INNER JOIN v.zoneproducteurs zp
  380.                         INNER JOIN zp.abonne a 
  381.                         WHERE  1 = 1  ";  
  382.                         
  383.                         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id =:abonneId ';  
  384.                         
  385.                         if($tabVille !=0){    
  386.                             $i=0;
  387.                             foreach($tabVille as $uneVille){
  388.                                 if($i == 0){
  389.                                     $sql .= " AND v.id = :ville".$uneVille->getVille()->getId()."";
  390.                                     //var_dump($uneVille->getId());
  391.                                 }else{
  392.                                     $sql .= " OR v.id = :ville".$uneVille->getVille()->getId()."";
  393.                                 }
  394.                                 $i++;
  395.                                 //$tabProduitUser[] = $unInfoProduit->getId();            
  396.                             }    
  397.                                 //( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  398.                         }
  399.                         if($tabVille !=0){    
  400.                             
  401.                                foreach($tabVille as $uneVille){
  402.                                    $param["ville".$uneVille->getVille()->getId().""] = $uneVille->getVille()->getId();            
  403.                                 }
  404.                            
  405.                         }
  406.                         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  407.                         $query2 $this->_em->createQuery($sql)    ; 
  408.                         $query2->setParameters($param);
  409.         return  array_merge$query1->getResult(),$query2->getResult());
  410.     }
  411.     /**
  412.      * Retourne un fournisseur.
  413.      *
  414.      * @return type
  415.      */
  416.     public function getCooperativeApi()
  417.     {
  418.          $query $this->_em->createQuery(
  419.                        'SELECT DISTINCT v.id, v.nomVille
  420.                         FROM App\Entity\stock\Ville v'
  421.                             )    ;
  422.           return  $query->getResult();
  423.     }
  424. }