<?php
namespace App\Repository\stock;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use App\Types\user\TypeEtat;
use App\ControllerModel\user\paramUtilTrait;
use App\Entity\stock\Produit;
/**
* ProduitRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class ProduitRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Produit::class);
}
//
use paramUtilTrait;
/**
* Retourne tous les produits.
*
* @return type
*/
public function getAllProduit($abonneId)
{
$qb = $this->createQueryBuilder('r')
->innerJoin('r.abonne','a')
->where('r.etatProduit != '.TypeEtat::SUPPRIME)
// ->andWhere('r.seuilProduit = 2 ')
->andWhere('a.id=:abonneId')
->setParameter('abonneId',$abonneId)
->orderBy('r.id', 'ASC');
return $qb->getQuery()->getResult();
}
/**
* Retourne tous les produits.
*
* @return type
*/
public function getAllProduitSysteme()
{
$qb = $this->createQueryBuilder('r')
->where('r.etatProduit != '.TypeEtat::SUPPRIME)
->orderBy('r.id', 'ASC');
return $qb->getQuery()->getResult();
}
public function getAllProduitCategorieSysteme($idC) {
$sql = ' SELECT p '
.' FROM App\Entity\stock\Produit p '
.' INNER JOIN p.categorie c'
.' WHERE c.id =:idC AND p.etatProduit = 1 AND p.siSysteme = 1 ORDER By p.nomProduit ASC ';
$query = $this->_em->createQuery($sql);
$query->setParameters(array('idC'=>$idC));
return $query->getResult();
}
public function getAllProduitCategorie($idC) {
$sql = ' SELECT p '
.' FROM App\Entity\stock\Produit p '
.' INNER JOIN p.categorie c'
.' WHERE c.id =:idC AND p.etatProduit = 1 ORDER By p.nomProduit ASC ';
$query = $this->_em->createQuery($sql);
$query->setParameters(array('idC'=>$idC));
return $query->getResult();
}
/**
* Retourne tous les produits.
*
* @return type
*/
public function getAllProduitTransformation($abonneId=0)
{
$qb = $this->createQueryBuilder('r')
->innerJoin('r.abonne','a')
->where('r.etatProduit != '.TypeEtat::SUPPRIME)
->andWhere('r.siTransformation = 1 ')
->andWhere('a.id=:abonneId')
->setParameter('abonneId',$abonneId)
->orderBy('r.id', 'ASC');
return $qb->getQuery()->getResult();
}
public function getAllProduitTransformationAjax($produitId=0, $siCategorie,$partenaireId=0, $typeAction=0, $abonneId=0) {
$sql = ' SELECT DISTINCT(p.id) as id, p.nomProduit '
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c
INNER JOIN p.produit pr ';
if($typeAction != 0){
$sql .= " INNER JOIN p.produitabonnes pas ";
$sql .= " INNER JOIN pas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN pas.partenaire pt ";
}else{
$sql .= " INNER JOIN p.abonne a";
}
$sql .=' WHERE p.etatProduit = 1 '; //and pr.etatPrixRigueur = 1 and and pr.typePrixRigueur =1
( $siCategorie == '0' || $siCategorie == '') ? $sql .= '' : $sql .= ' AND c.id = :siCategorie';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
$sql .=' ORDER By p.nomProduit ASC ';
( $siCategorie == '0' || $siCategorie == '') ? $sql .= '' : $param['siCategorie'] = $siCategorie;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
return $query->getResult();
}
public function getAllVarieteProduitPartenaire($produitId=0, $siCategorie,$partenaireId=0, $typeAction=0, $abonneId=0) {
$param= array();
$sql = ' SELECT p '
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c
INNER JOIN p.produit pr ';
if($typeAction != 0){
$sql .= " INNER JOIN p.produitabonnes pas ";
$sql .= " INNER JOIN pas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN pas.partenaire pt ";
}else{
$sql .= " INNER JOIN p.abonne a";
}
$sql .=' WHERE p.etatProduit = 1 and p.siAgricole =1 and p.siAgricoleParent =0 '; //and pr.etatPrixRigueur = 1 and and pr.typePrixRigueur =1
( $siCategorie == '0' || $siCategorie == '') ? $sql .= '' : $sql .= ' AND c.id = :siCategorie';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
$sql .=' ORDER By p.nomProduit ASC ';
( $siCategorie == '0' || $siCategorie == '') ? $sql .= '' : $param['siCategorie'] = $siCategorie;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
return $query->getResult();
}
public function getAllVarieteProduit($produitId=0) {
$sql = ' SELECT p '
.' FROM App\Entity\stock\Produit p
INNER JOIN p.abonne a
INNER JOIN p.categorie c
INNER JOIN p.produit pr ';
$sql .=' WHERE pr.id = :produitId AND p.etatProduit != 2 ';
//$sql .=' AND c.id = :siCategorie ';
$query = $this->_em->createQuery($sql);
$query->setParameter('produitId', $produitId);
// $query->setParameter('siCategorie', $siCategorie);
return $query->getResult();
}
public function getAllVarieteCategorieProduit($produitId=0, $siCategorie=0 ){
$sql = ' SELECT p '
.' FROM App\Entity\stock\Produit p
INNER JOIN p.abonne a
INNER JOIN p.categorie c
INNER JOIN p.produit pr ';
$sql .=' WHERE pr.id = :produitId AND p.etatProduit != 2 ';
$sql .=' AND c.id = :siCategorie ';
$query = $this->_em->createQuery($sql);
$query->setParameter('produitId', $produitId);
$query->setParameter('siCategorie', $siCategorie);
return $query->getResult();
}
public function getAllProduitAjax( $abonneId=0) {
$sql = ' SELECT p.id, p.montantHtVente, p.tauxTva, p.autreTaxe, p.nomProduit, p.codeProduit, p.montantHtAchat '
.' FROM App\Entity\stock\Produit p INNER JOIN p.abonne a ';
$sql .=' WHERE 1=1 AND a.id = :abonneId AND p.etatProduit != 2 ';
$query = $this->_em->createQuery($sql);
$query->setParameter('abonneId', $abonneId);
return $query->getResult();
}
public function getAllFournisseurProduitAjax( $abonneId=0, $fourId=0) {
$sql = ' SELECT p.id, p.montantHtVente, p.tauxTva, p.autreTaxe, p.nomProduit, p.codeProduit, p.montantHtAchat '
.' FROM App\Entity\stock\Produit p
INNER JOIN p.abonne a
INNER JOIN p.fournisseurproduits fp
INNER JOIN fp.fournisseur f ';
$sql .=' WHERE 1=1 AND a.id = :abonneId AND p.etatProduit != 2 ';
$sql .=' AND f.id = :fourId ';
$query = $this->_em->createQuery($sql);
//var_dump($query ->getSql(),$fourId,$abonneId );exit;
$query->setParameters(['abonneId'=>$abonneId, 'fourId'=>$fourId]);
return $query->getResult();
}
/**
* Retourne un array_map($transform, $query->getScalarResult());
*
* @return type
*/
public function getAllProduitCaisseAjax($abonneId=0, $caisseId=0)
{
$query = $this->_em->createQuery(
'SELECT p.id, p.montantHtVente, p.tauxTva, p.autreTaxe, p.nomProduit, p.codeProduit, p.montantHtAchat
FROM App\Entity\stock\Produit p
INNER JOIN p.abonne a
INNER JOIN p.categorie cat
INNER JOIN p.caisseproduits cp
INNER JOIN cp.caisse c
WHERE a.id =:abonneId and c.id =:caisseId '
)
->setParameters(["abonneId"=>$abonneId, "caisseId"=>$caisseId]);
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllProduitConditionne($produitId=0, $siCategorie, $abonneId=0,$partenaireId=0, $typeAction=0) {
$sql = ' SELECT p.id as idParent, pr.id as id, p.nomProduit as prodParent, pr.nomProduit as nomProduit '
.' FROM App\Entity\stock\Produit p
INNER JOIN p.carateristiqueproduits cp
INNER JOIN cp.produitparent pr
';
if($typeAction != 0){
$sql .= "
INNER JOIN cp.produitabonne pas
";
$sql .= " INNER JOIN pas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN pas.partenaire pt ";
}else{
$sql .= "
INNER JOIN p.abonne a";
}
$sql .=' INNER JOIN pr.categorie c WHERE 1=1 AND p.etatProduit != 2 ';
( $produitId == '0' || $produitId == '') ? $sql .= '' : $sql .= ' AND p.id = :produitId';
( $siCategorie == '0' || $siCategorie == '') ? $sql .= '' : $sql .= ' AND c.typeCategorie = :siCategorie';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
$sql .=' ORDER By p.nomProduit ASC ';
( $produitId == '0' || $produitId == '') ? $sql .= '' : $param['produitId'] = $produitId;
( $siCategorie == '0' || $siCategorie == '') ? $sql .= '' : $param['siCategorie'] = $siCategorie;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
// var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllListeProduitConditionne($produitId=0, $siCategorie, $abonneId=0,$partenaireId=0, $typeAction=0) {
$sql = ' SELECT DISTINCT(p.id) as id, p.nomProduit as nom, c.code as prodCodeGenere,
p.montantHtAchat as rendement, c.id as idCategorie, p.codeGenere, pr.infoPrixRigueur as prixAchat,
p.codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent,
p.enStockProduit, p.siSemence, 0 as libelleDevise, cp.id as carateristiqueproduitId '
.'
FROM App\Entity\stock\Produit p
INNER JOIN p.carateristiqueproduit cp
INNER JOIN cp.produitparent pp
'
.' INNER JOIN p.prixrigueurs pr ';
if($typeAction != 0){
$sql .= "
INNER JOIN cp.produitabonne pas
";
$sql .= " INNER JOIN pas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN pas.partenaire pt ";
}else{
$sql .= "
INNER JOIN p.abonne a";
}
$sql .=' INNER JOIN pp.categorie c WHERE 1=1 ';
( $produitId == '0' || $produitId == '') ? $sql .= '' : $sql .= ' AND p.id = :produitId';
( $siCategorie == '0' || $siCategorie == '') ? $sql .= '' : $sql .= ' AND c.typeCategorie = :siCategorie';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
$sql .=' ORDER By p.nomProduit ASC ';
( $produitId == '0' || $produitId == '') ? $sql .= '' : $param['produitId'] = $produitId;
( $siCategorie == '0' || $siCategorie == '') ? $sql .= '' : $param['siCategorie'] = $siCategorie;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
// var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllCarateristqueProduit($abonneId=0) {
$sql = ' SELECT p.id as produitId, pr.id as produitparentId, cp.id carateristiqueProduitId, pr.nomProduit '
.' FROM App\Entity\stock\CarateristiqueProduit cp
INNER JOIN cp.produit p
INNER JOIN cp.produitparent pr
'
. "
INNER JOIN cp.abonne a";
$sql .=' WHERE 1=1 ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
$sql .=' ORDER By p.nomProduit ASC ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
// var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllEtapeCroissanceProduit($produitId=0) {
$sql = ' SELECT pec.id as produitEtapeCroissanceId, ec.id as id, p.nomProduit, ec.nomEtapeCroissance, pec.siDebut, pec.periode '
.' FROM App\Entity\prod\ProduitEtapeCroissance pec
INNER JOIN pec.etapecroissance ec
INNER JOIN pec.produit p
';
$sql .=' WHERE p.id = :produitId AND pec.etatProduitEtapeCroissance !=3 ORDER By pec.ordre ASC';
$query = $this->_em->createQuery($sql);
$query->setParameter('produitId', $produitId);
return $query->getResult();
}
public function getAllEtapeCroissanceProduitTache($produitEtapeCroissanceId=0) {
$sql = ' SELECT tpec.id as id, t.id as activiteId, ec.id as etapeCroissanceId , t.titreActivite '
.' FROM App\Entity\prod\TacheProduitEtapeCroissance tpec
INNER JOIN tpec.produitetapecroissance pec
INNER JOIN pec.etapecroissance ec
INNER JOIN tpec.activite t ';
$sql .=' WHERE pec.id = :produitEtapeCroissanceId AND pec.etatProduitEtapeCroissance !=3 AND tpec.etatTacheProduitEtapeCroissance !=3 ORDER By tpec.ordre ASC';
$query = $this->_em->createQuery($sql);
$query->setParameter('produitEtapeCroissanceId', $produitEtapeCroissanceId);
return $query->getResult();
}
/**
* Retourne tous les produits.
*
* @return type
*/
public function getAllProduitAccueil($abonneId)
{
$qb = $this->createQueryBuilder('r')
->join('r.abonne','a')
->where('r.etatProduit != '.TypeEtat::SUPPRIME)
->andWhere('r.siAccueil = 1 ')
->andWhere('a.id=:abonneId')
->setParameter('abonneId',$abonneId)
->orderBy('r.id', 'ASC');
return $qb->getQuery()->getResult();
}
/**
* Retourne tous les produits.
*
* @return type
*/
public function getAllVariete($idProduit)
{
$qb = $this->createQueryBuilder('p')
->leftJoin('p.produit', 'pr')
->where('p.etatProduit != '.TypeEtat::SUPPRIME)
->andWhere('pr.id = '.$idProduit)
->orderBy('p.id', 'ASC');
return $qb->getQuery()->getResult();
}
public function getOneProduit($id)
{
$qb = $this->createQueryBuilder('p')
->select('p')
->innerJoin('p.categorie', 'c')
->where('p.id = '.$id);
return $qb->getQuery()->getResult();
}
public function getCategorieProduit($categorie=0, $idfournisseur=0, $type=1) {
$sql = ' SELECT DISTINCT p.id, p.nomProduit, p.montantHtAchat, p.tauxTva '
.' FROM App\Entity\stock\Produit p inner join p.categorie c ';
if($type==1){
$sql .=' inner join p.fournisseur f';
}
$sql .=' WHERE c.id = :cid ';
if($type==1){
$sql .=' and f.id = :cidfourn ';
}
$sql .=' ORDER BY p.nomProduit DESC ';
$query = $this->_em->createQuery($sql);
//var_dump($sql);exit;
$query->setParameter('cid', $categorie);
if($type==1){
$query->setParameter('cidfourn', $idfournisseur);
}
return $query->getResult();
}
public function getProduit($idProduit) {
$sql = ' SELECT p.id, p.montantHtVente, p.tauxTva, p.autreTaxe, p.nomProduit, p.codeProduit, p.montantHtAchat '
.' FROM App\Entity\stock\Produit p'
.' WHERE p.id = :pid ';
$query = $this->_em->createQuery($sql);
$query->setParameter('pid', $idProduit);
return $query->getOneOrNullResult();
}
/**
* Retourne tous les produits.
*
* @return type
*/
public function getAllProduitRupture()
{
$qb = $this->createQueryBuilder('r')
->where('r.etatProduit != '.TypeEtat::SUPPRIME)
->andWhere('r.seuilProduit > r.enStockProduit')
->orderBy('r.nomProduit', 'ASC');
return $qb->getQuery()->getResult();
}
public function getVariete($idProduit) {
$etatPrix =1;
$sql = ' SELECT p.id as id, pa.id as id2, p.nomProduit as nom , pr.infoPrixRigueur as prixAchat, p.montantHtAchat as rendement '
.' FROM App\Entity\stock\Produit p'
.' INNER JOIN p.prixrigueurs pr '
.' WHERE pa.id = :pid AND pr.etatPrixRigueur =:prix';
$query = $this->_em->createQuery($sql);
$query->setParameter('pid', $idProduit);
$query->setParameter('prix', $etatPrix);
//var_dump($query->getSQL());exit;
return $query->getResult();
}
public function getAllCurrentVariete($abonneId) {
$etatPrix =1;
$sql = ' SELECT p '
.' FROM App\Entity\stock\Produit p'
.' INNER JOIN p.produitabonnes pa'
.' INNER JOIN pa.abonne a'
.' WHERE p.siAgricole = :siAgricole AND p.siAgricoleParent !=:siAgricoleParent AND a.id =:abonneId ';
$query = $this->_em->createQuery($sql);
$query->setParameter('siAgricole', 1);
$query->setParameter('siAgricoleParent', 1);
$query->setParameter('abonneId', $abonneId);
//var_dump($query->getSQL());exit;
return $query->getResult();
}
public function getAllProduitCategorieAjax($idC, $abonneId, $siAgricole=0, $siAgricoleParent=0,$partenaireId=0, $typeAction=0) {
$sql = ' SELECT p '
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c';
if($typeAction != 0){
$sql .= " INNER JOIN p.produitabonnes pas ";
$sql .= " INNER JOIN pas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN pas.partenaire pt ";
}else{
$sql .= " INNER JOIN p.abonne a";
}
//.' INNER JOIN p.prixrigueurs pr'
$sql .=' WHERE p.etatProduit = 1 '; //and pr.etatPrixRigueur = 1 and and pr.typePrixRigueur =1
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' AND c.id = :idC';
( $siAgricole == '0' || $siAgricole == '') ? $sql .= '' : $sql .= ' AND p.siAgricole = :siAgricole';
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $sql .= ' AND p.siAgricoleParent = :siAgricoleParent';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
$sql .=' ORDER By p.nomProduit ASC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
( $siAgricole == '0' || $siAgricole == '') ? $sql .= '' : $param['siAgricole'] = $siAgricole;
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $param['siAgricoleParent'] = $siAgricoleParent;
$query = $this->_em->createQuery($sql);
//var_dump( $sql);exit;
$query->setParameters($param);
return $query->getResult();
}
public function getAllProduitCategorieAPI($idC, $abonneId,$partenaireId=0, $typeAction=0) {
$param=[];
$sql = ' SELECT p.id as id, p.nomProduit as nom, 0 as prixAchat, p.montantHtAchat as rendement, c.id as idCategorie, p.codeGenere , p.codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent, p.siSemence, p.actionComptable , p.siEcommerce as siCommerce ';
$sql .=' FROM App\Entity\stock\Produit p
';
$sql .=' INNER JOIN p.categorie c ';
if($typeAction != 0){
$sql .= " INNER JOIN p.produitabonnes pas ";
$sql .= " INNER JOIN pas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN pas.partenaire pt ";
}else{
// $sql .= " INNER JOIN p.abonne a";
$sql .= " INNER JOIN p.abonne a";
}
$sql .=' WHERE 1 = 1 AND p.etatProduit = 1 '; //AND p.siSemence is null
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
$listeSemence = $this->getAllProduitCategorieSiSemenceAPI($idC, $abonneId,$partenaireId=0, $typeAction=0);
$tabProduit = array_merge($query->getResult(), $listeSemence);
//var_dump($tabProduit);exit;
return $tabProduit;
}
public function getAllProduitCategorieSiSemenceAPI($idC, $abonneId,$partenaireId=0, $typeAction=0) {
$param=[];
$sql = ' SELECT p.id as id, p.nomProduit as nom, 0 as prixAchat, p.montantHtAchat as rendement, c.id as idCategorie, p.codeGenere , pd.codeGenere as codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent, p.siSemence';
$sql .=' FROM App\Entity\stock\Produit p
';
$sql .=' INNER JOIN p.categorie c ';
$sql .=' INNER JOIN p.produit pd ';
if($typeAction != 0){
$sql .= " INNER JOIN p.produitabonnes pas ";
$sql .= " INNER JOIN pas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN pas.partenaire pt ";
}else{
// $sql .= " INNER JOIN p.abonne a";
$sql .= " INNER JOIN p.abonne a";
}
$sql .=' WHERE 1 = 1 AND p.etatProduit = 1 AND p.siSemence = 1';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllProduitMobileAPI($idC, $abonneId) {
$param=[];
$sql = ' SELECT DISTINCT(p.id) as id, p.nomProduit as nom, pr.infoPrixRigueur as prixAchat, p1.codeGenere as prodCodeGenere, p.montantHtAchat as rendement, c.id as idCategorie, p.codeGenere , p.codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent, p.siSemence, i.urlImage '
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' INNER JOIN p.prixrigueurs pr '
.' INNER JOIN p.produit p1 '
.' INNER JOIN p.images i '
.' WHERE 1 = 1 and pr.etatPrixRigueur = 1 ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllProduitClientMobileAPI($idC, $abonneId,$clientId, $codeProdGenere =0) {
$param=[];
$sql = ' SELECT DISTINCT(p.id) as id, p.nomProduit as nom,';
if($clientId != 0)
$sql .= 'cp.infoPrix as prixAchat,';
else
$sql .= 'pr.infoPrixRigueur as prixAchat,';
$sql .= 'p1.codeGenere as prodCodeGenere, p.montantHtAchat as rendement, c.id as idCategorie, p.codeGenere , p.codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent, p.enStockProduit, p.siSemence, i.urlImage, d.libelle as libelleDevise '
.' FROM App\Entity\stock\Produit p '
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' INNER JOIN a.devise d '
.' INNER JOIN p.prixrigueurs pr ';
if($clientId != 0){
$sql .= ' INNER JOIN pr.clientprixs cp ' ;
$sql .= ' INNER JOIN cp.client cl ' ;
}
$sql .= ' INNER JOIN p.produit p1 '
.' INNER JOIN p.images i '
.' WHERE 1 = 1 and pr.etatPrixRigueur = 1 and p.siEcommerce = 1';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $codeProdGenere == '0' || $codeProdGenere == '') ? $sql .= '' : $sql .= ' AND p1.codeGenere =:codeProdGenere ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $clientId == '0' || $clientId == '') ? $sql .= '' : $sql .= ' AND cl.id =:clientId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $codeProdGenere == '0' || $codeProdGenere == '') ? $sql .= '' : $param['codeProdGenere'] = $codeProdGenere;
( $clientId == '0' || $clientId == '') ? $sql .= '' : $param['clientId'] = $clientId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($sql,$abonneId );exit;
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllProduitClientSiteWebAPI($idC, $abonneId,$clientId, $codeProdGenere =0) {
$param=[];
$sql = ' SELECT DISTINCT(p.id) as id, p.nomProduit as nom,';
if($clientId != 0)
$sql .= 'cp.infoPrix as prixAchat,';
else
$sql .= 'pr.infoPrixRigueur as prixAchat,';
$sql .= 'p1.codeGenere as prodCodeGenere, p.montantHtAchat as rendement, c.id as idCategorie, p.codeGenere , p.codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent, p.enStockProduit, p.siSemence, i.urlImage, d.libelle as libelleDevise '
.' FROM App\Entity\stock\Produit p '
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' INNER JOIN a.devise d '
.' INNER JOIN p.prixrigueurs pr ';
if($clientId != 0){
$sql .= ' INNER JOIN pr.clientprixs cp ' ;
$sql .= ' INNER JOIN cp.client cl ' ;
}
$sql .= ' INNER JOIN p.produit p1 '
.' INNER JOIN p.images i '
.' WHERE 1 = 1 and pr.etatPrixRigueur = 1 and p.etatProduit = 1 AND p.siEcommerce = 1';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $codeProdGenere == '0' || $codeProdGenere == '') ? $sql .= '' : $sql .= ' AND p1.codeGenere =:codeProdGenere ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' AND c.id =:idC ';
( $clientId == '0' || $clientId == '') ? $sql .= '' : $sql .= ' AND cl.id =:clientId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $codeProdGenere == '0' || $codeProdGenere == '') ? $sql .= '' : $param['codeProdGenere'] = $codeProdGenere;
( $clientId == '0' || $clientId == '') ? $sql .= '' : $param['clientId'] = $clientId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($sql,$abonneId );exit;
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getOneProduitAPI($idC, $abonneId,$clientId, $codeProdGenere =0) {
$param=[];
$sql = ' SELECT p.id as id, p.nomProduit as nom,';
if($clientId != 0)
$sql .= 'cp.infoPrix as prixAchat,';
else
$sql .= 'pr.infoPrixRigueur as prixAchat,';
$sql .= 'p.codeGenere as prodCodeGenere, p.montantHtAchat as rendement, p.descriptionProduit as description, c.id as idCategorie, p.codeGenere , p.codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent, p.enStockProduit, p.siSemence, i.urlImage, d.libelle as libelleDevise '
.' FROM App\Entity\stock\Produit p '
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' INNER JOIN a.devise d '
.' INNER JOIN p.prixrigueurs pr ';
if($clientId != 0){
$sql .= ' INNER JOIN pr.clientprixs cp ' ;
$sql .= ' INNER JOIN cp.client cl ' ;
}
$sql .= ' INNER JOIN p.images i '
.' WHERE 1 = 1 and pr.etatPrixRigueur = 1 and p.siEcommerce = 1';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $codeProdGenere == '0' || $codeProdGenere == '') ? $sql .= '' : $sql .= ' AND p.codeGenere =:codeProdGenere ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $clientId == '0' || $clientId == '') ? $sql .= '' : $sql .= ' AND cl.id =:clientId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $codeProdGenere == '0' || $codeProdGenere == '') ? $sql .= '' : $param['codeProdGenere'] = $codeProdGenere;
( $clientId == '0' || $clientId == '') ? $sql .= '' : $param['clientId'] = $clientId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($sql);exit;
//var_dump($query->getSql());exit;
return $query->getResult();
}
//var_dump($sql);exit;
public function getAllCategorieMobileAPI($idC, $abonneId, $siAgricoleParent ) {
$param=[];
$sql = ' SELECT p.id as id, p.nomProduit as nom, 0 as prixAchat, p.montantHtAchat as rendement, c.id as idCategorie, p.codeGenere , p.codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent, p.siSemence, i.urlImage '
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' INNER JOIN p.images i '
.' WHERE 1 = 1 ';
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $sql .= ' AND p.siAgricoleParent =:siAgricoleParent ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $param['siAgricoleParent'] = $siAgricoleParent;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllCategorieProduitParent($idC, $abonneId, $siAgricoleParent ) {
$param=[];
$sql = ' SELECT p.id as id, p.nomProduit as nom, 0 as prixAchat, p.codeGenere as codeGenere'
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' INNER JOIN p.images i '
.' INNER JOIN p.produits pr '
.' WHERE 1 = 1 and pr.siEcommerce = 1 ';
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $sql .= ' AND p.siAgricoleParent =:siAgricoleParent ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $param['siAgricoleParent'] = $siAgricoleParent;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllInventaireProduitParent($idC, $abonneId ) {
$param=[];
$sql = ' SELECT p '
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' WHERE 1 = 1 and p.siEcommerce = 1 ';
//( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $sql .= ' AND p.siAgricoleParent =:siAgricoleParent ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
//( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $param['siAgricoleParent'] = $siAgricoleParent;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($query->getSql(), $idC, $abonneId, $siAgricoleParent);exit;
return $query->getResult();
}
public function getAllCategorieProduitFini($idC, $abonneId, $siAgricoleParent ) {
$param=[];
$sql = ' SELECT DISTINCT(c.id) as id, c.nom as nom, 0 as prixAchat, c.code as codeGenere '
.' FROM App\Entity\stock\CategorieProduit c
'
.' INNER JOIN c.produits p '
.' INNER JOIN p.abonne a '
.' INNER JOIN p.images i '
.' WHERE 1 = 1 and p.siEcommerce = 1 ';
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $sql .= ' AND p.siAgricoleParent =:siAgricoleParent ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $param['siAgricoleParent'] = $siAgricoleParent;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllProduitProduitFini($idC, $abonneId,$clientId, $codeProdGenere =0) {
$param=[];
$sql = ' SELECT DISTINCT(p.id) as id, p.nomProduit as nom,';
if($clientId != 0)
$sql .= 'cp.infoPrix as prixAchat,';
else
$sql .= 'pr.infoPrixRigueur as prixAchat,';
$sql .= 'c.code as prodCodeGenere, p.montantHtAchat as rendement, c.id as idCategorie, p.codeGenere , p.codeBarre, c.typeCategorie, p.siAgricole, p.siAgricoleParent, p.enStockProduit, p.siSemence, i.urlImage, d.libelle as libelleDevise '
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' INNER JOIN a.devise d '
.' INNER JOIN p.prixrigueurs pr ';
if($clientId != 0){
$sql .= ' INNER JOIN pr.clientprixs cp ' ;
$sql .= ' INNER JOIN cp.client cl ' ;
}
$sql .= ' '
.' INNER JOIN p.images i '
.' WHERE 1 = 1 and pr.etatPrixRigueur = 1 AND p.etatProduit = 1 and p.siEcommerce = 1 and c.id != 3 ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $codeProdGenere == '0' || $codeProdGenere == '') ? $sql .= '' : $sql .= ' AND p1.codeGenere =:codeProdGenere ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $clientId == '0' || $clientId == '') ? $sql .= '' : $sql .= ' AND cl.id =:clientId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $codeProdGenere == '0' || $codeProdGenere == '') ? $sql .= '' : $param['codeProdGenere'] = $codeProdGenere;
( $clientId == '0' || $clientId == '') ? $sql .= '' : $param['clientId'] = $clientId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($sql);exit;
//var_dump($query->getSql());exit;
return $query->getResult();
}
public function getAllCategorieTransforme($idC, $abonneId, $siAgricoleParent ) {
$param=[];
$sql = ' SELECT p.id as id, p.nomProduit as nom, 0 as prixAchat '
.' FROM App\Entity\stock\Produit p
'
.' INNER JOIN p.categorie c '
.' INNER JOIN p.abonne a '
.' INNER JOIN p.images i '
.' INNER JOIN p.produits pr '
.' WHERE 1 = 1 and pr.siEcommerce = 1 ';
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $sql .= ' AND p.siAgricoleParent =:siAgricoleParent ';
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $idC == '0' || $idC == '') ? $sql .= '' : $sql .= ' OR c.id =:idC ';
( $idC == '0' || $idC == '') ? $sql .= '' : $param['idC'] = $idC;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $siAgricoleParent == '0' || $siAgricoleParent == '') ? $sql .= '' : $param['siAgricoleParent'] = $siAgricoleParent;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($query->getSql());exit;
return $query->getResult();
}
/**
* Retourne un array_map($transform, $query->getScalarResult());
*
* @return type
*/
public function getAllProduitCaisseAPI($abonneId=0, $caisseId=0)
{
$query = $this->_em->createQuery(
'SELECT p.id as id, p.nomProduit as nom, 0 as prixAchat, p.montantHtAchat as rendement, cat.id as idCategorie, p.codeGenere , p.codeBarre, cat.typeCategorie, p.siAgricole, p.siSemence, p.siAgricoleParent, p.actionComptable, p.siEcommerce as siCommerce
FROM App\Entity\stock\Produit p
INNER JOIN p.categorie cat
INNER JOIN p.abonne a
INNER JOIN p.caisseproduits cp
INNER JOIN cp.caisse c
WHERE a.id =:abonneId and c.id =:caisseId and p.etatProduit = 1 ' //and p.siSemence !=1
)
->setParameters(["abonneId"=>$abonneId, "caisseId"=>$caisseId]);
//var_dump($query->getSql());exit;
return $query->getResult();
}
/**
* Retourne un array_map($transform, $query->getScalarResult());
*
* @return type
*/
public function getAllProduitIdActive($abonneId=0)
{
$query = $this->_em->createQuery(
'SELECT p.id as idP, ps.id as id
FROM App\Entity\stock\Produit p
INNER JOIN p.abonne a
INNER JOIN p.produitsysteme ps
WHERE a.id =:abonneId '
)
->setParameters(["abonneId"=>$abonneId]);
$transform = function($item){
return $item['id'];
};
// var_dump(array_map($transform, $query->getScalarResult()));exit;
return array_map($transform, $query->getScalarResult());
}
/**
* Retourne un array_map($transform, $query->getScalarResult());
*
* @return type
*/
public function getAllProduitCaisseIdActive($abonneId=0, $caisseId=0)
{
$query = $this->_em->createQuery(
'SELECT p.id as id
FROM App\Entity\stock\Produit p
INNER JOIN p.categorie cet
INNER JOIN p.abonne a
INNER JOIN p.caisseproduits cp
INNER JOIN cp.caisse c
WHERE a.id =:abonneId and c.id =:caisseId '
)
->setParameters(["abonneId"=>$abonneId, "caisseId"=>$caisseId]);
$transform = function($item){
return $item['id'];
};
// var_dump(array_map($transform, $query->getScalarResult()));exit;
return array_map($transform, $query->getScalarResult());
}
/**
* Retourne un array_map($transform, $query->getScalarResult());
*
* @return type
*/
public function getAllProduitCaisse($abonneId=0, $caisseId=0, $categorieId=1)
{
$query = $this->_em->createQuery(
'SELECT p
FROM App\Entity\stock\Produit p
INNER JOIN p.abonne a
INNER JOIN p.categorie cat
INNER JOIN p.caisseproduits cp
INNER JOIN cp.caisse c
WHERE a.id =:abonneId and c.id =:caisseId ' //and cat.typeCategorie =:categorieId
)
->setParameters(["abonneId"=>$abonneId, "caisseId"=>$caisseId]);
//var_dump($query->getSql());exit;
return $query->getResult();
}
/**
* Retourne un array_map($transform, $query->getScalarResult());
*
* @return type
*/
public function getAllProduitCaisseWithPrix($abonneId=0, $caisseId=0, $categorieId=1)
{
$sql = "
SELECT p.nomProduit, p.id as id, pr.infoPrixRigueur
FROM App\Entity\stock\Produit p
INNER JOIN p.abonne a
INNER JOIN p.categorie cat
";
( $caisseId == '0' || $caisseId == '') ? $sql .= '' : $sql .=" INNER JOIN p.caisseproduits cp INNER JOIN cp.caisse c";
$sql .= "
INNER JOIN p.prixrigueurs pr
WHERE 1=1 AND pr.typePrixRigueur = 2
";
//var_dump( $sql);exit;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id =:abonneId ';
( $categorieId == '0' || $categorieId == '') ? $sql .= '' : $sql .= ' AND cat.id =:categorieId ';
( $caisseId == '0' || $caisseId == '') ? $sql .= '' : $sql .= ' AND c.id =:caisseId ';
( $categorieId == '0' || $categorieId == '') ? $sql .= '' : $param['categorieId'] = $categorieId;
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $caisseId == '0' || $caisseId == '') ? $sql .= '' : $param['caisseId'] = $caisseId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
// var_dump($query->getSql(), $abonneId, $caisseId, $categorieId);exit;
return $query->getResult();
}
public function getOneProduitAjax($prodId) {
$sql = ' SELECT p.id, p.nomProduit '
.' FROM App\Entity\stock\Produit p'
.' WHERE p.id = :prodId ';
$query = $this->_em->createQuery($sql);
$query->setParameter('prodId', $prodId);
//var_dump($query->getSQL());exit;
return $query->getResult();
}
}