src/Repository/DeviceRepository.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Device;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. /**
  7.  * @method Device|null find($id, $lockMode = null, $lockVersion = null)
  8.  * @method Device|null findOneBy(array $criteria, array $orderBy = null)
  9.  * @method Device[]    findAll()
  10.  * @method Device[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  11.  */
  12. class DeviceRepository extends ServiceEntityRepository
  13. {
  14.     public function __construct(ManagerRegistry $registry)
  15.     {
  16.         parent::__construct($registryDevice::class);
  17.     }
  18.     public function totalDevices()
  19.     {
  20.         return $this->createQueryBuilder('d')
  21.             ->select('count(d.id)')
  22.             ->getQuery()->getSingleScalarResult();
  23.     }
  24.     public function getDeviceCountAndPriceByCompany($company=''$owner=''): array
  25.     {
  26.         $em=$this->getEntityManager();
  27.         if ($company!='') {
  28.             $query $em->createQuery('select count(d.id) as deviceCount,dt.price
  29.                 from App\Entity\Device d
  30.                 inner join d.deviceType dt
  31.                 where d.company=:company')
  32.                 ->setParameter('company'$company);
  33.         }
  34.         if ($owner!='') {
  35.             $query $em->createQuery('select count(d.id) as deviceCount,dt.price
  36.                 from App\Entity\Device d
  37.                 inner join d.deviceType dt
  38.                 where d.owner=:owner')
  39.                 ->setParameter('owner'$owner);
  40.         }
  41.         return $query->getResult();
  42.     }
  43.     public function findDeviceBySettingPin($pin)
  44.     {
  45.         return $this->createQueryBuilder('i')
  46.             ->orWhere('i.deviceSetting LIKE :pin')
  47.             ->orWhere('i.deviceSetting LIKE :pin2')
  48.             ->orWhere('i.deviceSetting LIKE :pin3')
  49.             ->setParameter('pin''%"pin":"'.$pin.'"%')
  50.             ->setParameter('pin2''%"pin": "'.$pin.'"%')
  51.             ->setParameter('pin3''%"pin": '.$pin.'%')
  52.             ->setMaxResults(1)
  53.             ->getQuery()
  54.             ->getResult();
  55.     }
  56.     public function findBySerial($serial)
  57.     {
  58.         return $this->createQueryBuilder('d')
  59.             ->Where('d.serial LIKE :serial')
  60.             ->setParameter('serial'$serial)
  61.             ->setMaxResults(1)
  62.             ->getQuery()
  63.             ->getScalarResult();
  64.     }
  65.     // /**
  66.     //  * @return Device[] Returns an array of Device objects
  67.     //  */
  68.     /*
  69.     public function findByExampleField($value)
  70.     {
  71.         return $this->createQueryBuilder('d')
  72.             ->andWhere('d.exampleField = :val')
  73.             ->setParameter('val', $value)
  74.             ->orderBy('d.id', 'ASC')
  75.             ->setMaxResults(10)
  76.             ->getQuery()
  77.             ->getResult()
  78.         ;
  79.     }
  80.     */
  81.     /*
  82.     public function findOneBySomeField($value): ?Device
  83.     {
  84.         return $this->createQueryBuilder('d')
  85.             ->andWhere('d.exampleField = :val')
  86.             ->setParameter('val', $value)
  87.             ->getQuery()
  88.             ->getOneOrNullResult()
  89.         ;
  90.     }
  91.     */
  92. }