app/Customize/Repository/ReserveRepository.php line 52

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.ec-cube.co.jp/
  8.  *
  9.  * For the full copyright and license information, please view the LICENSE
  10.  * file that was distributed with this source code.
  11.  */
  12. namespace Customize\Repository;
  13. use Customize\Entity\Reserve;
  14. use Eccube\Repository\AbstractRepository;
  15. use Doctrine\Persistence\ManagerRegistry as RegistryInterface;
  16. /**
  17.  * Reserve
  18.  *
  19.  * This class was generated by the Doctrine ORM. Add your own custom
  20.  * repository methods below.
  21.  */
  22. class ReserveRepository extends AbstractRepository
  23. {
  24.     public function __construct(RegistryInterface $registry)
  25.     {
  26.         parent::__construct($registryReserve::class);
  27.     }
  28.     /**
  29.      * 一覧を取得する.
  30.      *
  31.      * @return \Customize\Entity\Reserve[] 一覧の配列
  32.      */
  33.     public function findReserveByDay($date=null\Customize\Entity\ReserveSetting $ReserveSetting)
  34.     {
  35.         $qb $this->createQueryBuilder('r')
  36.             ->where('r.ReserveSetting = :ReserveSetting')
  37.             ->andwhere('r.reserve_day = :date')
  38.             ->addOrderBy('r.ReserveTime''DESC')
  39.             ->setParameter('ReserveSetting'$ReserveSetting)
  40.             ->setParameter('date'$date);
  41.         $Reserves $qb->getQuery()->getResult();
  42.         return $Reserves;
  43.     }
  44.     public function findReserveByReasonDay($date=null$ReserveReason=null\Customize\Entity\ReserveSetting $ReserveSetting$Customer)
  45.     {
  46.         $qb $this->createQueryBuilder('r')
  47.             ->where('r.ReserveSetting = :ReserveSetting')
  48.             ->andwhere('r.Customer IS NOT NULL')
  49.             ->andWhere('r.ReserveReason = :ReserveReason')
  50.             ->andwhere('r.reserve_day > :date')
  51.             ->andwhere('r.Customer = :Customer')
  52.             ->addOrderBy('r.ReserveTime''DESC')
  53.             ->setParameter('ReserveSetting'$ReserveSetting)
  54.             ->setParameter('ReserveReason'$ReserveReason)
  55.             ->setParameter('date', (new \DateTime())->format('Y-m-d'))
  56.             ->setParameter('Customer'$Customer);
  57.         $Reserves $qb->getQuery()->getResult();
  58.         return $Reserves;
  59.     }
  60.     public function getTimeCount($date=null\Customize\Entity\ReserveSetting $ReserveSetting\Customize\Entity\Master\ReserveTime $ReserveTime,\Eccube\Entity\Master\Sex $Sex=null)
  61.     {
  62.         $qb $this->createQueryBuilder('r')
  63.             ->select('COUNT(r.id) as cnt')
  64.             ->leftJoin('r.Customer''c')
  65.             ->where('r.ReserveSetting = :ReserveSetting')
  66.             ->andwhere('r.reserve_day = :date')
  67.             ->andwhere('r.Customer IS NOT NULL')
  68.             ->andwhere('r.ReserveTime = :ReserveTime');
  69.         if($Sex)
  70.             $qb $qb->andwhere('c.Sex = :Sex');
  71.         $qb $qb->setParameter('ReserveSetting'$ReserveSetting)
  72.             ->setParameter('ReserveTime'$ReserveTime)
  73.             ->setParameter('date'$date);
  74.         if($Sex)
  75.             $qb $qb->setParameter('Sex'$Sex);
  76.         $TimeCount $qb->getQuery()->getSingleResult();
  77.         return $TimeCount;
  78.     }
  79.     public function getReserveByMonth($month\Customize\Entity\ReserveSetting $ReserveSetting)
  80.     {
  81.         $qb $this->createQueryBuilder('r')
  82.             ->select('r as reserve,COUNT(r.id) as cnt')
  83.             ->innerJoin('r.Customer''c')
  84.             ->where('r.ReserveSetting = :ReserveSetting')
  85.             ->andwhere('r.reserve_day LIKE :month')
  86.             ->groupBy('r.reserve_day')
  87.             ->addGroupBy('c.Sex')
  88.             ->setParameter('ReserveSetting'$ReserveSetting)
  89.             ->setParameter('month''%'.$month.'%');
  90.         $MonthReserve $qb->getQuery()->getResult();
  91.         return $MonthReserve;
  92.     }
  93.     public function getReserveByCustomer(\Eccube\Entity\Customer $Customer)
  94.     {
  95.         $qb $this->createQueryBuilder('r')
  96.             ->select('r.id','r.reserve_day','rs.kubun_place_id','rs.place_id','s.store_name','s.addr01','s.addr02','p.name as pref_name','rt.name as reserve_time')
  97.             ->leftJoin('r.ReserveSetting''rs')
  98.             ->leftJoin('Customize\Entity\Store''s''WITH''rs.place_id = s.store_id')
  99.             ->leftJoin('s.Pref''p')
  100.             ->leftJoin('r.ReserveTime''rt')
  101.             ->where('r.Customer = :Customer')
  102.             ->orderBy('r.reserve_day','desc')
  103.             ->setParameter('Customer'$Customer);
  104.         return $qb;
  105.     }
  106.     public function getQueryBuilderForCSVExport($date=null\Customize\Entity\ReserveSetting $ReserveSetting){
  107.         $qb $this->createQueryBuilder('r')
  108.             ->where('r.ReserveSetting = :ReserveSetting')
  109.             ->andwhere('r.reserve_day = :date')
  110.             ->andwhere('r.Customer IS NOT NULL')
  111.             ->addOrderBy('r.ReserveTime''DESC')
  112.             ->setParameter('ReserveSetting'$ReserveSetting)
  113.             ->setParameter('date'$date);
  114.         return $qb;
  115.     }
  116. }