diff --git a/app/Services/DateRangeService.php b/app/Services/DateRangeService.php index 8082d7c..aedf2f0 100644 --- a/app/Services/DateRangeService.php +++ b/app/Services/DateRangeService.php @@ -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 [ diff --git a/resources/js/Pages/Statistic/Components/OutcomeColumn.vue b/resources/js/Pages/Statistic/Components/OutcomeColumn.vue index 99877e4..ee7af08 100644 --- a/resources/js/Pages/Statistic/Components/OutcomeColumn.vue +++ b/resources/js/Pages/Statistic/Components/OutcomeColumn.vue @@ -83,7 +83,7 @@ const typePlan = computed(() => { - План (с долгом) / Выбывшие: {{ planWithDebt }} / {{ value }} + План / Выбывшие: {{ plan.period_plan }} / {{ value }} Долг с начала года: {{ plan.debt_from_year }}