mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Change year calculations to financial year spans
This commit is contained in:
parent
fa487e7f92
commit
514bbacc35
@ -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];
|
||||
}
|
||||
|
@ -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')],
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user