diff --git a/src/EventListener/ProjectsListener.php b/src/EventListener/ProjectsListener.php index e44b22c..b02dff4 100644 --- a/src/EventListener/ProjectsListener.php +++ b/src/EventListener/ProjectsListener.php @@ -29,7 +29,7 @@ final class ProjectsListener } if ($project->getStatus() === ProjectStatus::InCampaign) { - $calendar = $this->calendarService->makeCalendar($project); + $calendar = $this->calendarService->makeCalendar($project->getDeadline()); $project->setCalendar($calendar); } diff --git a/src/Service/Project/CalendarService.php b/src/Service/Project/CalendarService.php index b77b655..b99063f 100644 --- a/src/Service/Project/CalendarService.php +++ b/src/Service/Project/CalendarService.php @@ -2,30 +2,29 @@ namespace App\Service\Project; -use App\Entity\Project\Project; use App\Entity\Project\ProjectCalendar; use App\Entity\Project\ProjectDeadline; class CalendarService { public function makeCalendar( - Project $project, + ProjectDeadline $deadline, + \DateTimeImmutable $release = new \DateTimeImmutable(), int $minimumTtl = 40, int $optimumTtl = 40, ): ProjectCalendar { - $release = new \DateTimeImmutable(); $minimumTtl = \DateInterval::createFromDateString(\sprintf('%d days', $minimumTtl)); $optimumTtl = \DateInterval::createFromDateString(\sprintf('%d days', $optimumTtl)); $calendar = new ProjectCalendar(); $calendar->release = $release; - switch ($project->getDeadline()) { + switch ($deadline) { case ProjectDeadline::Minimum: - $calendar->minimum = $release->add($minimumTtl); + $calendar->minimum = $calendar->release->add($minimumTtl); break; case ProjectDeadline::Optimum: - $calendar->minimum = $release->add($minimumTtl); + $calendar->minimum = $calendar->release->add($minimumTtl); $calendar->optimum = $calendar->minimum->add($optimumTtl); break; }