Правка логики дат и возврат оригинального плана
This commit is contained in:
@@ -120,12 +120,19 @@ class DateRangeService
|
||||
$startDate = $this->parseDate($startAt);
|
||||
$endDate = $this->parseDate($endAt);
|
||||
|
||||
// Шорткаты календаря (Сегодня/За 7 дней/За 30 дней/Текущий год) уже присылают
|
||||
// готовые границы смен ровно на 09:00 — их трогать не нужно. "Сырые" даты из
|
||||
// календаря (выбор конкретных дней кликом) приходят на 00:00 и требуют нормализации.
|
||||
$endAlreadyResolved = $endDate->format('H:i:s') === '09:00:00';
|
||||
|
||||
if ($startDate->isSameDay($endDate)) {
|
||||
$startDate = $startDate->subDay()->setTime(9, 0);
|
||||
$endDate = $endDate->setTime(9, 0);
|
||||
} else {
|
||||
$startDate = $startDate->setTime(9, 0);
|
||||
$endDate = $endDate->setTime(9, 0);
|
||||
// Смена длится сутки и "принадлежит" дню, в который начинается (см. currentShiftBoundaries).
|
||||
// Поэтому смена последнего выбранного дня захватывает следующие календарные сутки.
|
||||
$endDate = $endAlreadyResolved ? $endDate : $endDate->addDay()->setTime(9, 0);
|
||||
}
|
||||
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user