container = $container; } /** * @return array * @throws \Exception * @throws \Interop\Container\Exception\ContainerException + */ public function getGlobalDaysOff() { $daysOff = []; /** @var \AmeliaBooking\Domain\Services\Settings\SettingsService $settingsDS */ $settingsDS = $this->container->get('domain.settings.service'); $settingsDaysOff = $settingsDS->getCategorySettings('daysOff'); foreach ($settingsDaysOff as $settingsDayOff) { $dayOffPeriod = new \DatePeriod( DateTimeService::getCustomDateTimeObject($settingsDayOff['startDate']), new \DateInterval('P1D'), DateTimeService::getCustomDateTimeObject($settingsDayOff['endDate'])->modify('+1 day') ); /** @var \DateTime $dayOffDate */ foreach ($dayOffPeriod as $dayOffDate) { if ($settingsDayOff['repeat']) { $dayOffDateFormatted = $dayOffDate->format('m-d'); $daysOff[$dayOffDateFormatted] = $dayOffDateFormatted; } else { $dayOffDateFormatted = $dayOffDate->format('Y-m-d'); $daysOff[$dayOffDateFormatted] = $dayOffDateFormatted; } } } return $daysOff; } }