Spaces:
No application file
No application file
| namespace Mautic\ReportBundle\Entity; | |
| use Mautic\CoreBundle\Entity\CommonRepository; | |
| use Mautic\ReportBundle\Scheduler\Option\ExportOption; | |
| /** | |
| * @extends CommonRepository<Scheduler> | |
| */ | |
| class SchedulerRepository extends CommonRepository | |
| { | |
| /** | |
| * @return Scheduler|null | |
| */ | |
| public function getSchedulerByReport(Report $report) | |
| { | |
| return $this->findOneBy(['report' => $report]); | |
| } | |
| /** | |
| * @return array|Scheduler[] | |
| */ | |
| public function getScheduledReportsForExport(ExportOption $exportOption) | |
| { | |
| $qb = $this->createQueryBuilder('scheduler'); | |
| $qb->addSelect('report') | |
| ->leftJoin('scheduler.report', 'report'); | |
| $date = new \DateTime(); | |
| $qb->andWhere('scheduler.scheduleDate <= :scheduleDate') | |
| ->setParameter('scheduleDate', $date); | |
| if ($exportOption->getReportId()) { | |
| $qb->andWhere('report.id = :id') | |
| ->setParameter('id', $exportOption->getReportId()); | |
| } | |
| return $qb->getQuery()->getResult(); | |
| } | |
| } | |