src/Repository/CompanyRepository.php line 63

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Company;
  4. use App\Entity\Product;
  5. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. /**
  8.  * @method Company|null find($id, $lockMode = null, $lockVersion = null)
  9.  * @method Company|null findOneBy(array $criteria, array $orderBy = null)
  10.  * @method Company[]    findAll()
  11.  * @method Company[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  12.  */
  13. class CompanyRepository extends ServiceEntityRepository
  14. {
  15.     public function __construct(ManagerRegistry $registry)
  16.     {
  17.         parent::__construct($registryCompany::class);
  18.     }
  19.     public function searchCompany(array $parameters)
  20.     {
  21.         $qb $this->createQueryBuilder('c')
  22.             ->leftJoin('c.products''products')
  23.             ->addSelect('products')
  24.             ->leftJoin('products.avis''avis')
  25.             ->addSelect('avis')
  26.             ->leftJoin('products.subCategories''subCategories')
  27.             ->leftJoin('products.departments''departments')
  28.             ->where('c.isConfirmed = 1')
  29.             ->andWhere('c.isValidDocument = 1')
  30.             ->orderBy('avis.globalNote''DESC');
  31.         if ($parameters['department']) {
  32.             $qb
  33.                 ->andWhere('departments.id = :department')
  34.                 ->setParameter('department'$parameters['department']);
  35.         }
  36.         if ($parameters['category']) {
  37.             $qb
  38.                 ->andWhere('subCategories.id = :subCategories')
  39.                 ->setParameter('subCategories'$parameters['category']);
  40.         }
  41.         return $qb->getQuery()->getResult();
  42.     }
  43.     public function getCompanies()
  44.     {
  45.         return $this->createQueryBuilder('c')
  46.             ->leftJoin('c.products''products')
  47.             ->addSelect('products')
  48.             ->leftJoin('products.photos''photos')
  49.             ->addSelect('photos')
  50.             ->orderBy('c.id''DESC')
  51.             ->getQuery()
  52.             ->getResult();
  53.     }
  54.     public function getCompaniesprodActif()
  55.     {
  56.         return $this->createQueryBuilder('c')
  57.             ->where('c.isConfirmed = 1')
  58.             ->andWhere('c.isValidDocument = 1')
  59.             ->leftJoin('c.products''products')
  60.             ->addSelect('products')
  61.             ->leftJoin('products.avis''avis')
  62.             ->addSelect('avis')
  63.             ->andWhere('products.isActivated = 1')
  64.             ->orderBy('avis.globalNote''DESC')
  65.             ->getQuery()
  66.             ->getResult();
  67.     }
  68.     public function getSubscribedCompanies()
  69.     {
  70.         return $this->createQueryBuilder('c')
  71.         ->join('c.abonnements''ca')
  72.         ->andWhere('ca.isActive = true')
  73.         ->orWhere('ca.isActive = false')
  74.         ->orderBy('c.id''DESC')
  75.         ->getQuery()
  76.         ->getResult();
  77.     }
  78.     /**
  79.      * Undocumented function
  80.      *
  81.      * @return CompanyAbone89[]
  82.      */
  83.     public function findAllVerifPretAbonne($id):array
  84.     {
  85.         return $this->createQueryBuilder('c')
  86.            ->select('c')
  87.            ->where('c.id = :id')
  88.            ->setParameter('id'$id)
  89.            ->leftJoin('c.abonnement','abonnement')
  90.            ->addSelect('abonnement')
  91.            ->leftJoin('abonnement.typeAbonnement','typeAbonnement')
  92.            ->addSelect('typeAbonnement')
  93.            ->andWhere('abonnement.isActive = true')
  94.            ->andWhere('typeAbonnement.prix = 89')
  95.            ->getQuery()
  96.            ->getResult()
  97.         ;
  98.     }
  99.      /**
  100.      * Undocumented function
  101.      *
  102.      * @return CompanyAbone[]
  103.      */
  104.     public function VerifPretAbonne($id):array
  105.     {
  106.         return $this->createQueryBuilder('c')
  107.            ->select('c')
  108.            ->where('c.id = :id')
  109.            ->setParameter('id'$id)
  110.            ->leftJoin('c.abonnement','abonnement')
  111.            ->addSelect('abonnement')
  112.            ->andWhere('abonnement.isActive = true')
  113.            ->getQuery()
  114.            ->getResult()
  115.         ;
  116.     }
  117.     
  118.     public function findCompanyConect()
  119.     {
  120.         return $this->createQueryBuilder('c')
  121.             ->Where('c.statuCon = :true')
  122.             ->setParameter('true'1)
  123.             ->andWhere('c.etatNetwork IS NOT NULL')
  124.             ->orderBy('c.id''ASC')
  125.             ->getQuery()
  126.             ->getResult();  
  127.     }
  128.     public function findCompanyType($value){
  129.         return $this->createQueryBuilder('c')
  130.             ->select('c.type')
  131.             ->where('c.id= :val')
  132.             ->setParameter('val',$value)
  133.             ->getQuery()
  134.             ->getResult();
  135.     }
  136.     public function findAllExceptCurrentUserpresta($currentUserId)
  137.     {
  138.         return $this->createQueryBuilder('c')
  139.             ->andWhere('c.id != :currentUserId')
  140.             ->setParameter('currentUserId'$currentUserId)
  141.             ->getQuery()
  142.             ->getResult();
  143.     }
  144.     
  145.     public function findCompanyByKeyword($keyword)
  146.     {
  147.         return $this->createQueryBuilder('c')
  148.             ->where("CONCAT(' ', c.companyName, ' ') LIKE :keyword ")
  149.             ->setParameter('keyword''%' $keyword '%')
  150.             ->orWhere('c.companyName LIKE :keyword1')
  151.             ->setParameter('keyword1''%' $keyword '%')
  152.             ->setMaxResults(10)
  153.             ->getQuery()
  154.             ->getResult();
  155.     }
  156.     
  157.     public function findIsDirectReservation($id)
  158.     {
  159.         return $this->createQueryBuilder('c')
  160.             ->select('c.isDirectReservationMode')
  161.             ->where('c.id= :val')
  162.             ->setParameter('val'$id)
  163.             ->getQuery()
  164.             ->getSingleResult();
  165.     }
  166.     // public function CompanyPros(Product $product):array
  167.     // {
  168.     //     return $this->createQueryBuilder('c')
  169.     //        ->where('c.products = :products')
  170.     //        ->setParameter('products', $product)
  171.     //        ->leftJoin('c.products','products')
  172.     //        ->addSelect('products')
  173.     //        ->orderBy('c.id', 'ASC')
  174.     //        ->setMaxResults(10)
  175.     //        ->getQuery()
  176.     //        ->getResult()
  177.     //     ;
  178.     // }
  179.     // /**
  180.     //  * @return Company[] Returns an array of Company objects
  181.     //  */
  182.     /*
  183.     public function findByExampleField($value)
  184.     {
  185.         return $this->createQueryBuilder('c')
  186.             ->andWhere('c.exampleField = :val')
  187.             ->setParameter('val', $value)
  188.             ->orderBy('c.id', 'ASC')
  189.             ->setMaxResults(10)
  190.             ->getQuery()
  191.             ->getResult()
  192.         ;
  193.     }
  194.     */
  195.     /*
  196.     public function findOneBySomeField($value): ?Company
  197.     {
  198.         return $this->createQueryBuilder('c')
  199.             ->andWhere('c.exampleField = :val')
  200.             ->setParameter('val', $value)
  201.             ->getQuery()
  202.             ->getOneOrNullResult()
  203.         ;
  204.     }
  205.     */
  206. }