From 514bbacc350fb6609f260d182dd8c5fe1c160aff Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 17 Jul 2023 23:10:37 +1000 Subject: [PATCH] Change year calculations to financial year spans --- app/Http/Requests/Chart/ShowChartRequest.php | 2 +- app/Utils/Traits/MakesDates.php | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/Http/Requests/Chart/ShowChartRequest.php b/app/Http/Requests/Chart/ShowChartRequest.php index f7b4f63ba7e0..39517cd29db2 100644 --- a/app/Http/Requests/Chart/ShowChartRequest.php +++ b/app/Http/Requests/Chart/ShowChartRequest.php @@ -45,7 +45,7 @@ class ShowChartRequest extends Request $input = $this->all(); if(isset($input['date_range'])) { - $dates = $this->calculateStartAndEndDates($input); + $dates = $this->calculateStartAndEndDates($input, auth()->user()->company()); $input['start_date'] = $dates[0]; $input['end_date'] = $dates[1]; } diff --git a/app/Utils/Traits/MakesDates.php b/app/Utils/Traits/MakesDates.php index d08be2d47826..69ccb7a8b3c4 100644 --- a/app/Utils/Traits/MakesDates.php +++ b/app/Utils/Traits/MakesDates.php @@ -14,6 +14,7 @@ namespace App\Utils\Traits; use DateTime; use DateTimeZone; use Carbon\Carbon; +use App\Models\Company; use App\DataMapper\Schedule\EmailStatement; /** @@ -119,11 +120,11 @@ trait MakesDates * * @return array [$start_date, $end_date]; */ - public function calculateStartAndEndDates(array $data): array + public function calculateStartAndEndDates(array $data, ?Company $company = null): array { //override for financial years if($data['date_range'] == 'this_year') { - $first_month_of_year = $this->company->getSetting('first_month_of_year') ?? 1; + $first_month_of_year = $company ? $company?->first_month_of_year : 1; $fin_year_start = now()->createFromDate(now()->year, $first_month_of_year, 1); if(now()->lt($fin_year_start)) @@ -133,7 +134,7 @@ trait MakesDates //override for financial years if($data['date_range'] == 'last_year') { - $first_month_of_year = $this->company->getSetting('first_month_of_year') ?? 1; + $first_month_of_year = $company ? $company?->first_month_of_year : 1; $fin_year_start = now()->createFromDate(now()->year, $first_month_of_year, 1); $fin_year_start->subYearNoOverflow(); @@ -154,7 +155,7 @@ trait MakesDates EmailStatement::THIS_QUARTER => [now()->startOfDay()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->lastOfQuarter()->format('Y-m-d')], EmailStatement::LAST_QUARTER => [now()->startOfDay()->subQuarterNoOverflow()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->subQuarterNoOverflow()->lastOfQuarter()->format('Y-m-d')], EmailStatement::THIS_YEAR => [$fin_year_start->format('Y-m-d'), $fin_year_start->copy()->addYear()->subDay()->format('Y-m-d')], - EmailStatement::LAST_YEAR => [now()->startOfDay()->subYearNoOverflow()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->subYearNoOverflow()->lastOfYear()->format('Y-m-d')], + EmailStatement::LAST_YEAR => [$fin_year_start->format('Y-m-d'), $fin_year_start->copy()->addYear()->subDay()->format('Y-m-d')], EmailStatement::CUSTOM_RANGE => [$data['start_date'], $data['end_date']], default => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')], };