distributionRepository = $this->loadService(DistributionRepository::class); $this->producerSolver = $this->loadService(ProducerSolver::class); } public function getMatchedDistribution(AutomaticEmail $automaticEmail): ?Distribution { $date = (new \DateTime('+'.$automaticEmail->getDelayBeforeDistribution().' days')); $dateFormat = $date->format('Y-m-d'); $distribution = $this->distributionRepository->findOneDistribution($dateFormat); if($distribution && $distribution->active && $date->format('N') == $automaticEmail->getDay() && !$this->producerSolver->isOnLeavePeriodByDistribution($distribution)) { return $distribution; } return null; } }