![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/ReportBundle/Scheduler/Model/ |
<?php namespace Mautic\ReportBundle\Scheduler\Model; use Doctrine\ORM\EntityManager; use Mautic\ReportBundle\Entity\Report; use Mautic\ReportBundle\Entity\Scheduler; use Mautic\ReportBundle\Entity\SchedulerRepository; use Mautic\ReportBundle\Scheduler\Date\DateBuilder; use Mautic\ReportBundle\Scheduler\Exception\NoScheduleException; class SchedulerPlanner { /** * @var SchedulerRepository */ private \Doctrine\ORM\EntityRepository $schedulerRepository; public function __construct( private DateBuilder $dateBuilder, private EntityManager $entityManager ) { $this->schedulerRepository = $entityManager->getRepository(Scheduler::class); } public function computeScheduler(Report $report): void { $this->removeSchedulerOfReport($report); $this->planScheduler($report); } private function planScheduler(Report $report): void { try { $date = $this->dateBuilder->getNextEvent($report); } catch (NoScheduleException) { return; } $scheduler = new Scheduler($report, $date); $this->entityManager->persist($scheduler); $this->entityManager->flush(); } private function removeSchedulerOfReport(Report $report): void { $scheduler = $this->schedulerRepository->getSchedulerByReport($report); if (!$scheduler) { return; } $this->entityManager->remove($scheduler); $this->entityManager->flush(); } }