src/Repository/stock/CommandeRepository.php line 3867

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