From d118c0d886d8e99a26f3a942d30113323818d1d5 Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 6 Nov 2024 11:11:38 +0100 Subject: [PATCH] Fix date requests --- app/Api/V1/Requests/Data/DateRequest.php | 2 ++ app/Api/V2/Request/Generic/DateRequest.php | 2 +- app/Repositories/Bill/BillRepository.php | 6 ++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/Api/V1/Requests/Data/DateRequest.php b/app/Api/V1/Requests/Data/DateRequest.php index 04a19ee4d4..b46a853027 100644 --- a/app/Api/V1/Requests/Data/DateRequest.php +++ b/app/Api/V1/Requests/Data/DateRequest.php @@ -46,6 +46,8 @@ class DateRequest extends FormRequest { $start = $this->getCarbonDate('start'); $end = $this->getCarbonDate('end'); + $start->startOfDay(); + $end->endOfDay(); if ($start->diffInYears($end, true) > 5) { throw new FireflyException('Date range out of range.'); } diff --git a/app/Api/V2/Request/Generic/DateRequest.php b/app/Api/V2/Request/Generic/DateRequest.php index 73aff18330..810d38e5b9 100644 --- a/app/Api/V2/Request/Generic/DateRequest.php +++ b/app/Api/V2/Request/Generic/DateRequest.php @@ -44,7 +44,7 @@ class DateRequest extends FormRequest public function getAll(): array { return [ - 'start' => $this->getCarbonDate('start'), + 'start' => $this->getCarbonDate('start')->startOfDay(), 'end' => $this->getCarbonDate('end')->endOfDay(), ]; } diff --git a/app/Repositories/Bill/BillRepository.php b/app/Repositories/Bill/BillRepository.php index d0fa449775..28b4dae6f1 100644 --- a/app/Repositories/Bill/BillRepository.php +++ b/app/Repositories/Bill/BillRepository.php @@ -437,15 +437,17 @@ class BillRepository implements BillRepositoryInterface } // find the most recent date for this bill NOT in the future. Cache this date: $start = clone $bill->date; + $start->startOfDay(); app('log')->debug('nextExpectedMatch: Start is '.$start->format('Y-m-d')); while ($start < $date) { - app('log')->debug(sprintf('$start (%s) < $date (%s)', $start->format('Y-m-d'), $date->format('Y-m-d'))); + app('log')->debug(sprintf('$start (%s) < $date (%s)', $start->format('Y-m-d H:i:s'), $date->format('Y-m-d H:i:s'))); $start = app('navigation')->addPeriod($start, $bill->repeat_freq, $bill->skip); - app('log')->debug('Start is now '.$start->format('Y-m-d')); + app('log')->debug('Start is now '.$start->format('Y-m-d H:i:s')); } $end = app('navigation')->addPeriod($start, $bill->repeat_freq, $bill->skip); + $end->endOfDay(); // see if the bill was paid in this period. $journalCount = $bill->transactionJournals()->before($end)->after($start)->count();