<?php
namespace App\Repository\Produit\Produit;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Tools\Pagination\Paginator;
use App\Entity\Produit\Produit\Produit;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* 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);
}
public function myFindBy($id, $page = 1,$nombreParPage = 1000,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->addSelect('s')
->where('s.id = :id')
->setParameter('id',$id);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitVilleTypeMarqueScatPays($idscat, $idpays, $idmarque, $idtype, $idville, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('s.id = :idscat')
->andWhere('pa.id = :idpays')
->andWhere('tp.id = :idtype')
->andWhere('m.id = :idmarque')
->andWhere('v.id = :idville')
->setParameter('idscat',$idscat)
->setParameter('idpays',$idpays)
->setParameter('idtype',$idtype)
->setParameter('idmarque',$idmarque)
->setParameter('idville',$idville);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitTypeMarqueScatPays($idscat, $idpays, $idmarque, $idtype, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('s.id = :idscat')
->andWhere('pa.id = :idpays')
->andWhere('tp.id = :idtype')
->andWhere('m.id = :idmarque')
->setParameter('idscat',$idscat)
->setParameter('idpays',$idpays)
->setParameter('idtype',$idtype)
->setParameter('idmarque',$idmarque);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitVilleMarqueScatPays($idscat, $idpays, $idmarque, $idville, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('s.id = :idscat')
->andWhere('pa.id = :idpays')
->andWhere('m.id = :idmarque')
->andWhere('v.id = :idville')
->setParameter('idscat',$idscat)
->setParameter('idpays',$idpays)
->setParameter('idmarque',$idmarque)
->setParameter('idville',$idville);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitMarqueScatPays($idscat, $idpays, $idmarque, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('s.id = :idscat')
->andWhere('pa.id = :idpays')
->andWhere('m.id = :idmarque')
->setParameter('idscat',$idscat)
->setParameter('idpays',$idpays)
->setParameter('idmarque',$idmarque);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitVilleTypeScatPays($idscat, $idpays, $idtype, $idville, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('s.id = :idscat')
->andWhere('pa.id = :idpays')
->andWhere('tp.id = :idtype')
->andWhere('v.id = :idville')
->setParameter('idscat',$idscat)
->setParameter('idpays',$idpays)
->setParameter('idtype',$idtype)
->setParameter('idville',$idville);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitTypeScatPays($idscat, $idpays, $idtype, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('s.id = :idscat')
->andWhere('pa.id = :idpays')
->andWhere('tp.id = :idtype')
->setParameter('idscat',$idscat)
->setParameter('idpays',$idpays)
->setParameter('idtype',$idtype);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitVilleScatPays($idscat, $idpays, $idville, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('s.id = :idscat')
->andWhere('pa.id = :idpays')
->andWhere('v.id = :idville')
->setParameter('idscat',$idscat)
->setParameter('idpays',$idpays)
->setParameter('idville',$idville);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitScatPays($idscat, $idpays,$page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('s.id = :idscat')
->andWhere('pa.id = :idpays')
->setParameter('idscat',$idscat)
->setParameter('idpays',$idpays);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitVilleTypeMarquePays($idpays, $idmarque, $idtype, $idville, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pa.id = :idpays')
->andWhere('tp.id = :idtype')
->andWhere('m.id = :idmarque')
->andWhere('v.id = :idville')
->setParameter('idpays',$idpays)
->setParameter('idtype',$idtype)
->setParameter('idmarque',$idmarque)
->setParameter('idville',$idville);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitTypeMarquePays($idpays, $idmarque, $idtype, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pa.id = :idpays')
->andWhere('tp.id = :idtype')
->andWhere('m.id = :idmarque')
->setParameter('idpays',$idpays)
->setParameter('idtype',$idtype)
->setParameter('idmarque',$idmarque);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitVilleMarquePays($idpays, $idmarque, $idville, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pa.id = :idpays')
->andWhere('m.id = :idmarque')
->andWhere('v.id = :idville')
->setParameter('idpays',$idpays)
->setParameter('idmarque',$idmarque)
->setParameter('idville',$idville);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitMarquePays($idpays, $idmarque, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pa.id = :idpays')
->andWhere('m.id = :idmarque')
->setParameter('idpays',$idpays)
->setParameter('idmarque',$idmarque);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitVilleTypePays($idpays, $idtype, $idville, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pa.id = :idpays')
->andWhere('tp.id = :idtype')
->andWhere('v.id = :idville')
->setParameter('idpays',$idpays)
->setParameter('idtype',$idtype)
->setParameter('idville',$idville);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitTypePays($idpays, $idtype, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pa.id = :idpays')
->andWhere('tp.id = :idtype')
->setParameter('idpays',$idpays)
->setParameter('idtype',$idtype);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitVillePays($idpays, $idville, $page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pa.id = :idpays')
->andWhere('v.id = :idville')
->setParameter('idpays',$idpays)
->setParameter('idville',$idville);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function myfindProduitPays($idpays,$page = 1,$nombreParPage = 15,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pa.id = :idpays')
->setParameter('idpays',$idpays);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function whereOrderBy(\Doctrine\ORM\QueryBuilder $qb,$filter)
{
if($filter == 1)
{
$qb->orderBy('p.date','DESC');
return $qb;
}else if($filter == -1)
{
$qb->orderBy('p.date','ASC');
return $qb;
}
return $qb;
}
public function findBestProduit($nbre)
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie','s')
->addSelect('s')
//->where('p.recommander = 1')
->orderBy('p.nbpoint','DESC')
->setMaxResults($nbre)
->getQuery();
return $query->getResult();
}
public function findProduitRecommander($nbre)
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie','s')
->addSelect('s')
->where('p.recommander = 1')
->orderBy('p.nbpoint','DESC')
->setMaxResults($nbre)
->getQuery();
return $query->getResult();
}
public function orderCroissant()
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie','s')
->addSelect('s')
->orderBy('p.nblike','ASC')
->getQuery();
return $query->getResult();
}
public function topProduit($id)
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie','s')
->addSelect('s')
->where('p.valide = 1')
->orderBy('p.nbvente','DESC')
->setMaxResults($id)
->getQuery();
return $query->getResult();
}
public function findNewProduit($nbre)
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie','s')
->addSelect('s')
->orderBy('p.date','DESC')
->setMaxResults($nbre)
->getQuery();
return $query->getResult();
}
public function findProduitExclu($idscat, $idp, $nbre)
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie','s')
->addSelect('s')
->where('p.id != :idp AND s.id = :idscat')
->setParameter('idp',$idp)
->setParameter('idscat',$idscat)
->orderBy('p.nbpoint','DESC')
->setMaxResults($nbre)
->getQuery();
return $query->getResult();
}
public function topLike($id)
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie','s')
->addSelect('s')
->orderBy('p.nblike','DESC')
->setMaxResults($id)
->getQuery();
return $query->getResult();
}
public function findProduit($donnee, $page,$nombreParPage,$filter=1)
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie','s')
->addSelect('s')
->where('p.nom LIKE :n')
->orWhere('p.contenu LIKE :n')
->orWhere('p.description LIKE :n')
->orWhere('s.nom LIKE :n')
->orWhere('s.description LIKE :n')
->setParameter('n','%'.$donnee.'%');
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function getPublicProductScatBinplace($id,$scat,$page,$nombreParPage,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pj.id = :id')
->andWhere('s.id = :scat')
->setParameter('id',$id)
->setParameter('scat',$scat);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function getPublicProductBinplace($id,$page,$nombreParPage,$filter=1)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->leftJoin('p.marqueproduit', 'm')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.coutlivraisons', 'c')
->leftJoin('pb.projet', 'pj')
->leftJoin('pj.typeprojet', 'tp')
->leftJoin('c.ville', 'v')
->leftJoin('v.pays', 'pa')
->addSelect('s')
->addSelect('pb')
->addSelect('c')
->addSelect('v')
->addSelect('p')
->addSelect('pj')
->addSelect('tp')
->where('pj.id = :id')
->setParameter('id',$id);
$query = $this->whereOrderBy($query,$filter);
$query->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function findLastProduit($donnee,$produittaille)
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.souscategorie', 's')
->addSelect('s')
->where('p.nom LIKE :n')
->orWhere('p.description LIKE :n')
->orWhere('p.contenu LIKE :n')
->orWhere('s.nom LIKE :n')
->orWhere('s.description LIKE :n')
->setParameter('n','%'.$donnee.'%')
->orderBy('p.nom', 'ASC')
->setMaxResults($produittaille)
->getQuery();
return $query->getResult();
}
public function searchingproduitpage($donnee,$page,$nombreParPage)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
$query = $this->createQueryBuilder('p')
->where('CONCAT(CONCAT(p.nom, \' \'),p.description) LIKE :n')
->setParameter('n','%'.$donnee.'%')
->orderBy('p.nom', 'ASC')
->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function findProduitUser($id, $page = 1,$nombreParPage = 1000)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.user', 'u')
->addSelect('u')
->where('u.id = :id')
->setParameter('id',$id)
->orderBy('p.date', 'DESC')
->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function produitsDisponibles($liste,$detail, $page = 1,$nombreParPage = 1000)
{
// On déplace la vérification du numéro de page dans cette méthode
if ($page < 1){
throw new \InvalidArgumentException('Page inexistant');
}
// La construction de la requête
$query = $this->createQueryBuilder('p')
->leftJoin('p.user', 'u')
->leftJoin('p.produitboutiques', 'pb')
->leftJoin('pb.projet', 'pj')
->addSelect('u')
->addSelect('pb')
->addSelect('pj')
->where('p.id NOT IN (:liste)')
->andWhere('p.produitdetail = :detail')
->setParameter('liste',$liste)
->setParameter('detail',$detail)
->orderBy('p.date', 'DESC')
->getQuery();
// On définit l'établissemnt à partir duquel commencer la liste
$query->setFirstResult(($page-1) * $nombreParPage)
// Ainsi que le nombre d'établissement à afficher
->setMaxResults($nombreParPage);
// Enfin, on retourne l'objet Paginator correspondant à la requête construite
return new Paginator($query);
}
public function produitsBoutiques($id)
{
$query = $this->_em->createQuery('SELECT p.id AS id FROM App\Entity\Produit\Produit\Produit p, App\Entity\Produit\Produit\Produitboutique pb, App\Entity\Projet\Projet\Projet pj WHERE pb.produit = p AND pb.projet = pj AND pj.id = :id');
$query->setParameter('id', $id);
return array_column($query->getScalarResult(), 'id');
}
public function getNbProduitsCat($id)
{
$query = $this->_em->createQuery('SELECT COUNT(p.id) FROM App\Entity\Produit\Produit\Produit p, App\Entity\Produit\Produit\Souscategorie s, App\Entity\Produit\Produit\Categorie c WHERE p.souscategorie = s AND s.categorie = c AND c.id = :id');
$query->setParameter('id', $id);
return $query->getSingleScalarResult();
}
public function findProduitProjet($id, $tabIdProjet = array())
{
$query = $this->createQueryBuilder('p')
->leftJoin('p.produitboutiques','pb')
->leftJoin('pb.projet','pj')
->addSelect('pb')
->addSelect('pj')
->where('pj.id = :id')
->orWhere('pj.id in (:liste)')
->setParameter('id',$id)
->setParameter('liste',$tabIdProjet)
->orderBy('p.nbpoint','DESC')
->getQuery();
return $query->getResult();
}
}