src/Repository/stock/CommandeRepository.php line 3862

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\Entity\stock\Commande;
  6. use App\ControllerModel\user\paramUtilTrait;
  7. use Doctrine\ORM\RepositoryRepository;
  8. use DateInterval;
  9. /**
  10.  * CommandeRepository
  11.  *
  12.  * This class was generated by the Doctrine ORM. Add your own custom
  13.  * repository methods below.
  14.  */
  15. class CommandeRepository extends ServiceEntityRepository
  16. {
  17.     use paramUtilTrait;
  18.     public function __construct(ManagerRegistry $registry)
  19.     {
  20.         parent::__construct($registryCommande::class);
  21.     }
  22.     
  23.     public function getInformationCommande($code) {
  24.         $qb $this->createQueryBuilder('c')
  25.                 ->where('c.codeCommande = \'' $code '\'');
  26.         return $qb->getQuery()->getResult();
  27.     }
  28.     public function getClientCommande($id) {
  29.         $query $this->_em->createQuery(
  30.                         'SELECT c,a
  31.                         FROM App\Entity\stock\Commande c INNER JOIN c.abonne a
  32.                         WHERE a.id = :id'
  33.                 )->setParameter('id'$id);
  34.         return $query->getResult();
  35.     }
  36.     public function getUtilisateurCommande($id) {
  37.         $query $this->_em->createQuery(
  38.                         'SELECT c
  39.                         FROM App\Entity\stock\Commande c INNER JOIN c.fournisseur f
  40.                         WHERE   f.id = :id  ORDER BY c.id DESC'
  41.                 )->setParameters(array('id' => $id));
  42.         return $query->getResult();
  43.     }
  44.     
  45.     public function getUtilisateurCommandeRecherche($id$datefin$datedeb) {
  46.         $param = array();
  47.         $datedebarray = array();
  48.         $datefinarray = array();
  49.         if ($datedeb == && $datefin == 0) {
  50.             $dateJour = new \DateTime();
  51.             $premierDate $this->dateDuPremierDuMois($dateJour);
  52.             $datedeb "01/01/2014";//$premierDate->format("d/m/Y");
  53.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  54.             $datefin $dateMoi->format("d/m/Y");
  55.         }
  56.         //traitement des tableaux
  57.         //heure debut
  58.         $datedebarray $this->traiterDateFormat($datedeb);
  59.         $datefinarray $this->traiterDateFormat($datefin);
  60.         $paramdeb implode("-"$datedebarray);
  61.         $paramfin implode("-"$datefinarray);
  62.         $sql "SELECT  c                     
  63.                   FROM   App\Entity\stock\Commande c
  64.                   INNER JOIN c.fournisseur f ";
  65.         
  66.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  67.         /**  debut critère recherche  * */
  68.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  69.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  70.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  71.         
  72.         ( $id == '0' || $id == '') ? $sql .= '' $sql .= ' AND f.id =:id ';
  73.         //var_dump($sql);exit;
  74.         /** Fin critère recherche * */
  75.         $sql .= ' ORDER BY c.id DESC ';       
  76.         /**  debut parametres  * */
  77.         $id == '0' || $id == '') ? $sql .= '' $param['id'] = $id;
  78.         $query $this->_em->createQuery($sql);
  79.         $query->setParameters($param);
  80.         return $query->getResult();
  81.     }    
  82.     public function getUtilisateurCommandeParEtat($id$etat 1) {
  83.         $query $this->_em->createQuery(
  84.                         'SELECT c
  85.                         FROM App\Entity\stock\Commande c INNER JOIN c.fournisseur f
  86.                         WHERE c.annule != 1 and  f.id = :id and c.etatCommande =:etatCommande ORDER BY c.id DESC'
  87.                 )->setParameters(array('id' => $id'etatCommande' => $etat));
  88.         return $query->getResult();
  89.     }
  90.     public function getLigneCommande($id) {
  91.         $query $this->_em->createQuery(
  92.                         'SELECT l,c
  93.                         FROM App\Entity\stock\LigneCommande l INNER JOIN l.commande c
  94.                         WHERE c.id = :id'
  95.                 )->setParameter('id'$id);
  96.         return $query->getResult();
  97.     }
  98.     public function getListeCommandeParType() {
  99.         $query $this->_em->createQuery(
  100.                 'SELECT c
  101.                         FROM App\Entity\stock\Commande c
  102.                         WHERE c.annule != 1  and  1=1 ORDER BY c.id DESC'
  103.         );
  104.         return $query->getResult();
  105.     }
  106.     public function getListeCommandeParTypeLimit($type$etat 1) {
  107.         $query $this->_em->createQuery(
  108.                         'SELECT c
  109.                         FROM App\Entity\stock\Commande c
  110.                         WHERE c.annule != 1 and  c.typeCommande = :typeCommande ORDER BY c.id DESC '
  111.                 )->setParameters(array('typeCommande' => $type));
  112.         return $query->getResult();
  113.     }
  114.     public function getOneCommande($id) {
  115.         $qb $this->createQueryBuilder('c')
  116.                 ->select('c')
  117.                 ->where('c.id = ' $id);
  118.         return $qb->getQuery()->getResult();
  119.     }
  120.     public function getDerniereOneCommande() {
  121.         $qb $this->createQueryBuilder('c')
  122.                 ->select('c')
  123.                 ->where('c.typeCommande =1 ')
  124.                 ->orderBy('c.id''DESC');
  125.         // ->addCriteria('LIMIT', 1);
  126.         return $qb->getQuery()->getResult();
  127.         // var_dump($qb->getQuery()->getResult());exit;
  128.     }
  129.     public function getListeCommandeByCategorie($idCommande$idCategorie) {
  130.         $sql "SELECT li                        
  131.            FROM   App\Entity\stock\LigneCommande li ";
  132.            $sql .= " INNER JOIN li.commande c ";
  133.            $sql .= " INNER JOIN li.produit p ";
  134.            $sql .= " INNER JOIN p.categorie cg ";
  135.            $sql .= " WHERE c.annule != 1 and  1=1 ";
  136.            ( $idCommande == '0' || $idCommande == '') ? $sql .= '' $sql .= ' AND c.id = :commande';
  137.            ( $idCategorie == '0' || $idCategorie == '') ? $sql .= '' $sql .= ' AND cg.id = :idCategorie';
  138.            //$sql .= ' ORDER BY i.dateLivraison DESC ';
  139.            /** Fin critère recherche * */
  140.            
  141.            /**  debut parametres  * */
  142.            $idCommande == '0' || $idCommande == '') ? $sql .= '' $param['commande'] = $idCommande;
  143.            ( $idCategorie == '0' || $idCategorie == '') ? $sql .= '' $param['idCategorie'] = $idCategorie;
  144.            $queryLivr $this->_em->createQuery($sql);
  145.            $queryLivr->setParameters($param);
  146.            return $queryLivr->getResult();
  147.    
  148. }
  149. public function getListeRechercheCommande($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod 0,$type=0,$typeLimite 0$nbParPage 20$pageActuelle 1,$abonneId=0,$retrait=0$clientId 0$siCredit=0,$surfaceId=0$action=0) {
  150.         $param = array();
  151.         $datedebarray = array();
  152.         $datefinarray = array();
  153.         $nbTotal 10000000;
  154.         /*if ($datedeb == 0 && $datefin == 0) {
  155.             $dateJour = new \DateTime();
  156.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  157.             $datedeb = $premierDate->format("d/m/Y");
  158.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  159.             $datefin = $dateMoi->format("d/m/Y");
  160.         }*/
  161.         
  162.         if ($datedeb == && $datefin == 0) {
  163.             $dateJour = new \DateTime();
  164.             $premierDate $this->dateDuPremierDuMois($dateJour);
  165.             $datedeb $premierDate->format("d/m/Y 00:00:00"); //$dateJour->format("d/m/Y 00:00:00");//
  166.             $datefin =  $premierDate->add(new DateInterval('P1M'))->format("d/m/Y 00:00:00"); //$dateJour->format("d/m/Y 23:59:59");//
  167.             //$datefin = $dateMoi->format("d/m/Y 00:00:00");
  168.         }
  169.         
  170.        
  171.         //traitement des tableaux
  172.         //heure debut
  173.         //var_dump($datedeb, $datefin);exit;
  174.         $heureDebut explode(' ',  $datedeb);
  175.         $heureFin explode(' ',  $datefin);
  176.         //var_dump($datedeb);
  177.         $datedebarray $this->traiterDateFormat($datedeb);
  178.         $datefinarray $this->traiterDateFormat($datefin);
  179.         //var_dump($silivre);exit;
  180.         //var_dump($datedebarray);exit;
  181.         //$heure= " 07:00:00";
  182.         $paramdeb implode("-"$datedebarray);
  183.         $paramfin implode("-"$datefinarray);
  184.         //var_dump($paramdeb,$paramfin);exit;     
  185.         $sql "SELECT DISTINCT c                        
  186.                 FROM  App\Entity\stock\Commande c ";
  187.                
  188.         $sql .= " INNER JOIN c.lignecommandes l ";
  189.         $sql .= " INNER JOIN l.produit p ";
  190.         if($type==0){
  191.             $sql .= " LEFT JOIN c.fournisseur f ";
  192.         }
  193.         if($type==6  || $type==){
  194.             $sql .= " LEFT JOIN c.surfaceannee s ";
  195.         }
  196.         //var_dump($type);exit;
  197.        
  198.         //$sql .= " INNER JOIN f.setrouvers s ";
  199.         $sql .= " INNER JOIN c.utilisateur u ";
  200.         $sql .= " INNER JOIN c.abonne a ";
  201.         if($clientId!=0){
  202.             $sql .= " INNER JOIN c.client cl ";
  203.         }
  204.         //$sql .= " INNER JOIN s.ville v "; 
  205.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  206.         //var_dump($sql);exit;
  207.         /**  debut critère recherche  * */
  208.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  209.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.datePublication >= " " '" $paramdeb." ".$heureDebut[1] . "' " $sql .= '';
  210.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.datePublication <= " " '" $paramfin." ".$heureFin[1] . "' " $sql .= '';
  211.        
  212.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  213.         if($type==6  || $type==){
  214.             ( $surfaceId == '0' || $surfaceId == '') ? $sql .= '' $sql .= ' AND s.id = :surfaceId';
  215.         }
  216.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  217.         $separateur ="";
  218.         if($type == 3)
  219.             $separateur "( ";
  220.          $sql .= ' AND'$separateur .' c.typeCommande = :typec ';
  221.          if($type == 3)
  222.               $sql .= ' OR c.typeCommande = :typec1 )';
  223.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  224.         
  225.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  226.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  227.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $sql .= ' AND cl.id =:clientId ';
  228.         
  229.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  230.         ( $retrait == '0' || $retrait == '') ? $sql .= '' $sql .= ' AND c.siRetrait = :retrait';
  231.         ( $siCredit == '0' || $siCredit == '') ? $sql .= '' $sql .= ' AND c.siCredit = :siCredit';
  232.         if ($silivre == '0' || $silivre == '') {
  233.             
  234.         } else {
  235.             if ($silivre == 1) {
  236.                 $sql .= ' AND l.quantiteLivre =0';
  237.             } elseif ($silivre == 2) {
  238.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  239.             } elseif ($silivre == 3) {
  240.                 $sql .= ' AND c.etatCommande =2';
  241.             } elseif ($silivre == 4) {
  242.                 $sql .= ' AND l.quantiteLivre !=0';
  243.             } else {
  244.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  245.             }
  246.         }
  247.         /** Fin critère recherche **/
  248.         $sql .= ' ORDER BY c.id DESC ';
  249. //var_dump($sql, $clientId);exit;
  250.         //var_dump($prod); var_dump($sql);exit;
  251.         //var_dump($silivre,$sql, $abonneId);exit;
  252.         /**  debut parametres  * */
  253.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  254.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  255.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  256.         if($type==6  || $type==){
  257.         ( $surfaceId == '0' || $surfaceId == '') ? $sql .= '' $param['surfaceId'] = $surfaceId ;
  258.         }
  259.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  260.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  261.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $param['clientId'] = $clientId;
  262.          $param['typec'] = $type ;
  263.          if($type == 3)
  264.             $param['typec1'] = ;
  265.          
  266.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  267.         ($retrait == '0' || $retrait == '') ? $sql .= '' $param['retrait'] = $retrait;
  268.         ($siCredit == '0' || $siCredit == '') ? $sql .= '' $param['siCredit'] = $siCredit;
  269.         $pageActuelleInt = (int) $pageActuelle;
  270.         $nbParPageInt = (int) $nbParPage;
  271.         if ($pageActuelleInt 1) {
  272.             $pageActuelleInt 1;
  273.         }
  274.         if ($nbParPageInt 1) {
  275.             $nbParPageInt 20;
  276.         }
  277.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  278.         if ($nbTotalPage 1) {
  279.             $nbTotalPage 1;
  280.         }
  281.         if ($pageActuelleInt $nbTotalPage) {
  282.             $pageActuelleInt $nbTotalPage;
  283.         }
  284.        
  285.         $query $this->_em->createQuery($sql);
  286.         $query->setParameters($param);
  287.         if ($typeLimite == 1) {
  288.             $query->setMaxResults(5);
  289.         }
  290.         //var_dump($query->getSQL());exit;
  291.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  292.         //        $query->setMaxResults($nbParPageInt);
  293.         //        $rep['nbParPage'] = $nbParPage;
  294.         //        $rep['pageActuelle'] = $pageActuelle;
  295.         //        $rep['nbTotal'] = $nbTotal;
  296.         //        $rep['nbTotalPage'] = $nbTotalPage;
  297.         //        $rep['data'] = new Paginator($query);
  298.         //        var_dump($query->getSql());exit;
  299.       
  300.         return $query->getResult();
  301.     }
  302.     public function getCountInfoCommandeByAnnee($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod 0,$type=0,$typeLimite 0$nbParPage 20$pageActuelle 1,$abonneId=0,$retrait=0$clientId 0$siCredit=0,$surfaceId=0$anneeId=0,$producteurId=0$typeCulture=0$infoAnnee =) {
  303.         $param = array();
  304.         $datedebarray = array();
  305.         $datefinarray = array();
  306.         $nbTotal 10000000;
  307.         /*if ($datedeb == 0 && $datefin == 0) {
  308.             $dateJour = new \DateTime();
  309.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  310.             $datedeb = $premierDate->format("d/m/Y");
  311.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  312.             $datefin = $dateMoi->format("d/m/Y");
  313.         }*/
  314.         if($infoAnnee == 0){
  315.             if ($datedeb == && $datefin == && $anneeId==0) {
  316.                 $dateJour = new \DateTime();
  317.                 $premierDate $this->dateDuPremierDuMois($dateJour);
  318.                 $datedeb "01/01/".$dateJour->format("Y")." 00:00:00"//$dateJour->format("d/m/Y 00:00:00");//
  319.                 $datefin "31/12/".$dateJour->format("Y")." 00:00:00"//$premierDate->add(new DateInterval('P1M'))->format("d/m/Y 00:00:00"); //$dateJour->format("d/m/Y 23:59:59");//
  320.                 //$datefin = $dateMoi->format("d/m/Y 00:00:00");
  321.             }
  322.         }else{
  323.             $datedeb '01/01/'.$infoAnnee.' 00:00:00';
  324.             $datefin '31/12/'.$infoAnnee.' 23:59:59';
  325.         }
  326.         //traitement des tableaux
  327.         
  328.         $heureDebut explode(' ',  $datedeb);
  329.         $heureFin explode(' ',  $datefin);
  330.         
  331.         $datedebarray $this->traiterDateFormat($datedeb);
  332.         $datefinarray $this->traiterDateFormat($datefin);
  333.         $paramdeb implode("-"$datedebarray);
  334.         $paramfin implode("-"$datefinarray);
  335.         //var_dump($paramdeb,$paramfin);exit;     
  336.         $sql "SELECT DISTINCT(l.id), SUM(l.quantite)  as quantite                      
  337.                 FROM  App\Entity\stock\Commande c ";
  338.                
  339.         $sql .= " INNER JOIN c.lignecommandes l ";
  340.         $sql .= " INNER JOIN l.produit p ";
  341.         if($type==0){
  342.             $sql .= " LEFT JOIN c.fournisseur f ";
  343.         }
  344.         if($type==6  || $type==){
  345.             $sql .= " LEFT JOIN c.surfaceannee s ";
  346.         }
  347.         if($producteurId !=0)
  348.             $sql .= " INNER JOIN c.producteur pr ";
  349.         if($anneeId !=){
  350.             $sql .= " INNER JOIN c.anneecampagne ac ";
  351.         }
  352.         
  353.         //var_dump($type);exit;
  354.        
  355.         //$sql .= " INNER JOIN f.setrouvers s ";
  356.         $sql .= " INNER JOIN c.utilisateur u ";
  357.         $sql .= " INNER JOIN c.abonne a ";
  358.         if($clientId!=0){
  359.             $sql .= " INNER JOIN c.client cl ";
  360.         }
  361.         //$sql .= " INNER JOIN s.ville v "; 
  362.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  363.         //var_dump($sql);exit;
  364.         /**  debut critère recherche  * */
  365.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  366.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.datePublication >= " " '" $paramdeb." ".$heureDebut[1] . "' " $sql .= '';
  367.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.datePublication <= " " '" $paramfin." ".$heureFin[1] . "' " $sql .= '';
  368.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  369.         if($type==6  || $type==){
  370.             ( $surfaceId == '0' || $surfaceId == '') ? $sql .= '' $sql .= ' AND s.id = :surfaceId';
  371.         }
  372.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  373.         ( $anneeId == '0' || $anneeId == '') ? $sql .= '' $sql .= ' AND ac.id = :anneeId';
  374.         ( $producteurId == '0' || $producteurId == '') ? $sql .= '' $sql .= ' AND pr.id = :producteurId';
  375.         $separateur ="";
  376.         if($type == 3)
  377.             $separateur "( ";
  378.          $sql .= ' AND'$separateur .' c.typeCommande = :typec ';
  379.          if($type == 3)
  380.               $sql .= ' OR c.typeCommande = :typec1 )';
  381.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  382.          ( $typeCulture == '0' || $typeCulture == '') ? $sql .= '' $sql .= ' AND p.typeQualite = :typeQualite';
  383.         
  384.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  385.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  386.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $sql .= ' AND cl.id =:clientId ';
  387.         
  388.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  389.         ( $retrait == '0' || $retrait == '') ? $sql .= '' $sql .= ' AND c.siRetrait = :retrait';
  390.         ( $siCredit == '0' || $siCredit == '') ? $sql .= '' $sql .= ' AND c.siCredit = :siCredit';
  391.         if ($silivre == '0' || $silivre == '') {
  392.             
  393.         } else {
  394.             if ($silivre == 1) {
  395.                 $sql .= ' AND l.quantiteLivre =0';
  396.             } elseif ($silivre == 2) {
  397.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  398.             } elseif ($silivre == 3) {
  399.                 $sql .= ' AND c.etatCommande =2';
  400.             } elseif ($silivre == 4) {
  401.                 $sql .= ' AND l.quantiteLivre !=0';
  402.             } else {
  403.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  404.             }
  405.         }
  406.         /** Fin critère recherche **/
  407.         $sql .= ' ORDER BY c.id DESC ';
  408. //var_dump($sql, $clientId);exit;
  409.         //var_dump($prod); var_dump($sql);exit;
  410.         //var_dump($silivre,$sql, $abonneId);exit;
  411.         /**  debut parametres  * */
  412.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  413.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  414.         ( $producteurId == '0' || $producteurId == '') ? $sql .= '' $param['producteurId'] = $producteurId;
  415.         ( $anneeId == '0' || $anneeId == '') ? $sql .= '' $param['anneeId'] = $anneeId;
  416.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  417.         if($type==6  || $type==){
  418.         ( $surfaceId == '0' || $surfaceId == '') ? $sql .= '' $param['surfaceId'] = $surfaceId ;
  419.         }
  420.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  421.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  422.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $param['clientId'] = $clientId;
  423.         ( $typeCulture == '0' || $typeCulture == '') ? $sql .= '' $param['typeCulture'] = $typeCulture;
  424.          $param['typec'] = $type ;
  425.          if($type == 3)
  426.             $param['typec1'] = ;
  427.          
  428.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  429.         ($retrait == '0' || $retrait == '') ? $sql .= '' $param['retrait'] = $retrait;
  430.         ($siCredit == '0' || $siCredit == '') ? $sql .= '' $param['siCredit'] = $siCredit;
  431.         $pageActuelleInt = (int) $pageActuelle;
  432.         $nbParPageInt = (int) $nbParPage;
  433.         if ($pageActuelleInt 1) {
  434.             $pageActuelleInt 1;
  435.         }
  436.         if ($nbParPageInt 1) {
  437.             $nbParPageInt 20;
  438.         }
  439.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  440.         if ($nbTotalPage 1) {
  441.             $nbTotalPage 1;
  442.         }
  443.         if ($pageActuelleInt $nbTotalPage) {
  444.             $pageActuelleInt $nbTotalPage;
  445.         }
  446.        
  447.         $query $this->_em->createQuery($sql);
  448.         $query->setParameters($param);
  449.         if ($typeLimite == 1) {
  450.             $query->setMaxResults(5);
  451.         }
  452.        // var_dump($query->getSQL(), $nomcol, $datefin, $datedeb, $ville, $util, $silivre, $numcom, $type, $producteurId, $typeCulture, $infoAnnee ); //exit;
  453.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  454.         //        $query->setMaxResults($nbParPageInt);
  455.         //        $rep['nbParPage'] = $nbParPage;
  456.         //        $rep['pageActuelle'] = $pageActuelle;
  457.         //        $rep['nbTotal'] = $nbTotal;
  458.         //        $rep['nbTotalPage'] = $nbTotalPage;
  459.         //        $rep['data'] = new Paginator($query);
  460.         
  461.                     //var_dump($query->getSql());exit;
  462.       
  463.         return $query->getResult();
  464.     }
  465.     
  466.     
  467.     
  468.      public function getListeRechercheCommandeAPI($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod 0,$type=0,$typeLimite 0$nbParPage 20$pageActuelle 1,$abonneId=0,$retrait=0$clientId 0$siCredit=0,$surfaceId=0) {
  469.         $param = array();
  470.         $datedebarray = array();
  471.         $datefinarray = array();
  472.         $nbTotal 10000000;
  473.         /*if ($datedeb == 0 && $datefin == 0) {
  474.             $dateJour = new \DateTime();
  475.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  476.             $datedeb = $premierDate->format("d/m/Y");
  477.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  478.             $datefin = $dateMoi->format("d/m/Y");
  479.         }*/
  480.         
  481.         if ($datedeb == && $datefin == 0) {
  482.             $dateJour = new \DateTime();
  483.             $premierDate $this->dateDuPremierDuMois($dateJour);
  484.             $datedeb $dateJour->format("d/m/Y 00:00:00");//$premierDate->format("d/m/Y 00:00:00");
  485.             $datefin =  $dateJour->format("d/m/Y 23:59:59");//$premierDate->add(new DateInterval('P1M'));
  486.             //$datefin = $dateMoi->format("d/m/Y 00:00:00");
  487.         }
  488.         
  489.        
  490.         //traitement des tableaux
  491.         //heure debut
  492.         //var_dump($datedeb, $datefin);exit;
  493.         $heureDebut explode(' ',  $datedeb);
  494.         $heureFin explode(' ',  $datefin);
  495.         //var_dump($datedeb);
  496.         $datedebarray $this->traiterDateFormat($datedeb);
  497.         $datefinarray $this->traiterDateFormat($datefin);
  498.         //var_dump($silivre);exit;
  499.         //var_dump($datedebarray);exit;
  500.         //$heure= " 07:00:00";
  501.         $paramdeb implode("-"$datedebarray);
  502.         $paramfin implode("-"$datefinarray);
  503.         //var_dump($paramdeb,$paramfin);exit;     
  504.         $sql "SELECT DISTINCT c.id, c.codeCommande,  c.datePublication, c.montantCommande                       
  505.                 FROM  App\Entity\stock\Commande c ";
  506.                
  507.         //$sql .= " INNER JOIN c.lignecommandes l ";
  508.         //$sql .= " INNER JOIN l.produit p ";
  509.         // $sql .= " INNER JOIN l.prixrigueur pr ";
  510.         if($type==0){
  511.             $sql .= " LEFT JOIN c.fournisseur f ";
  512.         }
  513.         if($type==6){
  514.             $sql .= " LEFT JOIN c.surfaceannee s ";
  515.         }
  516.         //var_dump($type);exit;
  517.        
  518.         //$sql .= " INNER JOIN f.setrouvers s ";
  519.         $sql .= " INNER JOIN c.utilisateur u ";
  520.         $sql .= " INNER JOIN c.abonne a ";
  521.         if($clientId!=0){
  522.             $sql .= " INNER JOIN c.client cl ";
  523.         }
  524.         //$sql .= " INNER JOIN s.ville v "; 
  525.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  526.     //var_dump($sql);exit;
  527.         /**  debut critère recherche  * */
  528.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  529.        // ( $datedeb != 0 && $datedeb != "" ) ? $sql .= " AND  c.datePublication >= " . " '" . $paramdeb." ".$heureDebut[1] . "' " : $sql .= '';
  530.         //( $datefin != 0 && $datefin != "" ) ? $sql .= " AND  c.datePublication <= " . " '" . $paramfin." ".$heureFin[1] . "' " : $sql .= '';
  531.        
  532.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  533.         if($type==6){
  534.             ( $surfaceId == '0' || $surfaceId == '') ? $sql .= '' $sql .= ' AND s.id = :surfaceId';
  535.         }
  536.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  537.         $separateur ="";
  538.         if($type == 3)
  539.             $separateur "( ";
  540.          $sql .= ' AND'$separateur .' c.typeCommande = :typec ';
  541.          if($type == 3)
  542.               $sql .= ' OR c.typeCommande = :typec1 )';
  543.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  544.         
  545.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  546.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  547.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $sql .= ' AND cl.id =:clientId ';
  548.         
  549.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  550.         ( $retrait == '0' || $retrait == '') ? $sql .= '' $sql .= ' AND c.siRetrait = :retrait';
  551.         ( $siCredit == '0' || $siCredit == '') ? $sql .= '' $sql .= ' AND c.siCredit = :siCredit';
  552.         if ($silivre == '0' || $silivre == '') {
  553.             
  554.         } else {
  555.             if ($silivre == 1) {
  556.                 $sql .= ' AND l.quantiteLivre =0';
  557.             } elseif ($silivre == 2) {
  558.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  559.             } elseif ($silivre == 3) {
  560.                 $sql .= ' AND c.etatCommande =2';
  561.             } elseif ($silivre == 4) {
  562.                 $sql .= ' AND l.quantiteLivre !=0';
  563.             } else {
  564.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  565.             }
  566.         }
  567.         /** Fin critère recherche **/
  568.         $sql .= ' ORDER BY c.id DESC ';
  569. //var_dump($sql, $clientId, $type, $abonneId);exit;
  570.         //var_dump($prod); var_dump($sql);exit;
  571.         //var_dump($silivre,$sql, $abonneId);exit;
  572.         /**  debut parametres  * */
  573.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  574.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  575.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  576.         if($type==6){
  577.         ( $surfaceId == '0' || $surfaceId == '') ? $sql .= '' $param['surfaceId'] = $surfaceId ;
  578.         }
  579.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  580.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  581.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $param['clientId'] = $clientId;
  582.          $param['typec'] = $type ;
  583.          if($type == 3)
  584.             $param['typec1'] = ;
  585.          
  586.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  587.         ($retrait == '0' || $retrait == '') ? $sql .= '' $param['retrait'] = $retrait;
  588.         ($siCredit == '0' || $siCredit == '') ? $sql .= '' $param['siCredit'] = $siCredit;
  589.         $pageActuelleInt = (int) $pageActuelle;
  590.         $nbParPageInt = (int) $nbParPage;
  591.         if ($pageActuelleInt 1) {
  592.             $pageActuelleInt 1;
  593.         }
  594.         if ($nbParPageInt 1) {
  595.             $nbParPageInt 20;
  596.         }
  597.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  598.         if ($nbTotalPage 1) {
  599.             $nbTotalPage 1;
  600.         }
  601.         if ($pageActuelleInt $nbTotalPage) {
  602.             $pageActuelleInt $nbTotalPage;
  603.         }
  604.        
  605.         $query $this->_em->createQuery($sql);
  606.         $query->setParameters($param);
  607.         if ($typeLimite == 1) {
  608.             $query->setMaxResults(5);
  609.         }
  610.     //var_dump($query->getSQL());exit;
  611.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  612.         //        $query->setMaxResults($nbParPageInt);
  613.         //        $rep['nbParPage'] = $nbParPage;
  614.         //        $rep['pageActuelle'] = $pageActuelle;
  615.         //        $rep['nbTotal'] = $nbTotal;
  616.         //        $rep['nbTotalPage'] = $nbTotalPage;
  617.         //        $rep['data'] = new Paginator($query);
  618.         
  619.         //            var_dump(count($query->getResult()));exit;
  620.       
  621.         return $query->getResult();
  622.     }
  623. public function getListeRechercheLigneCommandeAPI($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod 0,$type=0,$typeLimite 0$nbParPage 20$pageActuelle 1,$abonneId=0,$retrait=0$clientId 0$siCredit=0,$surfaceId=0) {
  624.         $param = array();
  625.         $datedebarray = array();
  626.         $datefinarray = array();
  627.         $nbTotal 10000000;
  628.         /*if ($datedeb == 0 && $datefin == 0) {
  629.             $dateJour = new \DateTime();
  630.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  631.             $datedeb = $premierDate->format("d/m/Y");
  632.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  633.             $datefin = $dateMoi->format("d/m/Y");
  634.         }*/
  635.         
  636.         if ($datedeb == && $datefin == 0) {
  637.             $dateJour = new \DateTime();
  638.             $premierDate $this->dateDuPremierDuMois($dateJour);
  639.             $datedeb $dateJour->format("d/m/Y 00:00:00");//$premierDate->format("d/m/Y 00:00:00");
  640.             $datefin =  $dateJour->format("d/m/Y 23:59:59");//$premierDate->add(new DateInterval('P1M'));
  641.             //$datefin = $dateMoi->format("d/m/Y 00:00:00");
  642.         }
  643.         
  644.        
  645.         //traitement des tableaux
  646.         //heure debut
  647.         //var_dump($datedeb, $datefin);exit;
  648.         $heureDebut explode(' ',  $datedeb);
  649.         $heureFin explode(' ',  $datefin);
  650.         //var_dump($datedeb);
  651.         $datedebarray $this->traiterDateFormat($datedeb);
  652.         $datefinarray $this->traiterDateFormat($datefin);
  653.         //var_dump($silivre);exit;
  654.         //var_dump($datedebarray);exit;
  655.         //$heure= " 07:00:00";
  656.         $paramdeb implode("-"$datedebarray);
  657.         $paramfin implode("-"$datefinarray);
  658.         //var_dump($paramdeb,$paramfin);exit;     
  659.         $sql "SELECT DISTINCT c.id, c.codeCommande, p.nomProduit, l.quantite, c.datePublication, pr.infoPrixRigueur as prix                        
  660.                 FROM  App\Entity\stock\Commande c ";
  661.                
  662.         $sql .= " INNER JOIN c.lignecommandes l ";
  663.         $sql .= " INNER JOIN l.produit p ";
  664.          $sql .= " INNER JOIN l.prixrigueur pr ";
  665.         if($type==0){
  666.             $sql .= " LEFT JOIN c.fournisseur f ";
  667.         }
  668.         if($type==6){
  669.             $sql .= " LEFT JOIN c.surfaceannee s ";
  670.         }
  671.         //var_dump($type);exit;
  672.        
  673.         //$sql .= " INNER JOIN f.setrouvers s ";
  674.         $sql .= " INNER JOIN c.utilisateur u ";
  675.         $sql .= " INNER JOIN c.abonne a ";
  676.         if($clientId!=0){
  677.             $sql .= " INNER JOIN c.client cl ";
  678.         }
  679.         //$sql .= " INNER JOIN s.ville v "; 
  680.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  681.     //var_dump($sql);exit;
  682.         /**  debut critère recherche  * */
  683.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  684.        // ( $datedeb != 0 && $datedeb != "" ) ? $sql .= " AND  c.datePublication >= " . " '" . $paramdeb." ".$heureDebut[1] . "' " : $sql .= '';
  685.         //( $datefin != 0 && $datefin != "" ) ? $sql .= " AND  c.datePublication <= " . " '" . $paramfin." ".$heureFin[1] . "' " : $sql .= '';
  686.        
  687.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  688.         if($type==6){
  689.             ( $surfaceId == '0' || $surfaceId == '') ? $sql .= '' $sql .= ' AND s.id = :surfaceId';
  690.         }
  691.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  692.         $separateur ="";
  693.         if($type == 3)
  694.             $separateur "( ";
  695.          $sql .= ' AND'$separateur .' c.typeCommande = :typec ';
  696.          if($type == 3)
  697.               $sql .= ' OR c.typeCommande = :typec1 )';
  698.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  699.         
  700.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  701.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  702.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $sql .= ' AND cl.id =:clientId ';
  703.         
  704.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  705.         ( $retrait == '0' || $retrait == '') ? $sql .= '' $sql .= ' AND c.siRetrait = :retrait';
  706.         ( $siCredit == '0' || $siCredit == '') ? $sql .= '' $sql .= ' AND c.siCredit = :siCredit';
  707.         if ($silivre == '0' || $silivre == '') {
  708.             
  709.         } else {
  710.             if ($silivre == 1) {
  711.                 $sql .= ' AND l.quantiteLivre =0';
  712.             } elseif ($silivre == 2) {
  713.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  714.             } elseif ($silivre == 3) {
  715.                 $sql .= ' AND c.etatCommande =2';
  716.             } elseif ($silivre == 4) {
  717.                 $sql .= ' AND l.quantiteLivre !=0';
  718.             } else {
  719.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  720.             }
  721.         }
  722.         /** Fin critère recherche **/
  723.         $sql .= ' ORDER BY c.id DESC ';
  724. //var_dump($sql, $clientId, $type, $abonneId);exit;
  725.         //var_dump($prod); var_dump($sql);exit;
  726.         //var_dump($silivre,$sql, $abonneId);exit;
  727.         /**  debut parametres  * */
  728.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  729.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  730.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  731.         if($type==6){
  732.         ( $surfaceId == '0' || $surfaceId == '') ? $sql .= '' $param['surfaceId'] = $surfaceId ;
  733.         }
  734.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  735.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  736.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $param['clientId'] = $clientId;
  737.          $param['typec'] = $type ;
  738.          if($type == 3)
  739.             $param['typec1'] = ;
  740.          
  741.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  742.         ($retrait == '0' || $retrait == '') ? $sql .= '' $param['retrait'] = $retrait;
  743.         ($siCredit == '0' || $siCredit == '') ? $sql .= '' $param['siCredit'] = $siCredit;
  744.         $pageActuelleInt = (int) $pageActuelle;
  745.         $nbParPageInt = (int) $nbParPage;
  746.         if ($pageActuelleInt 1) {
  747.             $pageActuelleInt 1;
  748.         }
  749.         if ($nbParPageInt 1) {
  750.             $nbParPageInt 20;
  751.         }
  752.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  753.         if ($nbTotalPage 1) {
  754.             $nbTotalPage 1;
  755.         }
  756.         if ($pageActuelleInt $nbTotalPage) {
  757.             $pageActuelleInt $nbTotalPage;
  758.         }
  759.        
  760.         $query $this->_em->createQuery($sql);
  761.         $query->setParameters($param);
  762.         if ($typeLimite == 1) {
  763.             $query->setMaxResults(5);
  764.         }
  765.     //var_dump($query->getSQL());exit;
  766.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  767.         //        $query->setMaxResults($nbParPageInt);
  768.         //        $rep['nbParPage'] = $nbParPage;
  769.         //        $rep['pageActuelle'] = $pageActuelle;
  770.         //        $rep['nbTotal'] = $nbTotal;
  771.         //        $rep['nbTotalPage'] = $nbTotalPage;
  772.         //        $rep['data'] = new Paginator($query);
  773.         
  774.         //            var_dump(count($query->getResult()));exit;
  775.       
  776.         return $query->getResult();
  777.     }
  778.     public function getListeRechercheCommandeTableAjax($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod 0,$type=0,$typeLimite 0$nbParPage 20$pageActuelle 1,$abonneId=0,$retrait=0$clientId 0$siCredit=0) {
  779.         $param = array();
  780.         $datedebarray = array();
  781.         $datefinarray = array();
  782.         $nbTotal 10000000;
  783.         
  784.         if ($datedeb == && $datefin == 0) {
  785.             $dateJour = new \DateTime();
  786.             $premierDate $this->dateDuPremierDuMois($dateJour);
  787.             $datedeb $premierDate->format("d/m/Y");
  788.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  789.             $datefin $dateMoi->format("d/m/Y");
  790.         }
  791.         
  792.         //traitement des tableaux
  793.         //var_dump($util);exit;
  794.         //heure debut
  795.         $datedebarray $this->traiterDateFormat($datedeb);
  796.         
  797.         $datefinarray $this->traiterDateFormat($datefin);
  798.         //var_dump($datedeb, $datefin);exit;
  799.         $paramdeb implode("-"$datedebarray);
  800.         $paramfin implode("-"$datefinarray);
  801.         //var_dump($paramdeb,$paramfin);exit;     
  802.         $sql "SELECT DISTINCT c.codeCommande,c.id, c.datePublication, u.nom ,  c.montantCommande, tn.nomTable                    
  803.                 FROM  App\Entity\stock\Commande c ";
  804.                
  805.        // $sql .= " INNER JOIN c.lignecommandes l ";
  806.         //$sql .= " INNER JOIN l.produit p ";
  807.         if($type==0){
  808.             $sql .= " INNER JOIN l.fournisseur f ";
  809.         }
  810.        
  811.         //$sql .= " INNER JOIN f.setrouvers s ";
  812.         $sql .= " INNER JOIN c.utilisateur u ";
  813.         $sql .= " INNER JOIN c.abonne a ";
  814.         $sql .= " INNER JOIN c.tableMange tn ";
  815.         if($clientId!=0){
  816.             $sql .= " INNER JOIN c.client cl ";
  817.             $sql .= " INNER JOIN cl.utilisateur ut ";
  818.         }
  819.         //$sql .= " INNER JOIN s.ville v "; 
  820.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  821.         /**  debut critère recherche  * */
  822.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  823.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  824.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  825.         
  826.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  827.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  828.          $sql .= ' AND c.typeCommande = :typec';
  829.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  830.         
  831.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  832.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  833.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $sql .= ' AND cl.id =:clientId ';
  834.         
  835.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  836.         ( $retrait == '0' || $retrait == '') ? $sql .= '' $sql .= ' AND c.siRetrait = :retrait';
  837.         $sql .= ' AND c.siCredit = :siCredit';
  838.         if ($silivre == '0' || $silivre == '') {
  839.             
  840.         } else {
  841.             if ($silivre == 1) {
  842.                 $sql .= ' AND l.quantiteLivre =0';
  843.             } elseif ($silivre == 2) {
  844.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  845.             } elseif ($silivre == 3) {
  846.                 $sql .= ' AND c.etatCommande =2';
  847.             } elseif ($silivre == 4) {
  848.                 $sql .= ' AND l.quantiteLivre !=0';
  849.             } else {
  850.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  851.             }
  852.         }
  853.         /** Fin critère recherche **/
  854.         $sql .= ' ORDER BY c.id DESC ';
  855.         //var_dump($prod); var_dump($sql);exit;
  856.         
  857.         /**  debut parametres  * */
  858.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  859.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  860.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  861.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  862.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  863.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $param['clientId'] = $clientId;
  864.          $param['typec'] = $type ;
  865.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  866.         ($retrait == '0' || $retrait == '') ? $sql .= '' $param['retrait'] = $retrait;
  867.          $param['siCredit'] = $siCredit;
  868.         $pageActuelleInt = (int) $pageActuelle;
  869.         $nbParPageInt = (int) $nbParPage;
  870.         if ($pageActuelleInt 1) {
  871.             $pageActuelleInt 1;
  872.         }
  873.         if ($nbParPageInt 1) {
  874.             $nbParPageInt 20;
  875.         }
  876.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  877.         if ($nbTotalPage 1) {
  878.             $nbTotalPage 1;
  879.         }
  880.         if ($pageActuelleInt $nbTotalPage) {
  881.             $pageActuelleInt $nbTotalPage;
  882.         }
  883.        
  884.         $query $this->_em->createQuery($sql);
  885.         $query->setParameters($param);
  886.         if ($typeLimite == 1) {
  887.             $query->setMaxResults(5);
  888.         }
  889.       
  890.         //var_dump($query->getSql());exit;
  891.         return $query->getResult();
  892.     }
  893.     public function getListeRechercheCommandeAjax($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod 0,$type=0,$typeLimite 0$nbParPage 20$pageActuelle 1,$abonneId=0,$retrait=0$clientId 0$siCredit=0) {
  894.         $param = array();
  895.         $datedebarray = array();
  896.         $datefinarray = array();
  897.         $nbTotal 10000000;
  898.         
  899.         if ($datedeb == && $datefin == 0) {
  900.             $dateJour = new \DateTime();
  901.             $premierDate $this->dateDuPremierDuMois($dateJour);
  902.             $datedeb $premierDate->format("d/m/Y");
  903.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  904.             $datefin $dateMoi->format("d/m/Y");
  905.         }
  906.         
  907.         //traitement des tableaux
  908.         //var_dump($util);exit;
  909.         //heure debut
  910.         $datedebarray $this->traiterDateFormat($datedeb);
  911.         
  912.         $datefinarray $this->traiterDateFormat($datefin);
  913.         //var_dump($datedeb, $datefin);exit;
  914.         $paramdeb implode("-"$datedebarray);
  915.         $paramfin implode("-"$datefinarray);
  916.         //var_dump($paramdeb,$paramfin);exit;     
  917.         $sql "SELECT DISTINCT c.codeCommande,c.id, c.datePublication, u.nom ,  c.montantCommande, t.nomTable , ut.nom as nomClient                    
  918.                 FROM  App\Entity\stock\Commande c ";
  919.                
  920.        // $sql .= " INNER JOIN c.lignecommandes l ";
  921.         //$sql .= " INNER JOIN l.produit p ";
  922.         if($type==0){
  923.             $sql .= " INNER JOIN l.fournisseur f ";
  924.         }
  925.        
  926.         $sql .= " lEFT JOIN c.tableMange t ";
  927.         $sql .= " INNER JOIN c.utilisateur u ";
  928.         $sql .= " INNER JOIN c.abonne a ";
  929.         //if($clientId!=0){
  930.             $sql .= " lEFT JOIN c.client cl ";
  931.             $sql .= " lEFT JOIN cl.utilisateur ut ";
  932.         //}
  933.         //$sql .= " INNER JOIN s.ville v "; 
  934.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  935.         /**  debut critère recherche  * */
  936.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  937.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  938.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  939.         
  940.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  941.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  942.         $separateur ="";
  943.         if($type == 3)
  944.             $separateur "(";
  945.          $sql .= ' AND '.$separateur .'c.typeCommande = :typec';
  946.          if($type == 3)
  947.               $sql .= ' OR c.typeCommande = :typec1)';
  948.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  949.         
  950.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  951.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  952.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $sql .= ' AND cl.id =:clientId ';
  953.         
  954.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  955.         ( $retrait == '0' || $retrait == '') ? $sql .= '' $sql .= ' AND c.siRetrait = :retrait';
  956.         $sql .= ' AND c.siCredit = :siCredit';
  957.         if ($silivre == '0' || $silivre == '') {
  958.             
  959.         } else {
  960.             if ($silivre == 1) {
  961.                 $sql .= ' AND l.quantiteLivre =0';
  962.             } elseif ($silivre == 2) {
  963.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  964.             } elseif ($silivre == 3) {
  965.                 $sql .= ' AND c.etatCommande =2';
  966.             } elseif ($silivre == 4) {
  967.                 $sql .= ' AND l.quantiteLivre !=0';
  968.             } else {
  969.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  970.             }
  971.         }
  972.        
  973.         //var_dump($prod); var_dump($sql);exit;
  974.         
  975.         /**  debut parametres  * */
  976.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  977.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  978.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  979.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  980.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  981.         ( $clientId == '0' || $clientId == '') ? $sql .= '' $param['clientId'] = $clientId;
  982.          $param['typec'] = $type ;
  983.          if($type == 3)
  984.             $param['typec1'] = ;
  985.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  986.         ($retrait == '0' || $retrait == '') ? $sql .= '' $param['retrait'] = $retrait;
  987.          $param['siCredit'] = $siCredit;
  988.          /** Fin critère recherche **/
  989.          $sql .= ' ORDER BY c.id DESC ';
  990.         $pageActuelleInt = (int) $pageActuelle;
  991.         $nbParPageInt = (int) $nbParPage;
  992.         if ($pageActuelleInt 1) {
  993.             $pageActuelleInt 1;
  994.         }
  995.         if ($nbParPageInt 1) {
  996.             $nbParPageInt 20;
  997.         }
  998.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  999.         if ($nbTotalPage 1) {
  1000.             $nbTotalPage 1;
  1001.         }
  1002.         if ($pageActuelleInt $nbTotalPage) {
  1003.             $pageActuelleInt $nbTotalPage;
  1004.         }
  1005.        
  1006.         $query $this->_em->createQuery($sql);
  1007.         $query->setParameters($param);
  1008.         if ($typeLimite == 1) {
  1009.             $query->setMaxResults(5);
  1010.         }
  1011.       
  1012.        //var_dump($sql);exit;
  1013.         return $query->getResult();
  1014.     }
  1015.     
  1016.     
  1017.     public function getListeLivraisonCommande($idCommande) {
  1018.              $sql "SELECT l                        
  1019.                 FROM   App\Entity\stock\Livrer l ";
  1020.                 
  1021.                 $sql .= " INNER JOIN l.infolivrer i ";
  1022.                 $sql .= " INNER JOIN l.lignecommande li ";
  1023.                 $sql .= " INNER JOIN li.commande c ";
  1024.                 $sql .= " INNER JOIN i.fournisseur f ";
  1025.                 $sql .= " WHERE c.annule != 1 and  1=1 ";
  1026.                 ( $idCommande == '0' || $idCommande == '') ? $sql .= '' $sql .= ' AND c.id = :commande';
  1027.                 $sql .= ' ORDER BY i.dateLivraison DESC ';
  1028.                 /** Fin critère recherche * */
  1029.                 // var_dump($sql);exit;
  1030.                 // var_dump($silivre,$sql);exit;
  1031.                 /**  debut parametres  * */
  1032.                 $idCommande == '0' || $idCommande == '') ? $sql .= '' $param['commande'] = $idCommande;
  1033.                 $queryLivr $this->_em->createQuery($sql);
  1034.                 $queryLivr->setParameters($param);
  1035.                 return $queryLivr->getResult();
  1036.         
  1037.     }
  1038.     public function getListeRechercheInfoTotalCommande($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod 0$typeLimite 0$nbParPage 20$pageActuelle 1) {
  1039.         $param = array();
  1040.         $param2 = array();
  1041.         $tabDeDonnees = array();
  1042.         $datedebarray = array();
  1043.         $datefinarray = array();
  1044.         $nbTotal 10000;
  1045.         //var_dump($datedeb, $datefin);exit;
  1046.         if ($datedeb == && $datefin == 0) {
  1047.             $dateJour = new \DateTime();
  1048.             $premierDate $this->dateDuPremierDuMois($dateJour);
  1049.             $datedeb $premierDate->format("d/m/Y");
  1050.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  1051.             $datefin $dateMoi->format("d/m/Y");
  1052.         }
  1053.       
  1054.         //traitement des tableaux
  1055.         //var_dump($util);exit;
  1056.         //heure debut
  1057.         $datedebarray $this->traiterDateFormat($datedeb);
  1058.         $datefinarray $this->traiterDateFormat($datefin);
  1059.         $paramdeb implode("-"$datedebarray);
  1060.         $paramfin implode("-"$datefinarray);
  1061.         //var_dump($paramdeb,$paramfin);exit;      
  1062.         $sql "SELECT DISTINCT c                        
  1063.                 FROM   App\Entity\stock\Commande c ";
  1064.         $sql .= " INNER JOIN c.lignecommandes l ";
  1065.         $sql .= " INNER JOIN l.produit p ";
  1066.         
  1067.         $sql .= " INNER JOIN l.fournisseur f ";
  1068.         $sql .= " INNER JOIN f.setrouvers s ";
  1069.         $sql .= " INNER JOIN s.utilisateur u ";
  1070.         $sql .= " INNER JOIN s.ville v ";
  1071.         $sql .= " WHERE c.annule != 1 and  1=1 ";
  1072.         
  1073.         /**  debut critère recherche  * */
  1074.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  1075.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  1076.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  1077.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  1078.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  1079.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  1080.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  1081.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  1082.         
  1083.         
  1084.         if ($silivre == '0' || $silivre == '') {
  1085.             
  1086.         } else {
  1087.             if ($silivre == 1) {
  1088.                 $sql .= ' AND l.quantiteLivre =0';
  1089.             } elseif ($silivre == 2) {
  1090.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  1091.             } elseif ($silivre == 3) {
  1092.                 $sql .= ' AND c.etatCommande =2';
  1093.             } elseif ($silivre == 4) {
  1094.                 $sql .= ' AND l.quantiteLivre !=0';
  1095.             } else {
  1096.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  1097.             }
  1098.         }
  1099.         /** Fin critère recherche * */
  1100.         $sql .= ' ORDER BY c.dateCommande ASC ';
  1101.         
  1102.         
  1103.         /**  debut parametres  * */
  1104.         //var_dump($sql);
  1105.         
  1106.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  1107.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  1108.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  1109.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  1110.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  1111.          
  1112.         $query $this->_em->createQuery($sql);
  1113.         $query->setParameters($param);
  1114.         $siFin 0;
  1115.         
  1116.         
  1117.         $listeCommande $query->getResult();
  1118.         //var_dump($query->getSQL());exit;
  1119.         $i 0;
  1120.         $k 0;
  1121.         $n 0;
  1122.         foreach ($listeCommande as $uneCommande) {
  1123.            
  1124.             $tabDeDonnees[$i]['code'] = $uneCommande->getCodeCommande();
  1125.             $tabDeDonnees[$i]['codeCommandeLivraison'] =" ";
  1126.             $tabDeDonnees[$i]['date'] = $uneCommande->getDateCommande();
  1127.             $tabDeDonnees[$i]['zone'] = $uneCommande->getFournisseur()->getVille()->getNomVille();
  1128.             $tabDeDonnees[$i]['collecteur'] = $uneCommande->getFournisseur()->getNomFournisseur();
  1129.             $tabDeDonnees[$i]['typeOperation'] = 1;
  1130.             $tabDeDonnees[$i]['quantite'] = $uneCommande->getLigneCommandes()[0]->getQuantite();
  1131.             $tabDeDonnees[$i]['prixUnitaire'] = $uneCommande->getLigneCommandes()[0]->getPrixrigueur()->getInfoPrixRigueur();
  1132.             $j $k 1;
  1133.             $nombreTotal count($listeCommande);
  1134.             if ($j == $nombreTotal) {
  1135.                 --$j;
  1136.                 $siFin 1;
  1137.                 
  1138.             }
  1139.             if ($listeCommande[$j]->getDateCommande()->format("Y-m-d") != $listeCommande[$k]->getDateCommande()->format("Y-m-d") || $siFin == 1) {
  1140.                 ++$n;
  1141. //                $sql = "SELECT l                        
  1142. //                FROM   App\Entity\stock\Livrer l ";
  1143. //                
  1144. //                $sql .= " INNER JOIN l.infolivrer i ";
  1145. //                $sql .= " INNER JOIN i.fournisseur f ";
  1146. //
  1147. //                $sql .= " WHERE  1=1 ";
  1148.                 $sql "SELECT i                        
  1149.                 FROM   App\Entity\stock\InfoLivrer  i ";
  1150.                 
  1151.                 $sql .= " INNER JOIN i.fournisseur f ";
  1152.                 $sql .= " INNER JOIN i.livrers l ";
  1153.                 $sql .= " INNER JOIN l.lignecommande lc ";
  1154.                 $sql .= " INNER JOIN lc.produit p ";
  1155.                 $sql .= " WHERE  1=1 ";
  1156. //            if($n==3){
  1157. //                    var_dump($listeCommande[$j]->getDateCommande()->format("Y-m-d"),$listeCommande[$k]->getDateCommande()->format("Y-m-d") );exit;
  1158. //            }
  1159.                 /**  debut critère recherche  * */
  1160.                 // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  1161.                 if($siFin == 0){
  1162.                     ( $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $listeCommande[$k]->getDateCommande()->format("Y-m-d") . "' " $sql .= '';
  1163.                     ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison < " " '" $listeCommande[$j]->getDateCommande()->format("Y-m-d") . "' " $sql .= '';
  1164.                     
  1165.                 }else{
  1166.                     //var_dump($siFin);exit;
  1167.                     $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $listeCommande[$j]->getDateCommande()->format("Y-m-d") . "' " $sql .= '';
  1168.                 
  1169.                     
  1170.                 } 
  1171.                 
  1172.                 ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  1173.                 ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  1174.                 $sql .= ' ORDER BY i.dateLivraison ASC ';
  1175.                 /** Fin critère recherche * */
  1176.                 //var_dump($sql);exit;
  1177.                 // var_dump($silivre,$sql);exit;
  1178.                 /**  debut parametres  * */
  1179.                 $nomcol == '0' || $nomcol == '') ? $sql .= '' $param2['nomcol'] = $nomcol;
  1180.                 ( $prod == '0' || $prod == '') ? $sql .= '' $param2['prod'] = $prod;
  1181.                
  1182.                 $queryLivr $this->_em->createQuery($sql);
  1183.                 $queryLivr->setParameters($param2);
  1184.                 $listeLivraison $queryLivr->getResult();
  1185.                 foreach ($listeLivraison as $uneLivraison) {
  1186.                     ++$i;
  1187.                     $tabDeDonnees[$i]['code'] = $uneLivraison->getRefBonLivraison();
  1188.                     $tabDeDonnees[$i]['codeCommandeLivraison'] = "";//$uneLivraison->getLignecommande()->getCommande()->getCodeCommande();
  1189.                     $tabDeDonnees[$i]['date'] = $uneLivraison->getDateLivraison();
  1190.                     $tabDeDonnees[$i]['zone'] = $uneLivraison->getFournisseur()->getVille()->getNomVille();
  1191.                     $tabDeDonnees[$i]['collecteur'] = $uneLivraison->getFournisseur()->getNomFournisseur();
  1192.                     $tabDeDonnees[$i]['typeOperation'] = 2;
  1193.                     $tabDeDonnees[$i]['quantite'] = $uneLivraison->getNbreTotalLivre();
  1194.                     $tabDeDonnees[$i]['prixUnitaire'] = " ";//$uneLivraison->getLignecommande()->getPrixrigueur()->getInfoPrixRigueur();
  1195.                 }
  1196.             }
  1197.         //    var_dump($sql);exit;
  1198.             ++$i;
  1199.             ++$k;
  1200.             //var_dump($tabDeDonnees);exit;
  1201.         }
  1202.         return $tabDeDonnees;
  1203.         
  1204.         
  1205.     }
  1206.     public function getStatsRechercheCommande($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod '0'$type=0$nbParPage 20$pageActuelle 1$niveau 4$abonneId=0$caisseId=) {
  1207.        // var_dump()
  1208.         $param = array();
  1209.         $datedebarray = array();
  1210.         $datefinarray = array();
  1211.         $nbTotal 10000;
  1212.         $infoVille $this->getStringSqlVille($niveau);
  1213.         //
  1214.         /*if ($datedeb == 0 && $datefin == 0) {
  1215.             $dateJour = new \DateTime();
  1216.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  1217.             $datedeb = $premierDate->format("d/m/Y");
  1218.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  1219.             $datefin = $dateMoi->format("d/m/Y");
  1220.         }*/
  1221.         
  1222.       
  1223.     if ($datedeb == && $datefin == 0) {
  1224.         $dateJour = new \DateTime();
  1225.         $premierDate $this->dateDuPremierDuMois($dateJour);
  1226.         $datedeb $dateJour->format("31/12/1990 00:00:00");//$premierDate->format("d/m/Y 00:00:00");
  1227.         $datefin =  $dateJour->format("d/m/Y 23:59:59");//$premierDate->add(new DateInterval('P1M'));
  1228.         //$datefin = $dateMoi->format("d/m/Y 00:00:00");
  1229.     }
  1230.        
  1231.        
  1232.         //var_dump($datedeb, $datefin);exit;
  1233.         //traitement des tableaux
  1234.         //heure debut
  1235.         $heureDebut explode(' ',  $datedeb);
  1236.         $heureFin explode(' ',  $datefin);
  1237.         //var_dump($heureDebut, $heureFin);exit;
  1238.         $datedebarray $this->traiterDateFormat($datedeb);
  1239.         $datefinarray $this->traiterDateFormat($datefin);
  1240.         $paramdeb implode("-"$datedebarray);
  1241.         $paramfin implode("-"$datefinarray);
  1242.         $sql "SELECT  sum(l.quantite)  as quantiteTotal,   sum(l.quantiteLivre)  as quantiteTotalLivre,  sum(c.montantCommande)  as montantTotal, sum(l.quantiteLivre*pri.infoPrixRigueur)   as montantTotalLivre  , sum(l.quantite*pri.infoPrixRigueur)   as montantSemence                       
  1243.                   FROM   App\Entity\stock\Commande c ";
  1244.         $sql .= " INNER JOIN c.lignecommandes l ";
  1245.         $sql .= " INNER JOIN l.prixrigueur pri ";
  1246.         if($nomcol!=0){
  1247.             $sql .= " INNER JOIN c.fournisseur f ";
  1248.         }
  1249.         if($caisseId !=0)
  1250.             $sql .= " INNER JOIN c.caisse cs ";
  1251.         
  1252.         $sql .= " INNER JOIN l.produit pr ";
  1253.         $sql .= " INNER JOIN c.abonne a ";
  1254.         
  1255.         /*if($prod != 1){
  1256.             $sql .= " INNER JOIN l.producteur p ";
  1257.             $sql .= $infoVille[0];
  1258.         }else{
  1259.             $sql .= " INNER JOIN f.setrouvers s ";
  1260.             $sql .= " INNER JOIN s.ville v ";    
  1261.             $sql .= " INNER JOIN s.utilisateur u ";
  1262.         }*/
  1263.         $sql .= " WHERE c.annule != 1 and  1=1  and l.etatLigneCommande !=2 ";
  1264.         
  1265.         
  1266.         
  1267.         /**  debut critère recherche  * */
  1268.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  1269.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.datePublication >= " " '" $paramdeb ." ".$heureDebut[1] . "' " $sql .= '';
  1270.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.datePublication <= " " '" $paramfin ." ".$heureFin[1] .  "' " $sql .= '';
  1271.         //( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId';
  1272.         //( $caisseId == '0' || $caisseId == '') ? $sql .= '' : $sql .= ' AND cs.id = :caisseId';
  1273.         $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  1274.         $separateur ="";
  1275.         if($type == 3)
  1276.             $separateur "( ";
  1277.         $sql .= ' AND'$separateur .' c.typeCommande = :typec ';
  1278.         if($type == 3)
  1279.             $sql .= ' OR c.typeCommande = :typec1)';
  1280.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  1281.         /*if($prod != 1){
  1282.             ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  1283.         }else{
  1284.             ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  1285.         }*/
  1286.         $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  1287.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  1288.         
  1289.         if ($silivre == '0' || $silivre == '') {
  1290.             
  1291.         } else {
  1292.             if ($silivre == 1) {
  1293.                 $sql .= ' AND l.quantiteLivre =0';
  1294.             } elseif ($silivre == 2) {
  1295.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  1296.             } else {
  1297.                 $sql .= ' AND c.etatCommande =2';
  1298.             }
  1299.         }
  1300.         if($caisseId !=0){
  1301.             ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $sql .= ' AND cs.id = :caisseId';
  1302.             ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $param['caisseId'] = $caisseId;
  1303.             
  1304.         }else{
  1305.             ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  1306.             ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  1307.             $sql .= ' AND c.caisse is null';
  1308.         }
  1309.         /** Fin critère recherche * */
  1310.         $sql .= ' ORDER BY c.id DESC ';  
  1311.         
  1312.        
  1313.         /**  debut parametres  * */
  1314.         $param['typec'] = $type;
  1315.         ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  1316.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  1317.         //( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
  1318.         //( $caisseId == '0' || $caisseId == '') ? $sql .= '' : $param['caisseId'] = $caisseId;
  1319.        
  1320.         
  1321.         // ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  1322.         $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  1323.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  1324.         $param['typec'] = $type ;
  1325.         if($type == 3)
  1326.            $param['typec1'] = ;
  1327.         $pageActuelleInt = (int) $pageActuelle;
  1328.         $nbParPageInt = (int) $nbParPage;
  1329.         if ($pageActuelleInt 1) {
  1330.             $pageActuelleInt 1;
  1331.         }
  1332.         if ($nbParPageInt 1) {
  1333.             $nbParPageInt 20;
  1334.         }
  1335.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  1336.         if ($nbTotalPage 1) {
  1337.             $nbTotalPage 1;
  1338.         }
  1339.         if ($pageActuelleInt $nbTotalPage) {
  1340.             $pageActuelleInt $nbTotalPage;
  1341.         }
  1342.         //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page); 
  1343.         //        $query->setMaxResults($articles_per_page);
  1344.         if($type !=0){
  1345.             //
  1346.         }
  1347.         
  1348.         //var_dump($sql,$caisseId );exit;
  1349.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  1350.         //        return $query->getResult();
  1351.         //        $query = $qb->getQuery();
  1352.         $query $this->_em->createQuery($sql);
  1353.         $query->setParameters($param);
  1354.         //var_dump( $sql );exit;
  1355.         if($type !=0){
  1356.             //var_dump( $type , $query->getSQL(),  $type );exit;
  1357.         }
  1358.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  1359.         //        $query->setMaxResults($nbParPageInt);
  1360.         //        $rep['nbParPage'] = $nbParPage;
  1361.         //        $rep['pageActuelle'] = $pageActuelle;
  1362.         //        $rep['nbTotal'] = $nbTotal;
  1363.         //        $rep['nbTotalPage'] = $nbTotalPage;
  1364.         //        $rep['data'] = new Paginator($query);
  1365.         //  var_dump($query->getSQL());exit;
  1366.         return $query->getResult();
  1367.     }
  1368.     public function getStatsRechercheCommandeAnnexe($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod '0'$type=0$nbParPage 20$pageActuelle 1$niveau 4$abonneId=0$caisseId=$produitMere=) {
  1369.         // var_dump()
  1370.  
  1371.          $param = array();
  1372.          $datedebarray = array();
  1373.          $datefinarray = array();
  1374.          $nbTotal 10000;
  1375.          $infoVille $this->getStringSqlVille($niveau);
  1376.          //var_dump($datedeb, $datefin);exit;
  1377.         
  1378.          //traitement des tableaux
  1379.          //heure debut
  1380.          if ($datedeb == && $datefin == 0) {
  1381.             $dateJour = new \DateTime();
  1382.             $premierDate $this->dateDuPremierDuMois($dateJour);
  1383.             $datedeb $dateJour->format("d/m/Y 00:00:00");//$premierDate->format("d/m/Y 00:00:00");
  1384.             $datefin =  $dateJour->format("d/m/Y 23:59:59");//$premierDate->add(new DateInterval('P1M'));
  1385.             //$datefin = $dateMoi->format("d/m/Y 00:00:00");
  1386.         }
  1387.        
  1388.         //var_dump($datedeb, $datefin);exit;
  1389.         //traitement des tableaux
  1390.         //heure debut
  1391.         $heureDebut explode(' ',  $datedeb);
  1392.         $heureFin explode(' ',  $datefin);
  1393.          $datedebarray $this->traiterDateFormat($datedeb);
  1394.          $datefinarray $this->traiterDateFormat($datefin);
  1395.          $paramdeb implode("-"$datedebarray);
  1396.          $paramfin implode("-"$datefinarray);
  1397.  
  1398.          $sql "SELECT  sum(cp.value)  as quantiteTotal,   sum(l.quantiteLivre)  as quantiteTotalLivre,  sum(c.montantCommande)  as montantTotal, sum(l.quantiteLivre*pri.infoPrixRigueur)   as montantTotalLivre  , sum(l.quantite*pri.infoPrixRigueur)   as montantSemence                       
  1399.                    FROM   App\Entity\stock\Commande c ";
  1400.          $sql .= " INNER JOIN c.lignecommandes l ";
  1401.          $sql .= " INNER JOIN l.prixrigueur pri ";
  1402.          if($nomcol!=0){
  1403.              $sql .= " INNER JOIN l.fournisseur f ";
  1404.          }
  1405.          if($caisseId !=0)
  1406.             $sql .= " INNER JOIN c.caisse cs ";
  1407.          else
  1408.             $sql .= " INNER JOIN c.abonne a ";
  1409.          $sql .= " INNER JOIN l.produit pr ";
  1410.          $sql .= " INNER JOIN pr.carateristiqueproduits cp ";
  1411.          $sql .= " INNER JOIN cp.produitparent pp ";
  1412.          
  1413.          /*if($prod != 1){
  1414.              $sql .= " INNER JOIN l.producteur p ";
  1415.              $sql .= $infoVille[0];
  1416.          }else{
  1417.              $sql .= " INNER JOIN f.setrouvers s ";
  1418.              $sql .= " INNER JOIN s.ville v ";    
  1419.              $sql .= " INNER JOIN s.utilisateur u ";
  1420.          }*/
  1421.          $sql .= " WHERE c.annule != 1 and  1=1 and l.etatLigneCommande !=2 and cp.etatCaratersitiqueProduit = 1 ";
  1422.          
  1423.          /**  debut critère recherche  * */
  1424.          // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  1425.          $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.datePublication >= " " '" $paramdeb  ." ".$heureDebut[1] . "' " $sql .= '';
  1426.          ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.datePublication <= " " '" $paramfin  ." ".$heureFin[1] . "' " $sql .= '';
  1427.  
  1428.          
  1429.          if($caisseId ==0)
  1430.             ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  1431.          ( $produitMere == '0' || $produitMere == '') ? $sql .= '' $sql .= ' AND pp.id = :produitMere';
  1432.  
  1433.          ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $sql .= ' AND cs.id = :caisseId';
  1434.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  1435.  
  1436.           $sql .= ' AND c.typeCommande = :typec';
  1437.          ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  1438.          /*if($prod != 1){
  1439.              ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  1440.          }else{
  1441.              ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  1442.          }*/
  1443.          
  1444.          $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  1445.          ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  1446.          
  1447.          if ($silivre == '0' || $silivre == '') {
  1448.              
  1449.          } else {
  1450.              if ($silivre == 1) {
  1451.                  $sql .= ' AND l.quantiteLivre =0';
  1452.              } elseif ($silivre == 2) {
  1453.                  $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  1454.              } else {
  1455.                  $sql .= ' AND c.etatCommande =2';
  1456.              }
  1457.          }
  1458.         //if($caisseId ==0)
  1459.             //$sql .= ' AND cs.id is null ';
  1460.          /** Fin critère recherche * */
  1461.          $sql .= ' ORDER BY c.id DESC ';  
  1462.          
  1463.         
  1464.          /**  debut parametres  * */
  1465.          $param['typec'] = $type;
  1466.          ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  1467.          ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  1468.          if($caisseId ==0)
  1469.             ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  1470.          ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $param['caisseId'] = $caisseId;
  1471.          ( $produitMere == '0' || $produitMere == '') ? $sql .= '' $param['produitMere'] = $produitMere;
  1472.          
  1473.         // ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  1474.          $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  1475.          ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  1476.          
  1477.  
  1478.  
  1479.          $pageActuelleInt = (int) $pageActuelle;
  1480.          $nbParPageInt = (int) $nbParPage;
  1481.          if ($pageActuelleInt 1) {
  1482.              $pageActuelleInt 1;
  1483.          }
  1484.          if ($nbParPageInt 1) {
  1485.              $nbParPageInt 20;
  1486.          }
  1487.  
  1488.          $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  1489.          if ($nbTotalPage 1) {
  1490.              $nbTotalPage 1;
  1491.          }
  1492.          if ($pageActuelleInt $nbTotalPage) {
  1493.              $pageActuelleInt $nbTotalPage;
  1494.          }
  1495.        //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page); 
  1496.        //        $query->setMaxResults($articles_per_page);
  1497.        if($type !=0){
  1498.          //var_dump($sql,$type );exit;
  1499.        }
  1500.         
  1501.        //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  1502.        //        return $query->getResult();
  1503.        //        $query = $qb->getQuery();
  1504.          $query $this->_em->createQuery($sql);
  1505.          $query->setParameters($param);
  1506.      // var_dump( $type , $query->getSQL(),  $type );exit;
  1507.      if($type !=0){
  1508.          //var_dump( $type , $query->getSQL(),  $type );exit;
  1509.        }
  1510.      //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  1511.      //        $query->setMaxResults($nbParPageInt);
  1512.      //        $rep['nbParPage'] = $nbParPage;
  1513.      //        $rep['pageActuelle'] = $pageActuelle;
  1514.      //        $rep['nbTotal'] = $nbTotal;
  1515.      //        $rep['nbTotalPage'] = $nbTotalPage;
  1516.      //        $rep['data'] = new Paginator($query);
  1517.       //var_dump($type, $query->getSQL(), $produitMere, $prod  );exit;
  1518.          return $query->getResult();
  1519.      }
  1520.      public function getPortionProduit($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod '0'$type=0$nbParPage 20$pageActuelle 1$niveau 4$abonneId=0$caisseId=$produitMere=) {
  1521.         // var_dump()
  1522.  
  1523.          $param = array();
  1524.          $datedebarray = array();
  1525.          $datefinarray = array();
  1526.          $nbTotal 10000;
  1527.          $infoVille $this->getStringSqlVille($niveau);
  1528.          //var_dump($datedeb, $datefin);exit;
  1529.         
  1530.          //traitement des tableaux
  1531.          //heure debut
  1532.          $datedebarray $this->traiterDateFormat($datedeb);
  1533.          $datefinarray $this->traiterDateFormat($datefin);
  1534.          $paramdeb implode("-"$datedebarray);
  1535.          $paramfin implode("-"$datefinarray);
  1536.  
  1537.          $sql "SELECT  count(cp.id)   as total                      
  1538.                    FROM   App\Entity\stock\Commande c ";
  1539.          $sql .= " INNER JOIN c.lignecommandes l ";
  1540.          $sql .= " INNER JOIN l.prixrigueur pri ";
  1541.          if($nomcol!=0){
  1542.              $sql .= " INNER JOIN l.fournisseur f ";
  1543.          }
  1544.          if($caisseId !=0)
  1545.              $sql .= " INNER JOIN c.caisse cs ";
  1546.          
  1547.          $sql .= " INNER JOIN l.produit pr ";
  1548.          $sql .= " INNER JOIN c.abonne a ";
  1549.          $sql .= " INNER JOIN pr.carateristiqueproduits cp ";
  1550.          $sql .= " INNER JOIN cp.produitparent pp ";
  1551.          
  1552.          /*if($prod != 1){
  1553.              $sql .= " INNER JOIN l.producteur p ";
  1554.              $sql .= $infoVille[0];
  1555.          }else{
  1556.              $sql .= " INNER JOIN f.setrouvers s ";
  1557.              $sql .= " INNER JOIN s.ville v ";    
  1558.              $sql .= " INNER JOIN s.utilisateur u ";
  1559.          }*/
  1560.          $sql .= " WHERE c.annule != 1 and  1=1 and l.etatLigneCommande !=2 and cp.etatCaratersitiqueProduit = 1 ";
  1561.          
  1562.          
  1563.          
  1564.          /**  debut critère recherche  * */
  1565.          // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  1566.          $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  1567.          ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  1568.  
  1569.          
  1570.          
  1571.          ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  1572.          ( $produitMere == '0' || $produitMere == '') ? $sql .= '' $sql .= ' AND pp.id = :produitMere';
  1573.  
  1574.          ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $sql .= ' AND cs.id = :caisseId';
  1575.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  1576.  
  1577.           $sql .= ' AND c.typeCommande = :typec';
  1578.          ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  1579.          /*if($prod != 1){
  1580.              ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  1581.          }else{
  1582.              ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  1583.          }*/
  1584.          
  1585.          $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  1586.          ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  1587.          
  1588.          if ($silivre == '0' || $silivre == '') {
  1589.              
  1590.          } else {
  1591.              if ($silivre == 1) {
  1592.                  $sql .= ' AND l.quantiteLivre =0';
  1593.              } elseif ($silivre == 2) {
  1594.                  $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  1595.              } else {
  1596.                  $sql .= ' AND c.etatCommande =2';
  1597.              }
  1598.          }
  1599.          /** Fin critère recherche * */
  1600.          $sql .= ' ORDER BY c.id DESC ';  
  1601.          
  1602.         
  1603.          /**  debut parametres  * */
  1604.          $param['typec'] = $type;
  1605.          ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  1606.          ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  1607.          ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  1608.          ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $param['caisseId'] = $caisseId;
  1609.          ( $produitMere == '0' || $produitMere == '') ? $sql .= '' $param['produitMere'] = $produitMere;
  1610.          
  1611.         // ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  1612.          $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  1613.          ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  1614.          
  1615.  
  1616.  
  1617.          $pageActuelleInt = (int) $pageActuelle;
  1618.          $nbParPageInt = (int) $nbParPage;
  1619.          if ($pageActuelleInt 1) {
  1620.              $pageActuelleInt 1;
  1621.          }
  1622.          if ($nbParPageInt 1) {
  1623.              $nbParPageInt 20;
  1624.          }
  1625.  
  1626.          $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  1627.          if ($nbTotalPage 1) {
  1628.              $nbTotalPage 1;
  1629.          }
  1630.          if ($pageActuelleInt $nbTotalPage) {
  1631.              $pageActuelleInt $nbTotalPage;
  1632.          }
  1633.        //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page); 
  1634.        //        $query->setMaxResults($articles_per_page);
  1635.        if($type !=0){
  1636.          //var_dump($sql,$type );exit;
  1637.        }
  1638.         
  1639.        //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  1640.        //        return $query->getResult();
  1641.        //        $query = $qb->getQuery();
  1642.          $query $this->_em->createQuery($sql);
  1643.          $query->setParameters($param);
  1644.      // var_dump( $type , $query->getSQL(),  $type );exit;
  1645.      if($type !=0){
  1646.          //var_dump( $type , $query->getSQL(),  $type );exit;
  1647.        }
  1648.      //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  1649.      //        $query->setMaxResults($nbParPageInt);
  1650.      //        $rep['nbParPage'] = $nbParPage;
  1651.      //        $rep['pageActuelle'] = $pageActuelle;
  1652.      //        $rep['nbTotal'] = $nbTotal;
  1653.      //        $rep['nbTotalPage'] = $nbTotalPage;
  1654.      //        $rep['data'] = new Paginator($query);
  1655.       //var_dump($type, $query->getSQL(), $produitMere, $prod  );exit;
  1656.          return $query->getResult();
  1657.      }
  1658.     
  1659.      
  1660.     public function getRechercheCommandeAnnexe($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod '0'$type=0$nbParPage 20$pageActuelle 1$niveau 4$abonneId=0$caisseId=$produitMere=) {
  1661.         // var_dump()
  1662.  
  1663.          $param = array();
  1664.          $datedebarray = array();
  1665.          $datefinarray = array();
  1666.          $nbTotal 10000;
  1667.          $infoVille $this->getStringSqlVille($niveau);
  1668.          //var_dump($datedeb, $datefin);exit;
  1669.         
  1670.          //traitement des tableaux
  1671.          //heure debut
  1672.          $datedebarray $this->traiterDateFormat($datedeb);
  1673.          $datefinarray $this->traiterDateFormat($datefin);
  1674.          $paramdeb implode("-"$datedebarray);
  1675.          $paramfin implode("-"$datefinarray);
  1676.  
  1677.          $sql "SELECT  cp.value  as quantite, pr.nomProduit , c.dateCommande                    
  1678.                    FROM   App\Entity\stock\Commande c ";
  1679.          $sql .= " INNER JOIN c.lignecommandes l ";
  1680.          $sql .= " INNER JOIN l.prixrigueur pri ";
  1681.          if($nomcol!=0){
  1682.              $sql .= " INNER JOIN l.fournisseur f ";
  1683.          }
  1684.          if($caisseId !=0)
  1685.              $sql .= " INNER JOIN c.caisse cs ";
  1686.          
  1687.          $sql .= " INNER JOIN l.produit pr ";
  1688.          $sql .= " INNER JOIN c.abonne a ";
  1689.          $sql .= " INNER JOIN pr.carateristiqueproduits cp ";
  1690.          $sql .= " INNER JOIN cp.produitparent pp ";
  1691.          
  1692.          /*if($prod != 1){
  1693.              $sql .= " INNER JOIN l.producteur p ";
  1694.              $sql .= $infoVille[0];
  1695.          }else{
  1696.              $sql .= " INNER JOIN f.setrouvers s ";
  1697.              $sql .= " INNER JOIN s.ville v ";    
  1698.              $sql .= " INNER JOIN s.utilisateur u ";
  1699.          }*/
  1700.          $sql .= " WHERE c.annule != 1 and  1=1 and l.etatLigneCommande !=2  and cp.etatCaratersitiqueProduit = 1 ";
  1701.          
  1702.          
  1703.          
  1704.          /**  debut critère recherche  * */
  1705.          // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  1706.          $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  1707.          ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  1708.  
  1709.          
  1710.          
  1711.          ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  1712.          ( $produitMere == '0' || $produitMere == '') ? $sql .= '' $sql .= ' AND pp.id = :produitMere';
  1713.  
  1714.          ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $sql .= ' AND cs.id = :caisseId';
  1715.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  1716.  
  1717.           $sql .= ' AND c.typeCommande = :typec';
  1718.          ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  1719.          /*if($prod != 1){
  1720.              ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  1721.          }else{
  1722.              ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  1723.          }*/
  1724.          
  1725.          $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  1726.          ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  1727.          
  1728.          if ($silivre == '0' || $silivre == '') {
  1729.              
  1730.          } else {
  1731.              if ($silivre == 1) {
  1732.                  $sql .= ' AND l.quantiteLivre =0';
  1733.              } elseif ($silivre == 2) {
  1734.                  $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  1735.              } else {
  1736.                  $sql .= ' AND c.etatCommande =2';
  1737.              }
  1738.          }
  1739.          /** Fin critère recherche * */
  1740.          $sql .= ' ORDER BY c.id DESC ';  
  1741.          
  1742.         
  1743.          /**  debut parametres  * */
  1744.          $param['typec'] = $type;
  1745.          ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  1746.          ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  1747.          ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  1748.          ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $param['caisseId'] = $caisseId;
  1749.          ( $produitMere == '0' || $produitMere == '') ? $sql .= '' $param['produitMere'] = $produitMere;
  1750.          
  1751.         // ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  1752.          $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  1753.          ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  1754.          
  1755.  
  1756.  
  1757.          $pageActuelleInt = (int) $pageActuelle;
  1758.          $nbParPageInt = (int) $nbParPage;
  1759.          if ($pageActuelleInt 1) {
  1760.              $pageActuelleInt 1;
  1761.          }
  1762.          if ($nbParPageInt 1) {
  1763.              $nbParPageInt 20;
  1764.          }
  1765.  
  1766.          $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  1767.          if ($nbTotalPage 1) {
  1768.              $nbTotalPage 1;
  1769.          }
  1770.          if ($pageActuelleInt $nbTotalPage) {
  1771.              $pageActuelleInt $nbTotalPage;
  1772.          }
  1773.        //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page); 
  1774.        //        $query->setMaxResults($articles_per_page);
  1775.        if($type !=0){
  1776.          //var_dump($sql,$type );exit;
  1777.        }
  1778.         
  1779.        //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  1780.        //        return $query->getResult();
  1781.        //        $query = $qb->getQuery();
  1782.          $query $this->_em->createQuery($sql);
  1783.          $query->setParameters($param);
  1784.      // var_dump( $type , $query->getSQL(),  $type );exit;
  1785.      if($type !=0){
  1786.          //var_dump( $type , $query->getSQL(),  $type );exit;
  1787.        }
  1788.      //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  1789.      //        $query->setMaxResults($nbParPageInt);
  1790.      //        $rep['nbParPage'] = $nbParPage;
  1791.      //        $rep['pageActuelle'] = $pageActuelle;
  1792.      //        $rep['nbTotal'] = $nbTotal;
  1793.      //        $rep['nbTotalPage'] = $nbTotalPage;
  1794.      //        $rep['data'] = new Paginator($query);
  1795.       //var_dump($type, $query->getSQL(), $produitMere, $prod  );exit;
  1796.          return $query->getResult();
  1797.      }
  1798.     
  1799.     public function getStatsRechercheCommandeProducteur($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod '0'$nbParPage 20$pageActuelle 1) {
  1800.         $param = array();
  1801.         $datedebarray = array();
  1802.         $datefinarray = array();
  1803.         $nbTotal 10000;
  1804.         
  1805.         //var_dump($datedeb, $datefin);exit;
  1806.         if ($datedeb == && $datefin == 0) {
  1807.             $dateJour = new \DateTime();
  1808.             $premierDate $this->dateDuPremierDuMois($dateJour);
  1809.             $datedeb $premierDate->format("d/m/Y");
  1810.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  1811.             $datefin $dateMoi->format("d/m/Y");
  1812.         }
  1813.         //traitement des tableaux
  1814.         //heure debut
  1815.         $datedebarray $this->traiterDateFormat($datedeb);
  1816.         $datefinarray $this->traiterDateFormat($datefin);
  1817.         $paramdeb implode("-"$datedebarray);
  1818.         $paramfin implode("-"$datefinarray);
  1819.         $sql "SELECT  sum(l.quantite)  as quantiteTotal,   sum(l.quantiteLivre)  as quantiteTotalLivre,  sum(l.quantite*p.infoPrixRigueur)  as montantTotal, sum(l.quantite*p.infoPrixRigueur)   as montantTotalLivre                      
  1820.                   FROM   App\Entity\stock\Commande c ";
  1821.         $sql .= " INNER JOIN c.lignecommandes l ";
  1822.         $sql .= " INNER JOIN l.prixrigueur p ";
  1823.         $sql .= " INNER JOIN l.producteur f ";
  1824.         $sql .= " INNER JOIN l.produit pr ";
  1825.         //$sql .= " INNER JOIN f.setrouvers s ";
  1826.         $sql .= " INNER JOIN f.utilisateur u ";
  1827.        // $sql .= " INNER JOIN u.ville v ";
  1828.         $sql .= " WHERE c.annule != 1 and  1=1 ";
  1829.         /**  debut critère recherche  * */
  1830.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  1831.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  1832.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  1833.         
  1834.         
  1835.         
  1836.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  1837.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  1838.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  1839.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  1840.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  1841.         if ($silivre == '0' || $silivre == '') {
  1842.             
  1843.         } else {
  1844.             if ($silivre == 1) {
  1845.                 $sql .= ' AND l.quantiteLivre =0';
  1846.             } elseif ($silivre == 2) {
  1847.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  1848.             } else {
  1849.                 $sql .= ' AND c.etatCommande =2';
  1850.             }
  1851.         }
  1852.         /** Fin critère recherche * */
  1853.         $sql .= ' ORDER BY c.id DESC ';  
  1854.         
  1855.        
  1856.         /**  debut parametres  * */
  1857.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  1858.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  1859.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  1860.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  1861.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  1862.         $pageActuelleInt = (int) $pageActuelle;
  1863.         $nbParPageInt = (int) $nbParPage;
  1864.         if ($pageActuelleInt 1) {
  1865.             $pageActuelleInt 1;
  1866.         }
  1867.         if ($nbParPageInt 1) {
  1868.             $nbParPageInt 20;
  1869.         }
  1870.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  1871.         if ($nbTotalPage 1) {
  1872.             $nbTotalPage 1;
  1873.         }
  1874.         if ($pageActuelleInt $nbTotalPage) {
  1875.             $pageActuelleInt $nbTotalPage;
  1876.         }
  1877. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  1878. //        $query->setMaxResults($articles_per_page);
  1879. //        var_dump($total);exit;
  1880.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  1881. //        return $query->getResult();
  1882. //        $query = $qb->getQuery();
  1883.         $query $this->_em->createQuery($sql);
  1884.         $query->setParameters($param);
  1885.         //var_dump( $query->getSQL());exit;
  1886. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  1887. //        $query->setMaxResults($nbParPageInt);
  1888. //        $rep['nbParPage'] = $nbParPage;
  1889. //        $rep['pageActuelle'] = $pageActuelle;
  1890. //        $rep['nbTotal'] = $nbTotal;
  1891. //        $rep['nbTotalPage'] = $nbTotalPage;
  1892. //        $rep['data'] = new Paginator($query);
  1893.         //var_dump($util,$query->getSQL());exit;
  1894.         return $query->getResult();
  1895.     }    
  1896.     
  1897.     
  1898.     
  1899.     public function getStatsRechercheLivraison($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1) {
  1900.         $param = array();
  1901.         $datedebarray = array();
  1902.         $datefinarray = array();
  1903.         $nbTotal 10000;
  1904.         //var_dump($datedeb, $datefin);exit;
  1905.         if ($datedeb == && $datefin == 0) {
  1906.             $dateJour = new \DateTime();
  1907.             $premierDate $this->dateDuPremierDuMois($dateJour);
  1908.             $datedeb $premierDate->format("d/m/Y");
  1909.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  1910.             $datefin $dateMoi->format("d/m/Y");
  1911.         }
  1912.         //traitement des tableaux
  1913.         //heure debut
  1914.         $datedebarray $this->traiterDateFormat($datedeb);
  1915.         $datefinarray $this->traiterDateFormat($datefin);
  1916.         $paramdeb implode("-"$datedebarray);
  1917.         $paramfin implode("-"$datefinarray);
  1918.         $sql "SELECT  i                      
  1919.                   FROM   App\Entity\stock\InfoLivrer i ";    
  1920.         $sql .= " INNER JOIN i.fournisseur f ";     
  1921.         $sql .= " INNER JOIN f.setrouvers s ";
  1922.         $sql .= " INNER JOIN s.ville v ";
  1923.         $sql .= " WHERE  1=1 ";
  1924.         /**  debut critère recherche  * */
  1925.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  1926.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  1927.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin "' " $sql .= '';
  1928.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  1929.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  1930.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  1931.         
  1932.         if ($silivre == '0' || $silivre == '') {
  1933.             
  1934.         } else {
  1935.             if ($silivre == 1) {
  1936.                // $sql .= ' AND l.quantiteLivre =0';
  1937.             } elseif ($silivre == 2) {
  1938.                // $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  1939.             } else {
  1940.                // $sql .= ' AND c.etatCommande =2';
  1941.             }
  1942.         }
  1943.         /** Fin critère recherche * */
  1944. //        $sql .= ' ORDER BY l.id DESC ';       
  1945.         /**  debut parametres  * */
  1946.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  1947.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  1948.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  1949.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  1950.         $pageActuelleInt = (int) $pageActuelle;
  1951.         $nbParPageInt = (int) $nbParPage;
  1952.         if ($pageActuelleInt 1) {
  1953.             $pageActuelleInt 1;
  1954.         }
  1955.         if ($nbParPageInt 1) {
  1956.             $nbParPageInt 20;
  1957.         }
  1958.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  1959.         if ($nbTotalPage 1) {
  1960.             $nbTotalPage 1;
  1961.         }
  1962.         if ($pageActuelleInt $nbTotalPage) {
  1963.             $pageActuelleInt $nbTotalPage;
  1964.         }
  1965. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  1966. //        $query->setMaxResults($articles_per_page);
  1967. //        var_dump($total);exit;
  1968.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  1969. //        return $query->getResult();
  1970. //        $query = $qb->getQuery();
  1971.         $query $this->_em->createQuery($sql);
  1972.         $query->setParameters($param);
  1973.        //var_dump( $query->getSQL());exit;
  1974. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  1975. //        $query->setMaxResults($nbParPageInt);
  1976. //        $rep['nbParPage'] = $nbParPage;
  1977. //        $rep['pageActuelle'] = $pageActuelle;
  1978. //        $rep['nbTotal'] = $nbTotal;
  1979. //        $rep['nbTotalPage'] = $nbTotalPage;
  1980. //        $rep['data'] = new Paginator($query);
  1981.        //   var_dump($query->getResult());exit;
  1982.         return $query->getResult();
  1983.     }
  1984.     
  1985.     public function getStatsRechercheLivraisonMois($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1,$prod=2,$niveau=4) {
  1986.         
  1987.        // $ville = 0;
  1988.         $param = array();
  1989.         $datedebarray = array();
  1990.         $datefinarray = array();
  1991.         $nbTotal 10000;
  1992.         //var_dump($datedeb, $datefin);exit;
  1993.         $infoVille $this->getStringSqlVille($niveau);
  1994.         if ($datedeb == && $datefin == 0) {
  1995.             $dateJour = new \DateTime();
  1996.             $premierDate $this->dateDuPremierDuMois($dateJour);
  1997.             $datedeb $premierDate->format("d/m/Y");
  1998.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  1999.             $datefin $dateMoi->format("d/m/Y");
  2000.         }
  2001.         //traitement des tableaux
  2002.         //heure debut
  2003.         $datedebarray $this->traiterDateFormat($datedeb);
  2004.         $datefinarray $this->traiterDateFormat($datefin);
  2005.         $paramdeb implode("-"$datedebarray);
  2006.         $paramfin implode("-"$datefinarray);
  2007.         //
  2008.         
  2009.         $sql "SELECT   SUM(i.nbreTotalLivre*pr.infoPrixRigueur) as montantTotalLivraison          
  2010.                 FROM   App\Entity\stock\InfoLivrer i ";                 
  2011.              $sql .= " INNER JOIN i.prixrigueur pr ";
  2012.        
  2013.       /*$sql .= " INNER JOIN i.fournisseur f ";     
  2014.         $sql .= " INNER JOIN f.setrouvers s ";
  2015.         $sql .= " INNER JOIN s.ville v ";*/
  2016.         if($prod != 1){
  2017.             $sql .= " INNER JOIN i.livrers l ";
  2018.             $sql .= " INNER JOIN l.lignecommande li ";
  2019.             $sql .= " INNER JOIN li.producteur p ";
  2020.             $sql .= $infoVille[0];
  2021.         }else{
  2022.             $sql .= " INNER JOIN i.fournisseur f ";     
  2023.             $sql .= " INNER JOIN f.setrouvers s ";
  2024.             $sql .= " INNER JOIN s.ville v ";
  2025.         }
  2026.         $sql .= " WHERE  1=1 ";
  2027.         /**  debut critère recherche  * */
  2028.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2029.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  2030.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin "' " $sql .= '';
  2031.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  2032.          if($prod != 1){
  2033.             ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v3.id = :ville';
  2034.         }else{
  2035.             ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  2036.         }
  2037.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  2038.         
  2039.         if ($silivre == '0' || $silivre == '') {
  2040.             
  2041.         } else {
  2042.             if ($silivre == 1) {
  2043.                // $sql .= ' AND l.quantiteLivre =0';
  2044.             } elseif ($silivre == 2) {
  2045.                // $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  2046.             } else {
  2047.                // $sql .= ' AND c.etatCommande =2';
  2048.             }
  2049.         }
  2050.         /** Fin critère recherche * */
  2051. //        $sql .= ' ORDER BY l.id DESC ';       
  2052.         /**  debut parametres  * */
  2053.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  2054.        ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  2055.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  2056.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  2057.         $pageActuelleInt = (int) $pageActuelle;
  2058.         $nbParPageInt = (int) $nbParPage;
  2059.         if ($pageActuelleInt 1) {
  2060.             $pageActuelleInt 1;
  2061.         }
  2062.         if ($nbParPageInt 1) {
  2063.             $nbParPageInt 20;
  2064.         }
  2065.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  2066.         if ($nbTotalPage 1) {
  2067.             $nbTotalPage 1;
  2068.         }
  2069.         if ($pageActuelleInt $nbTotalPage) {
  2070.             $pageActuelleInt $nbTotalPage;
  2071.         }
  2072. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  2073. //        $query->setMaxResults($articles_per_page);
  2074. //        var_dump($total);exit;
  2075.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  2076. //        return $query->getResult();
  2077. //        $query = $qb->getQuery();
  2078.         $query $this->_em->createQuery($sql);
  2079.         $query->setParameters($param);
  2080.        //var_dump( $query->getSQL());exit;
  2081. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  2082. //        $query->setMaxResults($nbParPageInt);
  2083. //        $rep['nbParPage'] = $nbParPage;
  2084. //        $rep['pageActuelle'] = $pageActuelle;
  2085. //        $rep['nbTotal'] = $nbTotal;
  2086. //        $rep['nbTotalPage'] = $nbTotalPage;
  2087. //        $rep['data'] = new Paginator($query);
  2088.  //      var_dump($query->getResult());exit;
  2089.         return $query->getResult();
  2090.     }
  2091.     public function getStatsRechercheLivraisonQuantiteMois($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1,$prod=2,$niveau=4,$abonneId=0,$caisseId=0) {
  2092.         
  2093.         // $ville = 0;
  2094.          $param = array();
  2095.          $datedebarray = array();
  2096.          $datefinarray = array();
  2097.          $nbTotal 10000;
  2098.          $heure " 23:59:59";
  2099.          //var_dump($datedeb, $datefin);exit;
  2100.          $infoVille $this->getStringSqlVille($niveau);
  2101.          $dateJour = new \DateTime();
  2102.          if ($datedeb == && $datefin == 0) {
  2103.             $datedeb $dateJour->format("31/12/1990 00:00:00");//$premierDate->format("d/m/Y 00:00:00");
  2104.             $datefin =  $dateJour->format("d/m/Y 23:59:59");
  2105.          }else if ($datedeb == && $datefin == 1) {
  2106.             $premierDate $this->dateDuPremierDuMois($dateJour);
  2107.             $datedeb $premierDate->format("d/m/Y");
  2108.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  2109.             $datefin $dateMoi->format("d/m/Y");
  2110.         }
  2111.          //traitement des tableaux
  2112.          //heure debut
  2113.          $datedebarray $this->traiterDateFormat($datedeb);
  2114.          $datefinarray $this->traiterDateFormat($datefin);
  2115.          $paramdeb implode("-"$datedebarray);
  2116.          $paramfin implode("-"$datefinarray);
  2117.          //
  2118.          
  2119.  
  2120.          $sql "SELECT   SUM(l.nbreLivre) as quantiteLivrer         
  2121.                  FROM   App\Entity\stock\Livrer l ";                 
  2122.              // $sql .= " INNER JOIN i.prixrigueur pr ";
  2123.         
  2124.         /*$sql .= " INNER JOIN i.fournisseur f ";     
  2125.             $sql .= " INNER JOIN f.setrouvers s ";
  2126.             $sql .= " INNER JOIN s.ville v ";*/
  2127.             //if($prod != 1){
  2128.              $sql .= " INNER JOIN l.infolivrer i";
  2129.              $sql .= " INNER JOIN l.lignecommande li ";
  2130.              $sql .= " INNER JOIN li.produit pd ";
  2131.              if($caisseId !=0)
  2132.                 $sql .= " INNER JOIN i.caisse cs  INNER JOIN pd.abonne a  ";
  2133.              else
  2134.                 $sql .= " INNER JOIN i.abonne a ";
  2135.              //$sql .= " INNER JOIN li.producteur p ";
  2136.              //$sql .= $infoVille[0];
  2137.          /*}else{
  2138.              $sql .= " INNER JOIN i.fournisseur f ";     
  2139.              $sql .= " INNER JOIN f.setrouvers s ";
  2140.              $sql .= " INNER JOIN s.ville v ";
  2141.          }*/
  2142.          $sql .= " WHERE  1=1 ";
  2143.          /**  debut critère recherche  * */
  2144.          // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2145.          $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  2146.          ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin.$heure "' " $sql .= '';
  2147.  
  2148.          ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  2149.         /*  if($prod != 1){
  2150.              ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  2151.          }else{
  2152.              ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  2153.          }*/
  2154.          $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  2155.          ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pd.id =:prod ';
  2156.          
  2157.          if ($silivre == '0' || $silivre == '') {
  2158.              
  2159.          } else {
  2160.              if ($silivre == 1) {
  2161.                 // $sql .= ' AND l.quantiteLivre =0';
  2162.              } elseif ($silivre == 2) {
  2163.                 // $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  2164.              } else {
  2165.                 // $sql .= ' AND c.etatCommande =2';
  2166.              }
  2167.          }
  2168.          /** Fin critère recherche * */
  2169.  //        $sql .= ' ORDER BY l.id DESC ';       
  2170.          /**  debut parametres  * */
  2171.          
  2172.         if($caisseId !=0){
  2173.             ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $sql .= ' AND cs.id = :caisseId';
  2174.             ( $caisseId == '0' || $caisseId == '') ? $sql .= '' $param['caisseId'] = $caisseId;
  2175.             
  2176.         }else{
  2177.             ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  2178.             ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  2179.             $sql .= ' AND i.caisse is null';
  2180.         }
  2181.          ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  2182.        // ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  2183.          $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  2184.          ( $prod == '0' || $prod == '') ? $prod .= '' $param['prod'] = $prod;
  2185.          ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  2186.  
  2187.  
  2188.          $pageActuelleInt = (int) $pageActuelle;
  2189.          $nbParPageInt = (int) $nbParPage;
  2190.          if ($pageActuelleInt 1) {
  2191.              $pageActuelleInt 1;
  2192.          }
  2193.          if ($nbParPageInt 1) {
  2194.              $nbParPageInt 20;
  2195.          }
  2196.  
  2197.          $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  2198.          if ($nbTotalPage 1) {
  2199.              $nbTotalPage 1;
  2200.          }
  2201.          if ($pageActuelleInt $nbTotalPage) {
  2202.              $pageActuelleInt $nbTotalPage;
  2203.          }
  2204.         //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  2205.         //        $query->setMaxResults($articles_per_page);
  2206.         //var_dump($sql, $caisseId);exit;
  2207.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  2208.         //        return $query->getResult();
  2209.         //        $query = $qb->getQuery();
  2210.          $query $this->_em->createQuery($sql);
  2211.          $query->setParameters($param);
  2212.         //var_dump( $query->getSQL(), $caisseId, $prod);exit;
  2213.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  2214.         //        $query->setMaxResults($nbParPageInt);
  2215.         //        $rep['nbParPage'] = $nbParPage;
  2216.         //        $rep['pageActuelle'] = $pageActuelle;
  2217.         //        $rep['nbTotal'] = $nbTotal;
  2218.         //        $rep['nbTotalPage'] = $nbTotalPage;
  2219.         //        $rep['data'] = new Paginator($query);
  2220.         //      var_dump($query->getResult());exit;
  2221.          return $query->getResult();
  2222.      }
  2223.     
  2224.     public function getStatsRechercheLivraisonTotal($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1,$datedebchoisi=0,$prod=2,$niveau=4$abonneId=0) {
  2225.         $param = array();
  2226.         $datedebarray = array();
  2227.         $datefinarray = array();
  2228.         $nbTotal 10000;
  2229.              
  2230.         $infoVille $this->getStringSqlVille($niveau);
  2231.         if ($datedeb == && $datefin == 0) {
  2232.             $dateJour = new \DateTime();
  2233.             $premierDate $this->dateDuPremierDuMois($dateJour);
  2234.             $datedeb $premierDate->format("d/m/Y");
  2235.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  2236.             $datefin $dateMoi->format("d/m/Y");
  2237.         }
  2238.          
  2239.         //traitement des tableaux
  2240.         //heure debut
  2241.         $datedebarray $this->traiterDateFormat($datedeb);
  2242.         $datefinarray $this->traiterDateFormat($datefin);
  2243.         $paramdeb implode("-"$datedebarray);
  2244.         $paramfin implode("-"$datefinarray);
  2245.          if($datedebchoisi != 0){
  2246.             $objetDateDebDefault \DateTime::createFromFormat("d/m/Y",$datedeb);
  2247.             $objetDateDeb \DateTime::createFromFormat('d/m/Y',$datedebchoisi);
  2248.            // var_dump($datedebchoisi, $objetDateDebDefault,$objetDateDeb);exit;
  2249.             if( $objetDateDeb<$objetDateDebDefault){
  2250.                 $paramdeb $objetDateDebDefault->format("Y-m-d") ;
  2251.             }else{
  2252.                 $paramdeb $objetDateDeb->format("Y-m-d") ;
  2253.             }
  2254.         }
  2255.         $sql "SELECT  SUM(i.nbreTotalLivre*pr.infoPrixRigueur) as montantTotalLivraison                    
  2256.                   FROM   App\Entity\stock\InfoLivrer i ";    
  2257.         //$sql .= " INNER JOIN i.livrers l ";             
  2258.         $sql .= " INNER JOIN i.prixrigueur pr ";   
  2259.         $sql .= " INNER JOIN i.fournisseur f ";  
  2260.         
  2261.         $sql .= " INNER JOIN i.abonne a ";
  2262.         
  2263.         /*if($prod != 1){
  2264.             $sql .= " INNER JOIN i.livrers l ";
  2265.             $sql .= " INNER JOIN l.lignecommande li ";
  2266.             $sql .= " INNER JOIN i.fournisseur f "; 
  2267.             $sql .= " INNER JOIN li.producteur p ";
  2268.             $sql .= $infoVille[0];
  2269.         }else{
  2270.             $sql .= " INNER JOIN i.fournisseur f ";     
  2271.             $sql .= " INNER JOIN f.setrouvers s ";
  2272.             $sql .= " INNER JOIN s.ville v ";
  2273.         }*/
  2274.         $sql .= " WHERE  1=1 ";
  2275.         /**  debut critère recherche  * */
  2276.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2277.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  2278.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin "' " $sql .= '';
  2279.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  2280.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND  a.id =:abonneId';
  2281.         /*if($prod != 1){
  2282.             ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  2283.         }else{
  2284.             ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  2285.         }*/
  2286.         $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  2287.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  2288.         
  2289.         if ($silivre == '0' || $silivre == '') {
  2290.             
  2291.         } else {
  2292.             if ($silivre == 1) {
  2293.                // $sql .= ' AND l.quantiteLivre =0';
  2294.             } elseif ($silivre == 2) {
  2295.                // $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  2296.             } else {
  2297.                // $sql .= ' AND c.etatCommande =2';
  2298.             }
  2299.         }
  2300.         /** Fin critère recherche * */
  2301. //        $sql .= ' ORDER BY l.id DESC ';  
  2302.    //var_dump($sql);exit;
  2303.         
  2304.         /**  debut parametres  * */
  2305.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  2306.        // ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  2307.         $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  2308.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  2309.         $pageActuelleInt = (int) $pageActuelle;
  2310.         $nbParPageInt = (int) $nbParPage;
  2311.         if ($pageActuelleInt 1) {
  2312.             $pageActuelleInt 1;
  2313.         }
  2314.         if ($nbParPageInt 1) {
  2315.             $nbParPageInt 20;
  2316.         }
  2317.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  2318.         if ($nbTotalPage 1) {
  2319.             $nbTotalPage 1;
  2320.         }
  2321.         if ($pageActuelleInt $nbTotalPage) {
  2322.             $pageActuelleInt $nbTotalPage;
  2323.         }
  2324. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  2325. //        $query->setMaxResults($articles_per_page);
  2326. //        var_dump($total);exit;
  2327.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  2328. //        return $query->getResult();
  2329. //        $query = $qb->getQuery();
  2330.         $query $this->_em->createQuery($sql);
  2331.         $query->setParameters($param);
  2332.         //var_dump( $query->getSQL());exit;
  2333. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  2334. //        $query->setMaxResults($nbParPageInt);
  2335. //        $rep['nbParPage'] = $nbParPage;
  2336. //        $rep['pageActuelle'] = $pageActuelle;
  2337. //        $rep['nbTotal'] = $nbTotal;
  2338. //        $rep['nbTotalPage'] = $nbTotalPage;
  2339. //        $rep['data'] = new Paginator($query);
  2340. //   var_dump($query->getSQL());exit;
  2341.         $montantTotal = array();
  2342.         
  2343.         if($datedebchoisi != 0){
  2344.             $objetDateDebDefault \DateTime::createFromFormat("d/m/Y",$datedeb);
  2345.             $objetDateDeb \DateTime::createFromFormat("d/m/Y",$datedebchoisi);
  2346.             if( $objetDateDeb<$objetDateDebDefault){
  2347.                 $totalMoisAvantMisAuPoint $this->getRechercheSoldeInfoLivrer($nomcol$ville$datedebchoisi$datedeb,0);        
  2348.             }else{
  2349.                 $totalMoisAvantMisAuPoint[0]["montantTotalLivraison"] =0;
  2350.             }
  2351.             
  2352.         }else{
  2353.             
  2354.             $totalMoisAvantMisAuPoint $this->getRechercheSoldeInfoLivrer($nomcol$ville"01/05/2015""01/09/2017",0);
  2355.  
  2356.         }
  2357.          
  2358.         
  2359.         
  2360.         $totalSecondEncours $query->getResult();
  2361.        // var_dump($totalSecondEncours[0]["montantTotalLivraison"],$totalMoisAvantMisAuPoint[0]["montantTotalLivraison"],'|');
  2362.         $montantTotal[0]["montantTotalLivraison"] = $totalSecondEncours[0]["montantTotalLivraison"]+$totalMoisAvantMisAuPoint[0]["montantTotalLivraison"]  ;
  2363.         return $montantTotal ;
  2364.     }
  2365.     
  2366.     
  2367.     
  2368.     public function getStatsRechercheLivraisonNewTotal($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1,$datedebchoisi=0,$prod=2,$niveau=4) {
  2369.         $param = array();
  2370.         $datedebarray = array();
  2371.         $datefinarray = array();
  2372.         $nbTotal 10000;
  2373.              
  2374.         $infoVille $this->getStringSqlVille($niveau);
  2375.         if ($datedeb == && $datefin == 0) {
  2376.             $dateJour = new \DateTime();
  2377.             $premierDate $this->dateDuPremierDuMois($dateJour);
  2378.             $datedeb $premierDate->format("d/m/Y");
  2379.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  2380.             $datefin $dateMoi->format("d/m/Y");
  2381.         }
  2382.          
  2383.         //traitement des tableaux
  2384.         //heure debut
  2385.         $datedebarray $this->traiterDateFormat($datedeb);
  2386.         $datefinarray $this->traiterDateFormat($datefin);
  2387.         $paramdeb implode("-"$datedebarray);
  2388.         $paramfin implode("-"$datefinarray);
  2389.          if($datedebchoisi != 0){
  2390.             $objetDateDebDefault \DateTime::createFromFormat("d/m/Y",$datedeb);
  2391.             $objetDateDeb \DateTime::createFromFormat('d/m/Y',$datedebchoisi);
  2392.            // var_dump($datedebchoisi, $objetDateDebDefault,$objetDateDeb);exit;
  2393.             if( $objetDateDeb<$objetDateDebDefault){
  2394.                 $paramdeb $objetDateDebDefault->format("Y-m-d") ;
  2395.             }else{
  2396.                 $paramdeb $objetDateDeb->format("Y-m-d") ;
  2397.             }
  2398.         }
  2399.         $sql "SELECT  SUM(i.nbreTotalLivre*pr.infoPrixRigueur) as montantTotalLivraison                    
  2400.                   FROM   App\Entity\stock\InfoLivrer i ";    
  2401.         //$sql .= " INNER JOIN i.livrers l ";             
  2402.         $sql .= " INNER JOIN i.prixrigueur pr ";       
  2403.         
  2404.         if($prod != 1){
  2405.             $sql .= " INNER JOIN i.livrers l ";
  2406.             $sql .= " INNER JOIN l.lignecommande li ";
  2407.             $sql .= " INNER JOIN i.fournisseur f "
  2408.             $sql .= " INNER JOIN li.producteur p ";
  2409.             $sql .= $infoVille[0];
  2410.         }else{
  2411.             $sql .= " INNER JOIN i.fournisseur f ";     
  2412.             $sql .= " INNER JOIN f.setrouvers s ";
  2413.             $sql .= " INNER JOIN s.ville v ";
  2414.         }
  2415.         $sql .= " WHERE  1=1 ";
  2416.         /**  debut critère recherche  * */
  2417.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2418.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  2419.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin "' " $sql .= '';
  2420.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  2421.         if($prod != 1){
  2422.             ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v3.id = :ville';
  2423.         }else{
  2424.             ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  2425.         }
  2426.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  2427.         
  2428.         if ($silivre == '0' || $silivre == '') {
  2429.             
  2430.         } else {
  2431.             if ($silivre == 1) {
  2432.                // $sql .= ' AND l.quantiteLivre =0';
  2433.             } elseif ($silivre == 2) {
  2434.                // $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  2435.             } else {
  2436.                // $sql .= ' AND c.etatCommande =2';
  2437.             }
  2438.         }
  2439.         /** Fin critère recherche * */
  2440. //        $sql .= ' ORDER BY l.id DESC ';  
  2441.    //var_dump($sql);exit;
  2442.         
  2443.         /**  debut parametres  * */
  2444.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  2445.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  2446.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  2447.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  2448.         $pageActuelleInt = (int) $pageActuelle;
  2449.         $nbParPageInt = (int) $nbParPage;
  2450.         if ($pageActuelleInt 1) {
  2451.             $pageActuelleInt 1;
  2452.         }
  2453.         if ($nbParPageInt 1) {
  2454.             $nbParPageInt 20;
  2455.         }
  2456.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  2457.         if ($nbTotalPage 1) {
  2458.             $nbTotalPage 1;
  2459.         }
  2460.         if ($pageActuelleInt $nbTotalPage) {
  2461.             $pageActuelleInt $nbTotalPage;
  2462.         }
  2463. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  2464. //        $query->setMaxResults($articles_per_page);
  2465. //        var_dump($total);exit;
  2466.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  2467. //        return $query->getResult();
  2468. //        $query = $qb->getQuery();
  2469.         $query $this->_em->createQuery($sql);
  2470.         $query->setParameters($param);
  2471.         //var_dump( $query->getSQL());exit;
  2472. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  2473. //        $query->setMaxResults($nbParPageInt);
  2474. //        $rep['nbParPage'] = $nbParPage;
  2475. //        $rep['pageActuelle'] = $pageActuelle;
  2476. //        $rep['nbTotal'] = $nbTotal;
  2477. //        $rep['nbTotalPage'] = $nbTotalPage;
  2478. //        $rep['data'] = new Paginator($query);
  2479. //   var_dump($query->getSQL());exit;
  2480.         $montantTotal = array();
  2481.         
  2482.         if($datedebchoisi != 0){
  2483.             $objetDateDebDefault \DateTime::createFromFormat("d/m/Y",$datedeb);
  2484.             $objetDateDeb \DateTime::createFromFormat("d/m/Y",$datedebchoisi);
  2485.             if( $objetDateDeb<$objetDateDebDefault){
  2486.                 $totalMoisAvantMisAuPoint $this->getRechercheSoldeInfoLivrer($nomcol$ville$datedebchoisi$datedeb,0);        
  2487.             }else{
  2488.                 $totalMoisAvantMisAuPoint[0]["montantTotalLivraison"] =0;
  2489.             }
  2490.             
  2491.         }else{
  2492.             
  2493.             $totalMoisAvantMisAuPoint $this->getRechercheSoldeInfoLivrer($nomcol$ville"01/05/2015""01/09/2017",0);
  2494.  
  2495.         }
  2496.          
  2497.         
  2498.         
  2499.         $totalSecondEncours $query->getResult();
  2500.        // var_dump($totalSecondEncours[0]["montantTotalLivraison"],$totalMoisAvantMisAuPoint[0]["montantTotalLivraison"],'|');
  2501.         $montantTotal[0]["montantTotalLivraison"] = $totalSecondEncours[0]["montantTotalLivraison"]+$totalMoisAvantMisAuPoint[0]["montantTotalLivraison"]  ;
  2502.         return $montantTotal ;
  2503.     }
  2504.     
  2505.     
  2506.     public function getSumQuantiteLivraisonTotal($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1,$datedebchoisi=0$prod1,$abonneId=0) {
  2507.         $param = array();
  2508.         $datedebarray = array();
  2509.         $datefinarray = array();
  2510.         $nbTotal 10000;
  2511.         
  2512.         if ($datedeb == && $datefin == 0) {
  2513.             $dateJour = new \DateTime();
  2514.             $premierDate $this->dateDuPremierDuMois($dateJour);
  2515.             $datedeb =  "01/01/2014";//$premierDate->format("d/m/Y");
  2516.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  2517.             $datefin $dateMoi->format("d/m/Y");
  2518.         }
  2519.         //traitement des tableaux
  2520.         //heure debut
  2521.         $datedebarray $this->traiterDateFormat($datedeb);
  2522.         $datefinarray $this->traiterDateFormat($datefin);
  2523.         $paramdeb implode("-"$datedebarray);
  2524.         $paramfin implode("-"$datefinarray);
  2525. //var_dump($paramdeb,$paramfin);exit;
  2526.         $sql "SELECT  SUM(l.nbreLivre) as totalLivraison, SUM(i.nbreSaisie) as totalLivraisonSaisie, SUM(l.nbreLivre * pr.infoPrixRigueur)   as   montantTotalLivre               
  2527.                   FROM   App\Entity\stock\InfoLivrer i ";    
  2528.         $sql .= " INNER JOIN i.livrers l ";
  2529.         $sql .= " INNER JOIN l.lignecommande li ";
  2530.         $sql .= " INNER JOIN i.fournisseur f ";
  2531.         $sql .= " INNER JOIN i.abonne a ";
  2532.         $sql .= " INNER JOIN i.prixrigueur pr ";
  2533.         
  2534.         /*if($prod != 1){
  2535.             $sql .= " INNER JOIN i.fournisseur f ";
  2536.             $sql .= " INNER JOIN li.producteur p ";
  2537.             $sql .= " INNER JOIN i.prixrigueur pr ";
  2538.             //$sql .= $infoVille[0];
  2539.         }else{
  2540.             $sql .= " INNER JOIN i.fournisseur f ";     
  2541.             $sql .= " INNER JOIN f.setrouvers s ";
  2542.             $sql .= " INNER JOIN s.ville v ";
  2543.             $sql .= " INNER JOIN i.prixrigueur pr ";
  2544.         }*/
  2545.         
  2546.         $sql .= " WHERE  1=1 ";
  2547.         /**  debut critère recherche  * */
  2548.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2549.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  2550.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin "' " $sql .= '';
  2551.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  2552.         //( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  2553.         $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  2554.         
  2555.         if ($silivre == '0' || $silivre == '') {
  2556.             
  2557.         } else {
  2558.             if ($silivre == 1) {
  2559.                // $sql .= ' AND l.quantiteLivre =0';
  2560.             } elseif ($silivre == 2) {
  2561.                // $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  2562.             } else {
  2563.                // $sql .= ' AND c.etatCommande =2';
  2564.             }
  2565.         }
  2566.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND  a.id =:abonneId';
  2567.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  2568.         /** Fin critère recherche * */
  2569. //        $sql .= ' ORDER BY l.id DESC ';       
  2570.         /**  debut parametres  * */
  2571.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  2572.         //( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  2573.         $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  2574.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  2575.         //var_dump($sql);exit;
  2576.         $pageActuelleInt = (int) $pageActuelle;
  2577.         $nbParPageInt = (int) $nbParPage;
  2578.         if ($pageActuelleInt 1) {
  2579.             $pageActuelleInt 1;
  2580.         }
  2581.         if ($nbParPageInt 1) {
  2582.             $nbParPageInt 20;
  2583.         }
  2584.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  2585.         if ($nbTotalPage 1) {
  2586.             $nbTotalPage 1;
  2587.         }
  2588.         if ($pageActuelleInt $nbTotalPage) {
  2589.             $pageActuelleInt $nbTotalPage;
  2590.         }
  2591. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  2592. //        $query->setMaxResults($articles_per_page);
  2593. //        var_dump($total);exit;
  2594.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  2595. //        return $query->getResult();
  2596. //        $query = $qb->getQuery();
  2597.         $query $this->_em->createQuery($sql);
  2598.         $query->setParameters($param);
  2599.        //var_dump( $query->getSQL());exit;
  2600. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  2601. //        $query->setMaxResults($nbParPageInt);
  2602. //        $rep['nbParPage'] = $nbParPage;
  2603. //        $rep['pageActuelle'] = $pageActuelle;
  2604. //        $rep['nbTotal'] = $nbTotal;
  2605. //        $rep['nbTotalPage'] = $nbTotalPage;
  2606. //        $rep['data'] = new Paginator($query);
  2607. //       var_dump($query->getSQL());exit;
  2608.         $montantTotal = array();
  2609.         
  2610.         
  2611.         $totalSecondEncours $query->getResult();
  2612.         
  2613. //        $montantTotal[0]["montantTotalLivraison"] = $totalSecondEncours[0]["mont$totalLivreantTotalLivraison"]+$totalMoisAvantMisAuPoint[0]["montantTotalLivraison"]  ;
  2614.         return $totalSecondEncours ;
  2615.     }
  2616.     
  2617.     
  2618.     public function getRechercheSoldeInfoLivrer($four$ville$datedeb$datefin,$prix)
  2619.     {
  2620.         $param =array();
  2621.         if ($datedeb == && $datefin == 0) {
  2622.             $dateJour = new \DateTime();
  2623.             $premierDate $this->dateDuPremierDuMois($dateJour);
  2624.             $datedeb $premierDate->format("d/m/Y");
  2625.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  2626.             $datefin $dateMoi->format("d/m/Y");
  2627.         }
  2628.         $datedebarray $this->traiterDateFormat($datedeb);
  2629.         $datefinarray $this->traiterDateFormat($datefin);
  2630.         $paramdeb implode("-"$datedebarray);
  2631.         $paramfin implode("-"$datefinarray);
  2632.         
  2633.          //var_dump($paramdeb,$paramfin);exit;     
  2634.         $sql "SELECT SUM(l.nbreLivre*p.infoPrixRigueur) as montantTotalLivraison                      
  2635.                 FROM  App\Entity\stock\InfoLivrer i ";
  2636.         
  2637.              $sql .= " INNER JOIN i.livrers l ";
  2638.              $sql .= " INNER JOIN l.lignecommande li ";
  2639.              $sql .= " INNER JOIN li.prixrigueur p ";
  2640.        
  2641.         
  2642.         $sql .= " INNER JOIN i.fournisseur f ";
  2643.         $sql .= " INNER JOIN f.setrouvers s ";
  2644.         $sql .= " INNER JOIN s.ville v ";
  2645.         $sql .= " WHERE  1=1 ";
  2646.         /**  debut critère recherche  * */
  2647.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2648.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  2649.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison < " " '" $paramfin "' " $sql .= '';
  2650.         
  2651.         //var_dump($four);exit;
  2652.         $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  2653.         ( $four == '0' || $four == '') ? $sql .= '' $sql .= ' AND f.id = :four';
  2654.         ( $prix == '0' || $prix == '') ? $sql .= '' $sql .= ' AND p.id = :prix';
  2655.         // var_dump($sql());exit;
  2656.         $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  2657.         ( $four == '0' || $four == '') ? $sql .= '' $param['four'] = $four;
  2658.         ( $prix == '0' || $prix == '') ? $sql .= '' $param['prix'] = $prix;
  2659.         
  2660.         $query $this->_em->createQuery($sql);
  2661.          
  2662.         $query->setParameters($param);
  2663.         //var_dump($query->getSql());exit;
  2664.         return $query->getResult();
  2665.     }
  2666.     
  2667.     
  2668.     public function getStatsInfoLivraisonCommande($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1) {
  2669.         $param = array();
  2670.         $datedebarray = array();
  2671.         $datefinarray = array();
  2672.         $nbTotal 10000;
  2673.         //var_dump($datedeb, $datefin);exit;
  2674.         if ($datedeb == && $datefin == 0) {
  2675.             $dateJour = new \DateTime();
  2676.             $premierDate $this->dateDuPremierDuMois($dateJour);
  2677.             $datedeb $premierDate->format("d/m/Y");
  2678.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  2679.             $datefin $dateMoi->format("d/m/Y");
  2680.         }
  2681.         //traitement des tableaux
  2682.         //heure debut
  2683.         $datedebarray $this->traiterDateFormat($datedeb);
  2684.         $datefinarray $this->traiterDateFormat($datefin);
  2685.         $paramdeb implode("-"$datedebarray);
  2686.         $paramfin implode("-"$datefinarray);
  2687.         $sql "SELECT sum(i.nbreTotalLivre)  as quantiteTotalLivre, sum(i.nbreTotalLivre*p.infoPrixRigueur)   as montantTotalLivre                      
  2688.                 FROM   App\Entity\stock\LigneCommande l ";
  2689.         //$sql .= " INNER JOIN c.lignecommandes l ";
  2690.         $sql .= " INNER JOIN l.prixrigueur p ";
  2691.         $sql .= " INNER JOIN l.fournisseur f ";
  2692.         $sql .= " INNER JOIN l.livrers li ";
  2693.         $sql .= " INNER JOIN li.infolivrer i ";
  2694.         $sql .= " INNER JOIN f.setrouvers s ";
  2695.         $sql .= " INNER JOIN s.utilisateur u ";
  2696.         $sql .= " INNER JOIN s.ville v ";
  2697.         $sql .= " WHERE  1=1 ";
  2698.         /**  debut critère recherche  * */
  2699.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2700.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  2701.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin "' " $sql .= '';
  2702.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  2703.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  2704.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  2705.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  2706.         if ($silivre == '0' || $silivre == '') {
  2707.             
  2708.         } else {
  2709.             if ($silivre == 1) {
  2710.                 $sql .= ' AND l.quantiteLivre =0';
  2711.             } elseif ($silivre == 2) {
  2712.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  2713.             } else {
  2714.                 $sql .= ' AND c.etatCommande =2';
  2715.             }
  2716.         }
  2717.         /** Fin critère recherche * */
  2718. //        $sql .= ' ORDER BY c.id DESC ';
  2719.        
  2720.         /**  debut parametres  * */
  2721.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  2722.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  2723.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  2724.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  2725.         $pageActuelleInt = (int) $pageActuelle;
  2726.         $nbParPageInt = (int) $nbParPage;
  2727.         if ($pageActuelleInt 1) {
  2728.             $pageActuelleInt 1;
  2729.         }
  2730.         if ($nbParPageInt 1) {
  2731.             $nbParPageInt 20;
  2732.         }
  2733.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  2734.         if ($nbTotalPage 1) {
  2735.             $nbTotalPage 1;
  2736.         }
  2737.         if ($pageActuelleInt $nbTotalPage) {
  2738.             $pageActuelleInt $nbTotalPage;
  2739.         }
  2740. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  2741. //        $query->setMaxResults($articles_per_page);
  2742. //        var_dump($total);exit;
  2743.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  2744. //        return $query->getResult();
  2745. //        $query = $qb->getQuery();
  2746.         $query $this->_em->createQuery($sql);
  2747.         $query->setParameters($param);
  2748.         //var_dump( $query->getSQL());exit;
  2749. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  2750. //        $query->setMaxResults($nbParPageInt);
  2751. //        $rep['nbParPage'] = $nbParPage;
  2752. //        $rep['pageActuelle'] = $pageActuelle;
  2753. //        $rep['nbTotal'] = $nbTotal;
  2754. //        $rep['nbTotalPage'] = $nbTotalPage;
  2755. //        $rep['data'] = new Paginator($query);
  2756.         //var_dump($util,$query->getSQL());exit;
  2757.         return $query->getResult();
  2758.     }
  2759.     public function getApiListeRechercheCommande($nomcol$datefin$datedeb$ville$util$silivre$numcom$typeLimite 0$nbParPage 20$pageActuelle 1) {
  2760.         $param = array();
  2761.         $datedebarray = array();
  2762.         $datefinarray = array();
  2763.         $nbTotal 10000;
  2764.         
  2765.         if ($datedeb == && $datefin == 0) {
  2766.             $dateJour = new \DateTime();
  2767.             $premierDate $this->dateDuPremierDuMois($dateJour);
  2768.             $datedeb $premierDate->format("d/m/Y");
  2769.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  2770.             $datefin $dateMoi->format("d/m/Y");
  2771.         }
  2772.         
  2773.         //traitement des tableaux
  2774.         //var_dump($util);exit;
  2775.         //heure debut
  2776.         $datedebarray $this->traiterDateFormat($datedeb);        
  2777.         $datefinarray $this->traiterDateFormat($datefin);
  2778.         //var_dump($datedeb, $datefin);exit;
  2779.         $paramdeb implode("-"$datedebarray);
  2780.         $paramfin implode("-"$datefinarray);
  2781.         //var_dump($paramdeb,$paramfin);exit;     
  2782.         $sql "SELECT DISTINCT c.id, f.nomFournisseur, l.quantite as quantiteReelle, l.quantiteLivre as quantitePesee, l.montantHt as montant, e.nomEntrepot, v.nomVille, u.nom as codeGenere                       
  2783.                 FROM   App\Entity\stock\Commande c ";
  2784.         $sql .= " INNER JOIN c.lignecommandes l ";
  2785.         $sql .= " INNER JOIN l.livrers li ";
  2786.         $sql .= " INNER JOIN li.infolivrer i ";
  2787.         $sql .= " INNER JOIN li.entrepot e ";
  2788.         $sql .= " INNER JOIN l.fournisseur f ";
  2789.         $sql .= " INNER JOIN f.setrouvers s ";
  2790.         $sql .= " INNER JOIN s.utilisateur u ";
  2791.         $sql .= " INNER JOIN s.ville v ";
  2792.          
  2793.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  2794.         /**  debut critère recherche  * */
  2795.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2796.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  2797.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  2798.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  2799.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  2800.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  2801.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  2802.         if ($silivre == '0' || $silivre == '') {
  2803.             
  2804.         } else {
  2805.             if ($silivre == 1) {
  2806.                 $sql .= ' AND l.quantiteLivre =0';
  2807.             } elseif ($silivre == 2) {
  2808.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  2809.             } elseif ($silivre == 3) {
  2810.                 $sql .= ' AND c.etatCommande =2';
  2811.             } elseif ($silivre == 4) {
  2812.                 $sql .= ' AND l.quantiteLivre !=0';
  2813.             } else {
  2814.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  2815.             }
  2816.         }
  2817.         /** Fin critère recherche * */
  2818.         $sql .= ' ORDER BY c.id DESC ';
  2819.         //var_dump($silivre,$sql);exit;
  2820.         /**  debut parametres  * */
  2821.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  2822.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  2823.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  2824.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  2825.         $pageActuelleInt = (int) $pageActuelle;
  2826.         $nbParPageInt = (int) $nbParPage;
  2827.         if ($pageActuelleInt 1) {
  2828.             $pageActuelleInt 1;
  2829.         }
  2830.         if ($nbParPageInt 1) {
  2831.             $nbParPageInt 20;
  2832.         }
  2833.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  2834.         if ($nbTotalPage 1) {
  2835.             $nbTotalPage 1;
  2836.         }
  2837.         if ($pageActuelleInt $nbTotalPage) {
  2838.             $pageActuelleInt $nbTotalPage;
  2839.         }
  2840.         //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  2841.         //        $query->setMaxResults($articles_per_page);
  2842.         //        var_dump($total);exit;
  2843.                 //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  2844.         //        return $query->getResult();
  2845.         //        $query = $qb->getQuery();
  2846.         $query $this->_em->createQuery($sql);
  2847.         $query->setParameters($param);
  2848.         if ($typeLimite == 1) {
  2849.             $query->setMaxResults(5);
  2850.         }
  2851.         //       var_dump( $query->getSQL());exit;
  2852. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  2853. //        $query->setMaxResults($nbParPageInt);
  2854. //        $rep['nbParPage'] = $nbParPage;
  2855. //        $rep['pageActuelle'] = $pageActuelle;
  2856. //        $rep['nbTotal'] = $nbTotal;
  2857. //        $rep['nbTotalPage'] = $nbTotalPage;
  2858. //        $rep['data'] = new Paginator($query);
  2859.         return $query->getResult();
  2860.     }    
  2861.     
  2862.     
  2863. public function getApiDetailFournisseurCommande($nomcol$datefin$datedeb$ville$util$silivre$numcom$typeLimite 0$nbParPage 20$pageActuelle 1) {
  2864.         $param = array();
  2865.         $datedebarray = array();
  2866.         $datefinarray = array();
  2867.         $nbTotal 10000;
  2868.         
  2869.         if ($datedeb == && $datefin == 0) {
  2870.             $dateJour = new \DateTime();
  2871.             $premierDate $this->dateDuPremierDuMois($dateJour);
  2872.             $datedeb $premierDate->format("d/m/Y");
  2873.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  2874.             $datefin $dateMoi->format("d/m/Y");
  2875.         }        
  2876.         //traitement des tableaux
  2877.         //var_dump($util);exit;
  2878.         //heure debut
  2879.         $datedebarray $this->traiterDateFormat($datedeb);        
  2880.         $datefinarray $this->traiterDateFormat($datefin);
  2881.         //var_dump($datedeb, $datefin);exit;
  2882.         $paramdeb implode("-"$datedebarray);
  2883.         $paramfin implode("-"$datefinarray);
  2884.         //var_dump($paramdeb,$paramfin);exit;     
  2885.         $sql "SELECT DISTINCT c.id,p.id as prodId, f.nomFournisseur,ut.nom as nomProducteur, SUM(i.nbreSaisie) as quantiteReelle, SUM(l.quantiteLivre) as quantitePesee, SUM(l.montantHt) as montant, e.nomEntrepot, v.nomVille, u.nom as codeGenere, p.codeProd, p.urlImage, sa.superficie as valSurface                  
  2886.             FROM   App\Entity\stock\Commande c ";
  2887.         $sql .= " INNER JOIN c.lignecommandes l ";
  2888.         $sql .= " INNER JOIN l.livrers li ";
  2889.         $sql .= " INNER JOIN li.infolivrer i ";
  2890.         $sql .= " INNER JOIN i.producteurlivraisons pl ";
  2891.         $sql .= " INNER JOIN pl.producteur p ";
  2892.         $sql .= " INNER JOIN p.utilisateur ut ";
  2893.         $sql .= " INNER JOIN li.entrepot e ";
  2894.         $sql .= " INNER JOIN l.fournisseur f ";
  2895.         $sql .= " INNER JOIN f.setrouvers s ";
  2896.         $sql .= " INNER JOIN s.utilisateur u ";
  2897.         $sql .= " INNER JOIN s.ville v ";
  2898.         $sql .= " INNER JOIN p.surfaceannees sa ";
  2899.         //$sql .= " INNER JOIN sa.surface sf ";            
  2900.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  2901.         
  2902.         /**  debut critère recherche  * */
  2903.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  2904.         
  2905.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  2906.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  2907.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND p.id = :nomcol';
  2908.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  2909.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  2910.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  2911.         if ($silivre == '0' || $silivre == '') {            
  2912.         } else {
  2913.             if ($silivre == 1) {
  2914.                 $sql .= ' AND l.quantiteLivre =0';
  2915.             } elseif ($silivre == 2) {
  2916.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  2917.             } elseif ($silivre == 3) {
  2918.                 $sql .= ' AND c.etatCommande =2';
  2919.             } elseif ($silivre == 4) {
  2920.                 $sql .= ' AND l.quantiteLivre !=0';
  2921.             } else {
  2922.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  2923.             }
  2924.         }
  2925.         /** Fin critère recherche * */
  2926.         $sql .= ' GROUP BY p.id';
  2927.         //var_dump($silivre,$sql);exit;
  2928.         /**  debut parametres  * */
  2929.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  2930.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  2931.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  2932.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  2933.         $pageActuelleInt = (int) $pageActuelle;
  2934.         $nbParPageInt = (int) $nbParPage;
  2935.         if ($pageActuelleInt 1) {
  2936.             $pageActuelleInt 1;
  2937.         }
  2938.         if ($nbParPageInt 1) {
  2939.             $nbParPageInt 20;
  2940.         }
  2941.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  2942.         if ($nbTotalPage 1) {
  2943.             $nbTotalPage 1;
  2944.         }
  2945.         if ($pageActuelleInt $nbTotalPage) {
  2946.             $pageActuelleInt $nbTotalPage;
  2947.         }
  2948.         //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  2949.         //        $query->setMaxResults($articles_per_page);
  2950.         //        var_dump($total);exit;
  2951.                 //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  2952.         //        return $query->getResult();
  2953.         //        $query = $qb->getQuery();
  2954.         $query $this->_em->createQuery($sql);
  2955.         $query->setParameters($param);
  2956.         //       var_dump( $query->getSQL());exit;
  2957. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  2958. //        $query->setMaxResults($nbParPageInt);
  2959. //        $rep['nbParPage'] = $nbParPage;
  2960. //        $rep['pageActuelle'] = $pageActuelle;
  2961. //        $rep['nbTotal'] = $nbTotal;
  2962. //        $rep['nbTotalPage'] = $nbTotalPage;
  2963. //        $rep['data'] = new Paginator($query);
  2964.         return $query->getResult();
  2965.     }    
  2966.     
  2967.     
  2968. public function getApiFournisseurSemence($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod=0$typeLimite 0$nbParPage 20$pageActuelle 1) {
  2969.         $param = array();
  2970.         $datedebarray = array();
  2971.         $datefinarray = array();
  2972.         $nbTotal 10000;        
  2973.        /* if ($datedeb == 0 && $datefin == 0) {
  2974.             $dateJour = new \DateTime();
  2975.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  2976.             $datedeb = $premierDate->format("d/m/Y");
  2977.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  2978.             $datefin = $dateMoi->format("d/m/Y");
  2979.         }    */    
  2980.         //heure debut
  2981.         $datedebarray $this->traiterDateFormat($datedeb);        
  2982.         $datefinarray $this->traiterDateFormat($datefin);
  2983.         //var_dump($datedeb, $datefin);exit;
  2984.         $paramdeb implode("-"$datedebarray);
  2985.         $paramfin implode("-"$datefinarray);
  2986.     
  2987.         $sql "SELECT DISTINCT c.id, c.dateCommande as dateSemence,c.etatCommande as etatSemence, c.refBonCommande as refSemence,  f.nomFournisseur, 
  2988.                   l.quantite as quantiteReelle, l.quantiteLivre as quantitePaye, 
  2989.                   l.montantHt as montant, 
  2990.                   u.nom as codeGenere, ac.infoAnneeCampagne,pr.id as idProd ,c.codeGenere, ac.id as idAnnee                      
  2991.                 FROM   App\Entity\stock\Commande c ";
  2992.          $sql .= " INNER JOIN c.utilisateur u ";        
  2993.         $sql .= " INNER JOIN c.lignecommandes l ";
  2994.         $sql .= " INNER JOIN l.producteur pr ";
  2995.         $sql .= " INNER JOIN l.fournisseur f ";
  2996.         $sql .= " INNER JOIN c.anneecampagne ac  ";
  2997.         //$sql .= " INNER JOIN f.setrouvers s ";
  2998.        
  2999.         //$sql .= " INNER JOIN s.ville v ";
  3000.          
  3001.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  3002.         /**  debut critère recherche  * */
  3003.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3004.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  3005.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  3006.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  3007.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3008.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  3009.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3010.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  3011.         if ($silivre == '0' || $silivre == '') {
  3012.             
  3013.         } else {
  3014.             if ($silivre == 1) {
  3015.                 $sql .= ' AND l.quantiteLivre =0';
  3016.             } elseif ($silivre == 2) {
  3017.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3018.             } elseif ($silivre == 3) {
  3019.                 $sql .= ' AND c.etatCommande =2';
  3020.             } elseif ($silivre == 4) {
  3021.                 $sql .= ' AND l.quantiteLivre !=0';
  3022.             } else {
  3023.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  3024.             }
  3025.         }
  3026.         /** Fin critère recherche * */
  3027.         $sql .= ' ORDER BY c.id DESC ';
  3028.         //var_dump($silivre,$sql);exit;
  3029.         /**  debut parametres  * */
  3030.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3031.         ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  3032.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  3033.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3034.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3035.         $pageActuelleInt = (int) $pageActuelle;
  3036.         $nbParPageInt = (int) $nbParPage;
  3037.         if ($pageActuelleInt 1) {
  3038.             $pageActuelleInt 1;
  3039.         }
  3040.         if ($nbParPageInt 1) {
  3041.             $nbParPageInt 20;
  3042.         }
  3043.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  3044.         if ($nbTotalPage 1) {
  3045.             $nbTotalPage 1;
  3046.         }
  3047.         if ($pageActuelleInt $nbTotalPage) {
  3048.             $pageActuelleInt $nbTotalPage;
  3049.         }
  3050.         //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  3051.         //        $query->setMaxResults($articles_per_page);
  3052.                //var_dump($sql);exit;
  3053.                 //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  3054.         //        return $query->getResult();
  3055.         //        $query = $qb->getQuery();
  3056.         $query $this->_em->createQuery($sql);
  3057.         $query->setParameters($param);
  3058.         if ($typeLimite == 1) {
  3059.             $query->setMaxResults(5);
  3060.         }
  3061.       //      var_dump( $query->getSQL());exit;
  3062.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  3063.         //        $query->setMaxResults($nbParPageInt);
  3064.         //        $rep['nbParPage'] = $nbParPage;
  3065.         //        $rep['pageActuelle'] = $pageActuelle;
  3066.         //        $rep['nbTotal'] = $nbTotal;
  3067.         //        $rep['nbTotalPage'] = $nbTotalPage;
  3068.         //        $rep['data'] = new Paginator($query);
  3069.         return $query->getResult();
  3070.     }
  3071.     
  3072.     
  3073.     
  3074.     
  3075. public function getApiFournisseurProducteurSemence($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod=0$typeLimite 0$nbParPage 20$pageActuelle 1) {
  3076.         $param = array();
  3077.         $datedebarray = array();
  3078.         $datefinarray = array();
  3079.         $nbTotal 10000;        
  3080.        /* if ($datedeb == 0 && $datefin == 0) {
  3081.             $dateJour = new \DateTime();
  3082.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  3083.             $datedeb = $premierDate->format("d/m/Y");
  3084.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  3085.             $datefin = $dateMoi->format("d/m/Y");
  3086.         }    */    
  3087.         //heure debut
  3088.         $datedebarray $this->traiterDateFormat($datedeb);        
  3089.         $datefinarray $this->traiterDateFormat($datefin);
  3090.         //var_dump($datedeb, $datefin);exit;
  3091.         $paramdeb implode("-"$datedebarray);
  3092.         $paramfin implode("-"$datefinarray);
  3093.     
  3094.         $sql "SELECT DISTINCT c.id, c.dateCommande as dateSemence,c.etatCommande as etatSemence, c.refBonCommande as refSemence,  f.nomFournisseur, 
  3095.                   l.quantite as quantiteReelle, l.quantiteLivre as quantitePaye, 
  3096.                   l.montantHt as montant, v.nomVille, 
  3097.                   u.nom as codeGenere, ac.infoAnneeCampagne,pr.id as idProd ,c.codeGenere, ac.id as idAnnee                      
  3098.                 FROM   App\Entity\stock\Commande c ";
  3099.                 
  3100.         $sql .= " INNER JOIN c.lignecommandes l ";
  3101.         $sql .= " INNER JOIN l.producteur pr ";
  3102.         $sql .= " INNER JOIN pr.fournisseurproducteurs fp ";
  3103.         $sql .= " INNER JOIN fp.fournisseur f ";
  3104.         $sql .= " INNER JOIN c.anneecampagne ac  ";
  3105.         $sql .= " INNER JOIN f.setrouvers s ";
  3106.         $sql .= " INNER JOIN s.utilisateur u ";
  3107.         $sql .= " INNER JOIN s.ville v ";
  3108.          
  3109.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  3110.         /**  debut critère recherche  * */
  3111.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3112.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  3113.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  3114.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  3115.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3116.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  3117.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3118.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  3119.         if ($silivre == '0' || $silivre == '') {
  3120.             
  3121.         } else {
  3122.             if ($silivre == 1) {
  3123.                 $sql .= ' AND l.quantiteLivre =0';
  3124.             } elseif ($silivre == 2) {
  3125.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3126.             } elseif ($silivre == 3) {
  3127.                 $sql .= ' AND c.etatCommande =2';
  3128.             } elseif ($silivre == 4) {
  3129.                 $sql .= ' AND l.quantiteLivre !=0';
  3130.             } else {
  3131.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  3132.             }
  3133.         }
  3134.         /** Fin critère recherche * */
  3135.         $sql .= ' ORDER BY c.id DESC ';
  3136.         //var_dump($silivre,$sql);exit;
  3137.         /**  debut parametres  * */
  3138.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3139.         ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  3140.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  3141.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3142.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3143.         $pageActuelleInt = (int) $pageActuelle;
  3144.         $nbParPageInt = (int) $nbParPage;
  3145.         if ($pageActuelleInt 1) {
  3146.             $pageActuelleInt 1;
  3147.         }
  3148.         if ($nbParPageInt 1) {
  3149.             $nbParPageInt 20;
  3150.         }
  3151.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  3152.         if ($nbTotalPage 1) {
  3153.             $nbTotalPage 1;
  3154.         }
  3155.         if ($pageActuelleInt $nbTotalPage) {
  3156.             $pageActuelleInt $nbTotalPage;
  3157.         }
  3158.         //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  3159.         //        $query->setMaxResults($articles_per_page);
  3160.         //        var_dump($total);exit;
  3161.                 //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  3162.         //        return $query->getResult();
  3163.         //        $query = $qb->getQuery();
  3164.         $query $this->_em->createQuery($sql);
  3165.         $query->setParameters($param);
  3166.         if ($typeLimite == 1) {
  3167.             $query->setMaxResults(5);
  3168.         }
  3169.       //      var_dump( $query->getSQL());exit;
  3170.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  3171.         //        $query->setMaxResults($nbParPageInt);
  3172.         //        $rep['nbParPage'] = $nbParPage;
  3173.         //        $rep['pageActuelle'] = $pageActuelle;
  3174.         //        $rep['nbTotal'] = $nbTotal;
  3175.         //        $rep['nbTotalPage'] = $nbTotalPage;
  3176.         //        $rep['data'] = new Paginator($query);
  3177.         return $query->getResult();
  3178.     }
  3179.     
  3180. public function getApiNewFournisseurProducteurSemence($nomcol$datefin$datedeb$tabVille$util$silivre$numcom$prod=0$typeLimite 0$nbParPage 20$pageActuelle 1,$niveau=4$abonneId=0) {
  3181.         $param = array();
  3182.         $datedebarray = array();
  3183.         $datefinarray = array();
  3184.         $nbTotal 10000;        
  3185.        /* if ($datedeb == 0 && $datefin == 0) {
  3186.             $dateJour = new \DateTime();
  3187.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  3188.             $datedeb = $premierDate->format("d/m/Y");
  3189.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  3190.             $datefin = $dateMoi->format("d/m/Y");
  3191.         }    */    
  3192.         //heure debut
  3193.         $datedebarray $this->traiterDateFormat($datedeb);        
  3194.         $datefinarray $this->traiterDateFormat($datefin);
  3195.         //var_dump($datedeb, $datefin);exit;
  3196.         $paramdeb implode("-"$datedebarray);
  3197.         $paramfin implode("-"$datefinarray);
  3198.         $infoVille $this->getStringSqlVille($niveau);
  3199.          
  3200.         $sql "SELECT DISTINCT c.id, c.dateCommande as dateSemence,c.etatCommande as etatSemence, c.refBonCommande as refSemence,  f.nomFournisseur, 
  3201.                   l.quantite as quantiteReelle, l.quantiteLivre as quantitePaye, 
  3202.                   l.montantHt as montant, v3.nomVille, 
  3203.                   u.nom as codeGenere, ac.infoAnneeCampagne,p.id as idProd ,c.codeGenere, ac.id as idAnnee                      
  3204.                 FROM   App\Entity\stock\Commande c ";
  3205.                 
  3206.         $sql .= " INNER JOIN c.lignecommandes l ";
  3207.         $sql .= " INNER JOIN l.producteur p ";
  3208.         $sql .= " INNER JOIN l.fournisseur f ";
  3209.         $sql .= " INNER JOIN c.anneecampagne ac  ";
  3210.         $sql .= " INNER JOIN p.utilisateur u ";
  3211.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' INNER JOIN  c.abonne a ';
  3212.         $sql .= $infoVille[0];
  3213.         
  3214.                  
  3215.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  3216.         /**  debut critère recherche  * */
  3217.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3218.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  3219.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  3220.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $sql .= ' AND a.id = :abonneId';
  3221.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  3222.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3223.         
  3224.                if($tabVille !=0){    
  3225.             
  3226.             if($prod != 1){
  3227.                  $i=0;
  3228.                 foreach($tabVille as $uneVille){
  3229.                     if($i == 0){
  3230.                         $sql .= " AND v3.id = :ville".$uneVille->getVille()->getId()."";
  3231.                         //var_dump($uneVille->getId());
  3232.                     }else{
  3233.                         $sql .= " OR v3.id = :ville".$uneVille->getVille()->getId()."";
  3234.                     }
  3235.                     $i++;
  3236.                     //$tabProduitUser[] = $unInfoProduit->getId();            
  3237.                }    
  3238.                 //( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  3239.             }else{
  3240.                 ( $tabVille == '0' || $tabVille == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  3241.             }    
  3242.         }
  3243. //var_dump($niveau, $sql);exit;
  3244.         $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3245.         
  3246.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  3247.         if ($silivre == '0' || $silivre == '') {
  3248.             
  3249.         } else {
  3250.             if ($silivre == 1) {
  3251.                 $sql .= ' AND l.quantiteLivre =0';
  3252.             } elseif ($silivre == 2) {
  3253.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3254.             } elseif ($silivre == 3) {
  3255.                 $sql .= ' AND c.etatCommande =2';
  3256.             } elseif ($silivre == 4) {
  3257.                 $sql .= ' AND l.quantiteLivre !=0';
  3258.             } else {
  3259.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  3260.             }
  3261.         }
  3262.         /** Fin critère recherche * */
  3263.         $sql .= ' ORDER BY c.id DESC ';
  3264.         //var_dump($silivre,$sql);exit;
  3265.         /**  debut parametres  * */
  3266.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3267.         ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  3268.         ( $abonneId == '0' || $abonneId == '') ? $sql .= '' $param['abonneId'] = $abonneId;
  3269.        // ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  3270.         $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3271.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3272.         if($tabVille !=0){    
  3273.              if($prod != 1){
  3274.                 foreach($tabVille as $uneVille){
  3275.                     $param["ville".$uneVille->getVille()->getId().""] = $uneVille->getVille()->getId();            
  3276.                  }
  3277.              }else{
  3278.                  ( $tabVille == '0' || $tabVille == '') ? $sql .= '' $param['ville'] = $tabVille;
  3279.              }
  3280.          }
  3281.         $pageActuelleInt = (int) $pageActuelle;
  3282.         $nbParPageInt = (int) $nbParPage;
  3283.         if ($pageActuelleInt 1) {
  3284.             $pageActuelleInt 1;
  3285.         }
  3286.         if ($nbParPageInt 1) {
  3287.             $nbParPageInt 20;
  3288.         }
  3289.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  3290.         if ($nbTotalPage 1) {
  3291.             $nbTotalPage 1;
  3292.         }
  3293.         if ($pageActuelleInt $nbTotalPage) {
  3294.             $pageActuelleInt $nbTotalPage;
  3295.         }
  3296.         //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  3297.         //        $query->setMaxResults($articles_per_page);
  3298.         //        var_dump($total);exit;
  3299.                 //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  3300.         //        return $query->getResult();
  3301.         //        $query = $qb->getQuery();
  3302.         $query $this->_em->createQuery($sql);
  3303.         $query->setParameters($param);
  3304.         if ($typeLimite == 1) {
  3305.             $query->setMaxResults(5);
  3306.         }
  3307.       //      var_dump( $query->getSQL());exit;
  3308.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  3309.         //        $query->setMaxResults($nbParPageInt);
  3310.         //        $rep['nbParPage'] = $nbParPage;
  3311.         //        $rep['pageActuelle'] = $pageActuelle;
  3312.         //        $rep['nbTotal'] = $nbTotal;
  3313.         //        $rep['nbTotalPage'] = $nbTotalPage;
  3314.         //        $rep['data'] = new Paginator($query);
  3315.         return $query->getResult();
  3316.     }    
  3317.     
  3318.     
  3319. public function getApiFournisseurSumSemence($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod=0$typeLimite 0$nbParPage 20$pageActuelle 1) {
  3320.         $param = array();
  3321.         $datedebarray = array();
  3322.         $datefinarray = array();
  3323.         $nbTotal 10000;        
  3324.        /* if ($datedeb == 0 && $datefin == 0) {
  3325.             $dateJour = new \DateTime();
  3326.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  3327.             $datedeb = $premierDate->format("d/m/Y");
  3328.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  3329.             $datefin = $dateMoi->format("d/m/Y");
  3330.         }    */    
  3331.         //traitement des tableaux
  3332.         //var_dump($util);exit;
  3333.         //heure debut
  3334.         $datedebarray $this->traiterDateFormat($datedeb);        
  3335.         $datefinarray $this->traiterDateFormat($datefin);
  3336.         //var_dump($datedeb, $datefin);exit;
  3337.         $paramdeb implode("-"$datedebarray);
  3338.         $paramfin implode("-"$datefinarray);
  3339.         //var_dump($paramdeb,$paramfin);exit;     
  3340.         $sql "SELECT SUM(l.quantiteLivre) as quantiteTotale,  f.id,
  3341.                   l.quantite as quantiteReelle, l.quantiteLivre as quantitePesee, 
  3342.                   l.montantHt as montant, v.nomVille, 
  3343.                   u.nom as codeGenere, ac.infoAnneeCampagne                       
  3344.                 FROM   App\Entity\stock\Commande c ";
  3345.                 
  3346.         $sql .= " INNER JOIN c.lignecommandes l ";
  3347.         $sql .= " INNER JOIN l.producteur pr ";
  3348.         $sql .= " INNER JOIN l.fournisseur f ";
  3349.         $sql .= " INNER JOIN c.anneecampagne ac  ";
  3350.         $sql .= " INNER JOIN f.setrouvers s ";
  3351.         $sql .= " INNER JOIN s.utilisateur u ";
  3352.         $sql .= " INNER JOIN s.ville v ";
  3353.          
  3354.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  3355.         /**  debut critère recherche  * */
  3356.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3357.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  3358.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  3359.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  3360.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3361.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  3362.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3363.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  3364.         if ($silivre == '0' || $silivre == '') {
  3365.             
  3366.         } else {
  3367.             if ($silivre == 1) {
  3368.                 $sql .= ' AND l.quantiteLivre =0';
  3369.             } elseif ($silivre == 2) {
  3370.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3371.             } elseif ($silivre == 3) {
  3372.                 $sql .= ' AND c.etatCommande =2';
  3373.             } elseif ($silivre == 4) {
  3374.                 $sql .= ' AND l.quantiteLivre !=0';
  3375.             } else {
  3376.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  3377.             }
  3378.         }
  3379.         /** Fin critère recherche * */
  3380.         $sql .= ' GROUP BY f.id ORDER BY c.id DESC ';
  3381.         //var_dump($silivre,$sql);exit;
  3382.         /**  debut parametres  * */
  3383.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3384.         ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  3385.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  3386.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3387.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3388.         $pageActuelleInt = (int) $pageActuelle;
  3389.         $nbParPageInt = (int) $nbParPage;
  3390.         if ($pageActuelleInt 1) {
  3391.             $pageActuelleInt 1;
  3392.         }
  3393.         if ($nbParPageInt 1) {
  3394.             $nbParPageInt 20;
  3395.         }
  3396.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  3397.         if ($nbTotalPage 1) {
  3398.             $nbTotalPage 1;
  3399.         }
  3400.         if ($pageActuelleInt $nbTotalPage) {
  3401.             $pageActuelleInt $nbTotalPage;
  3402.         }
  3403.         //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  3404.         //        $query->setMaxResults($articles_per_page);
  3405.         //        var_dump($total);exit;
  3406.                 //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  3407.         //        return $query->getResult();
  3408.         //        $query = $qb->getQuery();
  3409.         $query $this->_em->createQuery($sql);
  3410.         $query->setParameters($param);
  3411.         if ($typeLimite == 1) {
  3412.             $query->setMaxResults(5);
  3413.         }
  3414.       //      var_dump( $query->getSQL());exit;
  3415.         //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  3416.         //        $query->setMaxResults($nbParPageInt);
  3417.         //        $rep['nbParPage'] = $nbParPage;
  3418.         //        $rep['pageActuelle'] = $pageActuelle;
  3419.         //        $rep['nbTotal'] = $nbTotal;
  3420.         //        $rep['nbTotalPage'] = $nbTotalPage;
  3421.         //        $rep['data'] = new Paginator($query);
  3422.         return $query->getResult();
  3423.     }
  3424.     public function getLigneCommandeOperation($idProd$idAnnee) {
  3425.         $query $this->_em->createQuery(
  3426.                         'SELECT l
  3427.                         FROM App\Entity\stock\LigneCommande l 
  3428.                         INNER JOIN l.commande c
  3429.                         INNER JOIN c.anneecampagne a
  3430.                         INNER JOIN l.producteur p
  3431.                         WHERE p.id = :idProd and a.id =:idAnnee'
  3432.                 )->setParameters(array('idProd'=>$idProd'idAnnee'=>$idAnnee));
  3433.         return $query->getResult();
  3434.     }
  3435.     
  3436.     public function getApiFournisseurSumSemenceByAnnee($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod$anneeCampagne) {
  3437.         $param = array();
  3438.         $datedebarray = array();
  3439.         $datefinarray = array();
  3440.         $nbTotal 10000;        
  3441.        /* if ($datedeb == 0 && $datefin == 0) {
  3442.             $dateJour = new \DateTime();
  3443.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  3444.             $datedeb = $premierDate->format("d/m/Y");
  3445.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  3446.             $datefin = $dateMoi->format("d/m/Y");
  3447.         }    */    
  3448.         //traitement des tableaux
  3449.         //var_dump($util);exit;
  3450.         //heure debut
  3451.         
  3452.         $datedebarray $this->traiterDateFormat($datedeb);        
  3453.         $datefinarray $this->traiterDateFormat($datefin);
  3454.         //var_dump($datedeb, $datefin);exit;
  3455.         $paramdeb implode("-"$datedebarray);
  3456.         $paramfin implode("-"$datefinarray);
  3457.         //var_dump($paramdeb,$paramfin);exit;     
  3458.         $sql "SELECT pr.id, c.codeCommande, SUM(l.quantite) as quantiteTotal, l.montantHt, u.nom, ac.infoAnneeCampagne                       
  3459.                 FROM   App\Entity\stock\Commande c ";                
  3460.         $sql .= " INNER JOIN c.lignecommandes l ";
  3461.         $sql .= " INNER JOIN l.producteur pr ";
  3462.         $sql .= " INNER JOIN c.fournisseur f ";
  3463.         $sql .= " INNER JOIN c.anneecampagne ac  ";
  3464.         $sql .= " INNER JOIN pr.utilisateur u ";
  3465.         //$sql .= " INNER JOIN s.ville v ";
  3466.          
  3467.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  3468.         /**  debut critère recherche  * */
  3469.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3470.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  3471.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  3472.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  3473.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3474.         ( $anneeCampagne == '0' || $anneeCampagne == '') ? $sql .= '' $sql .= ' AND ac.id = :idAnnee';
  3475.       //  ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  3476.         $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3477.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  3478.         if ($silivre == '0' || $silivre == '') {
  3479.             
  3480.         } else {
  3481.             if ($silivre == 1) {
  3482.                 $sql .= ' AND l.quantiteLivre =0';
  3483.             } elseif ($silivre == 2) {
  3484.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3485.             } elseif ($silivre == 3) {
  3486.                 $sql .= ' AND c.etatCommande =2';
  3487.             } elseif ($silivre == 4) {
  3488.                 $sql .= ' AND l.quantiteLivre !=0';
  3489.             } else {
  3490.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  3491.             }
  3492.         }
  3493.         /** Fin critère recherche * */
  3494.           $sql .= ' GROUP BY pr.id ';
  3495.         //var_dump($sql);exit;
  3496.        // var_dump($sql);exit;
  3497.         //var_dump($silivre,$sql);exit;
  3498.         /**  debut parametres  * */
  3499.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3500.         ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  3501.         ( $anneeCampagne == '0' || $anneeCampagne == '') ? $sql .= '' $param['idAnnee'] = $anneeCampagne;
  3502.      //   ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  3503.         $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3504.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3505.       
  3506.         $query $this->_em->createQuery($sql);
  3507.         $query->setParameters($param);
  3508.       // var_dump($query->getSQL());exit;
  3509.         return $query->getResult();
  3510.     }
  3511.     
  3512.     public function getApiFournisseurSumSemenceByAnneeDetail($nomcol$datefin$datedeb$ville$util$silivre$numcom$prod$anneeCampagne,$niveau=4,$tabVille) {
  3513.         $param = array();
  3514.         $datedebarray = array();
  3515.         $datefinarray = array();
  3516.         $nbTotal 10000;        
  3517.        /* if ($datedeb == 0 && $datefin == 0) {
  3518.             $dateJour = new \DateTime();
  3519.             $premierDate = $this->dateDuPremierDuMois($dateJour);
  3520.             $datedeb = $premierDate->format("d/m/Y");
  3521.             $dateMoi = $premierDate->add(new DateInterval('P1M'));
  3522.             $datefin = $dateMoi->format("d/m/Y");
  3523.         }    */    
  3524.         //traitement des tableaux
  3525.         //var_dump($util);exit;
  3526.         //heure debut
  3527.         $infoVille $this->getStringSqlVille($niveau);
  3528.         $datedebarray $this->traiterDateFormat($datedeb);        
  3529.         $datefinarray $this->traiterDateFormat($datefin);
  3530.         //var_dump($datedeb, $datefin);exit;
  3531.         $paramdeb implode("-"$datedebarray);
  3532.         $paramfin implode("-"$datefinarray);
  3533.         //var_dump($paramdeb,$paramfin);exit;     
  3534.         $sql "SELECT p.id, c.codeCommande, SUM(l.quantite) as quantiteTotal, l.montantHt, u.nom, ac.infoAnneeCampagne                       
  3535.                 FROM   App\Entity\stock\Commande c ";                
  3536.         $sql .= " INNER JOIN c.lignecommandes l ";
  3537.         $sql .= " INNER JOIN l.producteur p";
  3538.         $sql .= " INNER JOIN c.fournisseur f ";
  3539.         $sql .= " INNER JOIN c.anneecampagne ac  ";
  3540.         $sql .= " INNER JOIN p.utilisateur u ";
  3541.         $sql .= $infoVille[0];
  3542.          
  3543.         $sql .= " WHERE  c.annule != 1 and  1=1 ";
  3544.         /**  debut critère recherche  * */
  3545.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3546.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  3547.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  3548.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND p.id = :prod';
  3549.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3550.         ( $anneeCampagne == '0' || $anneeCampagne == '') ? $sql .= '' $sql .= ' AND ac.id = :idAnnee';
  3551.       //  ( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
  3552.         $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3553.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  3554.         //( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= $infoVille[1];
  3555.         $i 0;
  3556.         
  3557.         if($tabVille != 0){
  3558.         foreach($tabVille as $uneVille){
  3559.             if($i == 0){
  3560.                 $sql .= " AND ( v".$niveau.".id = :ville".$uneVille->getVille()->getId()."";
  3561.             }else{
  3562.                 $sql .= " OR v".$niveau.".id = :ville".$uneVille->getVille()->getId()."";
  3563.             }
  3564.             $i++;
  3565.             //$tabProduitUser[] = $unInfoProduit->getId();
  3566.             
  3567.         }
  3568.         $sql .= ")";
  3569.     }
  3570.         if ($silivre == '0' || $silivre == '') {
  3571.             
  3572.         } else {
  3573.             if ($silivre == 1) {
  3574.                 $sql .= ' AND l.quantiteLivre =0';
  3575.             } elseif ($silivre == 2) {
  3576.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3577.             } elseif ($silivre == 3) {
  3578.                 $sql .= ' AND c.etatCommande =2';
  3579.             } elseif ($silivre == 4) {
  3580.                 $sql .= ' AND l.quantiteLivre !=0';
  3581.             } else {
  3582.                 $sql .= ' AND (l.quantiteLivre !=0 AND c.etatCommande !=2) or l.quantiteLivre =0  ';
  3583.             }
  3584.         }
  3585.         /** Fin critère recherche * */
  3586.           $sql .= ' GROUP BY p.id ';
  3587.           //$sql .= ' ORDER BY p.id ';
  3588.         //var_dump($ville,$sql);exit;
  3589.        //var_dump($sql);exit;
  3590.         //var_dump($silivre,$sql);exit;
  3591.         /**  debut parametres  * */
  3592.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3593.         ( $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  3594.         ( $anneeCampagne == '0' || $anneeCampagne == '') ? $sql .= '' $param['idAnnee'] = $anneeCampagne;
  3595.      //   ( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  3596.         $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3597.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3598.         //( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  3599.         if($tabVille != 0){
  3600.             foreach($tabVille as $uneVille){
  3601.                 //$tabProduitUser[] = $unInfoProduit->getId();
  3602.                 $param["ville".$uneVille->getVille()->getId().""] = $uneVille->getVille()->getId();
  3603.             } 
  3604.         }
  3605.         $query $this->_em->createQuery($sql);
  3606.         $query->setParameters($param);
  3607.       // var_dump($query->getSQL());exit;
  3608.         return $query->getResult();
  3609.     }
  3610.     
  3611.      public function getStatsRechercheLivraisonTotalProducteur($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1,$datedebchoisi=0) {
  3612.         $param = array();
  3613.         $datedebarray = array();
  3614.         $datefinarray = array();
  3615.         $nbTotal 10000;
  3616.        
  3617.        
  3618.        
  3619.         if ($datedeb == && $datefin == 0) {
  3620.             $dateJour = new \DateTime();
  3621.             $premierDate $this->dateDuPremierDuMois($dateJour);
  3622.             $datedeb $premierDate->format("d/m/Y");
  3623.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  3624.             $datefin $dateMoi->format("d/m/Y");
  3625.         }
  3626.          
  3627.         //traitement des tableaux
  3628.         //heure debut
  3629.         $datedebarray $this->traiterDateFormat($datedeb);
  3630.         $datefinarray $this->traiterDateFormat($datefin);
  3631.         $paramdeb implode("-"$datedebarray);
  3632.         $paramfin implode("-"$datefinarray);
  3633.          if($datedebchoisi != 0){
  3634.             $objetDateDebDefault \DateTime::createFromFormat("d/m/Y",$datedeb);
  3635.             $objetDateDeb \DateTime::createFromFormat('d/m/Y',$datedebchoisi);
  3636.            // var_dump($datedebchoisi, $objetDateDebDefault,$objetDateDeb);exit;
  3637.             if( $objetDateDeb<$objetDateDebDefault){
  3638.                 $paramdeb $objetDateDebDefault->format("Y-m-d") ;
  3639.             }else{
  3640.                 $paramdeb $objetDateDeb->format("Y-m-d") ;
  3641.             }
  3642.         }
  3643.         $sql "SELECT  SUM(i.nbreTotalLivre*p.infoPrixRigueur) as montantTotalLivraison                    
  3644.                   FROM   App\Entity\stock\InfoLivrer i ";    
  3645.         $sql .= " INNER JOIN i.livrers l ";
  3646.              
  3647.         $sql .= " INNER JOIN i.prixrigueur p ";
  3648.        
  3649.         $sql .= " INNER JOIN l.lignecommande li ";    
  3650.            $sql .= " INNER JOIN li.producteur f ";
  3651.         $sql .= " INNER JOIN f.utilisateur u ";
  3652.         $sql .= " INNER JOIN u.ville v ";
  3653.         $sql .= " WHERE  1=1 ";
  3654.         /**  debut critère recherche  * */
  3655.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3656.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  3657.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin "' " $sql .= '';
  3658.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3659.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  3660.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3661.         
  3662.         if ($silivre == '0' || $silivre == '') {
  3663.             
  3664.         } else {
  3665.             if ($silivre == 1) {
  3666.                // $sql .= ' AND l.quantiteLivre =0';
  3667.             } elseif ($silivre == 2) {
  3668.                // $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3669.             } else {
  3670.                // $sql .= ' AND c.etatCommande =2';
  3671.             }
  3672.         }
  3673.         /** Fin critère recherche * */
  3674. //        $sql .= ' ORDER BY l.id DESC ';  
  3675.     //   var_dump($sql);exit;
  3676.         
  3677.         /**  debut parametres  * */
  3678.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3679.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  3680.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3681.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3682.         $pageActuelleInt = (int) $pageActuelle;
  3683.         $nbParPageInt = (int) $nbParPage;
  3684.         if ($pageActuelleInt 1) {
  3685.             $pageActuelleInt 1;
  3686.         }
  3687.         if ($nbParPageInt 1) {
  3688.             $nbParPageInt 20;
  3689.         }
  3690.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  3691.         if ($nbTotalPage 1) {
  3692.             $nbTotalPage 1;
  3693.         }
  3694.         if ($pageActuelleInt $nbTotalPage) {
  3695.             $pageActuelleInt $nbTotalPage;
  3696.         }
  3697. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  3698. //        $query->setMaxResults($articles_per_page);
  3699. //        var_dump($total);exit;
  3700.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  3701. //        return $query->getResult();
  3702. //        $query = $qb->getQuery();
  3703.         $query $this->_em->createQuery($sql);
  3704.         $query->setParameters($param);
  3705.       // var_dump( $query->getSQL());exit;
  3706. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  3707. //        $query->setMaxResults($nbParPageInt);
  3708. //        $rep['nbParPage'] = $nbParPage;
  3709. //        $rep['pageActuelle'] = $pageActuelle;
  3710. //        $rep['nbTotal'] = $nbTotal;
  3711. //        $rep['nbTotalPage'] = $nbTotalPage;
  3712. //        $rep['data'] = new Paginator($query);
  3713. //       var_dump($query->getSQL());exit;
  3714.         $montantTotal = array();
  3715.         
  3716.         if($datedebchoisi != 0){
  3717.             $objetDateDebDefault \DateTime::createFromFormat("d/m/Y",$datedeb);
  3718.             $objetDateDeb \DateTime::createFromFormat("d/m/Y",$datedebchoisi);
  3719.             if( $objetDateDeb<$objetDateDebDefault){
  3720.                 $totalMoisAvantMisAuPoint $this->getRechercheSoldeInfoLivrer($nomcol$ville$datedebchoisi$datedeb,0);        
  3721.             }else{
  3722.                 $totalMoisAvantMisAuPoint[0]["montantTotalLivraison"] =0;
  3723.             }
  3724.             
  3725.         }else{
  3726.             
  3727.             $totalMoisAvantMisAuPoint $this->getRechercheSoldeInfoLivrer($nomcol$ville"01/05/2015""01/09/2017",0);
  3728.  
  3729.         }
  3730.          
  3731.         
  3732.         
  3733.         $totalSecondEncours $query->getResult();
  3734.        // var_dump($totalSecondEncours[0]["montantTotalLivraison"],$totalMoisAvantMisAuPoint[0]["montantTotalLivraison"],'|');
  3735.         $montantTotal[0]["montantTotalLivraison"] = $totalSecondEncours[0]["montantTotalLivraison"]+$totalMoisAvantMisAuPoint[0]["montantTotalLivraison"]  ;
  3736.         return $montantTotal ;
  3737.     }
  3738.     
  3739.     
  3740.         public function getSumQuantiteLivraisonTotalProducteur($nomcol$datefin$datedeb$ville$util$silivre$numcom$nbParPage 20$pageActuelle 1,$datedebchoisi=0) {
  3741.         $param = array();
  3742.         $datedebarray = array();
  3743.         $datefinarray = array();
  3744.         $nbTotal 10000;
  3745.         
  3746.        
  3747.         
  3748.         if ($datedeb == && $datefin == 0) {
  3749.             $dateJour = new \DateTime();
  3750.             $premierDate $this->dateDuPremierDuMois($dateJour);
  3751.             $datedeb =  "01/01/2014";//$premierDate->format("d/m/Y");
  3752.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  3753.             $datefin $dateMoi->format("d/m/Y");
  3754.         }
  3755.         //traitement des tableaux
  3756.         //heure debut
  3757.         $datedebarray $this->traiterDateFormat($datedeb);
  3758.         $datefinarray $this->traiterDateFormat($datefin);
  3759.         $paramdeb implode("-"$datedebarray);
  3760.         $paramfin implode("-"$datefinarray);
  3761. //var_dump($paramdeb,$paramfin);exit;
  3762.         $sql "SELECT  SUM(l.nbreLivre) as totalLivraison, SUM(l.nbreLivre*p.infoPrixRigueur) as montantTotalLivraison                     
  3763.                   FROM   App\Entity\stock\InfoLivrer i ";    
  3764.         $sql .= " INNER JOIN i.livrers l ";
  3765.              
  3766.           $sql .= " INNER JOIN i.prixrigueur p ";
  3767.        
  3768.             $sql .= " INNER JOIN l.lignecommande li ";    
  3769.            $sql .= " INNER JOIN li.producteur f ";
  3770.         $sql .= " INNER JOIN f.utilisateur u ";
  3771.         $sql .= " INNER JOIN u.ville v ";
  3772.         $sql .= " WHERE  1=1 ";
  3773.         /**  debut critère recherche  * */
  3774.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3775.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  i.dateLivraison >= " " '" $paramdeb "' " $sql .= '';
  3776.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  i.dateLivraison <= " " '" $paramfin "' " $sql .= '';
  3777.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3778.         ( $ville == '0' || $ville == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  3779.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3780.         
  3781.         if ($silivre == '0' || $silivre == '') {
  3782.             
  3783.         } else {
  3784.             if ($silivre == 1) {
  3785.                // $sql .= ' AND l.quantiteLivre =0';
  3786.             } elseif ($silivre == 2) {
  3787.                // $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3788.             } else {
  3789.                // $sql .= ' AND c.etatCommande =2';
  3790.             }
  3791.         }
  3792.         /** Fin critère recherche * */
  3793. //        $sql .= ' ORDER BY l.id DESC ';       
  3794.         /**  debut parametres  * */
  3795.         $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3796.         ( $ville == '0' || $ville == '') ? $sql .= '' $param['ville'] = $ville;
  3797.         ( $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3798.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3799.         $pageActuelleInt = (int) $pageActuelle;
  3800.         $nbParPageInt = (int) $nbParPage;
  3801.         if ($pageActuelleInt 1) {
  3802.             $pageActuelleInt 1;
  3803.         }
  3804.         if ($nbParPageInt 1) {
  3805.             $nbParPageInt 20;
  3806.         }
  3807.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  3808.         if ($nbTotalPage 1) {
  3809.             $nbTotalPage 1;
  3810.         }
  3811.         if ($pageActuelleInt $nbTotalPage) {
  3812.             $pageActuelleInt $nbTotalPage;
  3813.         }
  3814. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  3815. //        $query->setMaxResults($articles_per_page);
  3816. //        var_dump($total);exit;
  3817.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  3818. //        return $query->getResult();
  3819. //        $query = $qb->getQuery();
  3820.         $query $this->_em->createQuery($sql);
  3821.         $query->setParameters($param);
  3822.        //var_dump( $query->getSQL());exit;
  3823. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  3824. //        $query->setMaxResults($nbParPageInt);
  3825. //        $rep['nbParPage'] = $nbParPage;
  3826. //        $rep['pageActuelle'] = $pageActuelle;
  3827. //        $rep['nbTotal'] = $nbTotal;
  3828. //        $rep['nbTotalPage'] = $nbTotalPage;
  3829. //        $rep['data'] = new Paginator($query);
  3830. //       var_dump($query->getSQL());exit;
  3831.         $montantTotal = array();
  3832.         
  3833.         
  3834.         $totalSecondEncours $query->getResult();
  3835.         
  3836. //        $montantTotal[0]["montantTotalLivraison"] = $totalSecondEncours[0]["mont$totalLivreantTotalLivraison"]+$totalMoisAvantMisAuPoint[0]["montantTotalLivraison"]  ;
  3837.         return $totalSecondEncours ;
  3838.     }
  3839.     
  3840.      public function getStatsRechercheCommandeCapitalisation($nomcol$datefin$datedeb$tabVille$util$silivre$numcom$prod '0'$nbParPage 20$pageActuelle 1$niveau 4) {
  3841.         $param = array();
  3842.         $datedebarray = array();
  3843.         $datefinarray = array();
  3844.         $nbTotal 10000;
  3845.         $infoVille $this->getStringSqlVille($niveau);
  3846.         //var_dump($datedeb, $datefin);exit;
  3847.         if ($datedeb == && $datefin == 0) {
  3848.             $dateJour = new \DateTime();
  3849.             $premierDate $this->dateDuPremierDuMois($dateJour);
  3850.             $datedeb $premierDate->format("d/m/Y");
  3851.             $dateMoi $premierDate->add(new DateInterval('P1M'));
  3852.             $datefin $dateMoi->format("d/m/Y");
  3853.         }
  3854.         //traitement des tableaux
  3855.         //heure debut
  3856.         $datedebarray $this->traiterDateFormat($datedeb);
  3857.         $datefinarray $this->traiterDateFormat($datefin);
  3858.         $paramdeb implode("-"$datedebarray);
  3859.         $paramfin implode("-"$datefinarray);
  3860.         $sql "SELECT  sum(l.quantite)  as quantiteTotal,   sum(l.quantiteLivre)  as quantiteTotalLivre,  sum(c.montantCommande)  as montantTotal, sum(l.quantiteLivre*pri.infoPrixRigueur)   as montantTotalLivre  , sum(l.quantite*pri.infoPrixRigueur)   as montantSemence                       
  3861.                   FROM   App\Entity\stock\Commande c ";
  3862.         $sql .= " INNER JOIN c.lignecommandes l ";
  3863.         $sql .= " INNER JOIN l.prixrigueur pri ";
  3864.         $sql .= " INNER JOIN l.fournisseur f ";
  3865.         $sql .= " INNER JOIN l.produit pr ";
  3866.         
  3867.         if($prod != 1){
  3868.             $sql .= " INNER JOIN l.producteur p ";
  3869.             $sql .= $infoVille[0];
  3870.         }else{
  3871.             $sql .= " INNER JOIN f.setrouvers s ";
  3872.             $sql .= " INNER JOIN s.ville v ";    
  3873.             $sql .= " INNER JOIN s.utilisateur u ";
  3874.         }
  3875.         $sql .= " WHERE c.annule != 1 and  1=1 ";
  3876.         
  3877.         /**  debut critère recherche  * */
  3878.         // ( ($deb == null) || ($deb == 0) )? $sql.="' : $sql.=' AND  o.dateValeur >= :deb and o.dateValeur <= :fin ';
  3879.         $datedeb != && $datedeb != "" ) ? $sql .= " AND  c.dateCommande >= " " '" $paramdeb "' " $sql .= '';
  3880.         ( $datefin != && $datefin != "" ) ? $sql .= " AND  c.dateCommande <= " " '" $paramfin "' " $sql .= '';
  3881.          if($tabVille !=0){    
  3882.             
  3883.             if($prod != 1){
  3884.                  $i=0;
  3885.                 foreach($tabVille as $uneVille){
  3886.                     if($i == 0){
  3887.                         $sql .= " AND v3.id = :ville".$uneVille->getVille()->getId()."";
  3888.                         //var_dump($uneVille->getId());
  3889.                     }else{
  3890.                         $sql .= " OR v3.id = :ville".$uneVille->getVille()->getId()."";
  3891.                     }
  3892.                     $i++;
  3893.                     //$tabProduitUser[] = $unInfoProduit->getId();            
  3894.                }    
  3895.                 //( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
  3896.             }else{
  3897.                 ( $tabVille == '0' || $tabVille == '') ? $sql .= '' $sql .= ' AND v.id = :ville';
  3898.             }    
  3899.         }
  3900.         
  3901.         
  3902.         ( $prod == '0' || $prod == '') ? $sql .= '' $sql .= ' AND pr.id = :prod';
  3903.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $sql .= ' AND f.id = :nomcol';
  3904.         
  3905.         
  3906.         ( $util == '0' || $util == '') ? $sql .= '' $sql .= ' AND u.id =:util ';
  3907.         ( $numcom == '0' || $numcom == '') ? $sql .= '' $sql .= ' AND c.codeCommande = :numcom';
  3908.         
  3909.         if ($silivre == '0' || $silivre == '') {
  3910.             
  3911.         } else {
  3912.             if ($silivre == 1) {
  3913.                 $sql .= ' AND l.quantiteLivre =0';
  3914.             } elseif ($silivre == 2) {
  3915.                 $sql .= ' AND l.quantiteLivre !=0 AND c.etatCommande !=2 ';
  3916.             } else {
  3917.                 $sql .= ' AND c.etatCommande =2';
  3918.             }
  3919.         }
  3920.         /** Fin critère recherche * */
  3921.         $sql .= ' ORDER BY c.id DESC ';  
  3922.         
  3923.        
  3924.         /**  debut parametres  * */
  3925.         $prod == '0' || $prod == '') ? $sql .= '' $param['prod'] = $prod;
  3926.         ( $nomcol == '0' || $nomcol == '') ? $sql .= '' $param['nomcol'] = $nomcol;
  3927.         //( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
  3928.         $util == '0' || $util == '') ? $sql .= '' $param['util'] = $util;
  3929.         ($numcom == '0' || $numcom == '') ? $sql .= '' $param['numcom'] = $numcom;
  3930.         
  3931.         if($tabVille !=0){    
  3932.              if($prod != 1){
  3933.                 foreach($tabVille as $uneVille){
  3934.                     $param["ville".$uneVille->getVille()->getId().""] = $uneVille->getVille()->getId();            
  3935.                  }
  3936.              }else{
  3937.                  ( $tabVille == '0' || $tabVille == '') ? $sql .= '' $param['ville'] = $tabVille;
  3938.              }
  3939.          }
  3940.         $pageActuelleInt = (int) $pageActuelle;
  3941.         $nbParPageInt = (int) $nbParPage;
  3942.         if ($pageActuelleInt 1) {
  3943.             $pageActuelleInt 1;
  3944.         }
  3945.         if ($nbParPageInt 1) {
  3946.             $nbParPageInt 20;
  3947.         }
  3948.         $nbTotalPage = (int) ceil($nbTotal $nbParPage);
  3949.         if ($nbTotalPage 1) {
  3950.             $nbTotalPage 1;
  3951.         }
  3952.         if ($pageActuelleInt $nbTotalPage) {
  3953.             $pageActuelleInt $nbTotalPage;
  3954.         }
  3955. //        $query->setFirstResult(($page * $articles_per_page) - $articles_per_page);
  3956. //        $query->setMaxResults($articles_per_page);
  3957.        //var_dump($sql);exit;
  3958.         //var_dump($deb);var_dump($fin);var_dump($sql); var_dump($param);exit;
  3959. //        return $query->getResult();
  3960. //        $query = $qb->getQuery();
  3961.         $query $this->_em->createQuery($sql);
  3962.         $query->setParameters($param);
  3963.         //var_dump( $query->getSQL());exit;
  3964. //        $query->setFirstResult(($pageActuelleInt - 1) * $nbParPageInt);
  3965. //        $query->setMaxResults($nbParPageInt);
  3966. //        $rep['nbParPage'] = $nbParPage;
  3967. //        $rep['pageActuelle'] = $pageActuelle;
  3968. //        $rep['nbTotal'] = $nbTotal;
  3969. //        $rep['nbTotalPage'] = $nbTotalPage;
  3970. //        $rep['data'] = new Paginator($query);
  3971.       //  var_dump($query->getSQL());exit;
  3972.         return $query->getResult();
  3973.     }
  3974.       
  3975.     
  3976. }