mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-03 22:04:35 -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();
|
$input = $this->all();
|
||||||
|
|
||||||
if(isset($input['date_range'])) {
|
if(isset($input['date_range'])) {
|
||||||
$dates = $this->calculateStartAndEndDates($input);
|
$dates = $this->calculateStartAndEndDates($input, auth()->user()->company());
|
||||||
$input['start_date'] = $dates[0];
|
$input['start_date'] = $dates[0];
|
||||||
$input['end_date'] = $dates[1];
|
$input['end_date'] = $dates[1];
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ namespace App\Utils\Traits;
|
|||||||
use DateTime;
|
use DateTime;
|
||||||
use DateTimeZone;
|
use DateTimeZone;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use App\Models\Company;
|
||||||
use App\DataMapper\Schedule\EmailStatement;
|
use App\DataMapper\Schedule\EmailStatement;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -119,11 +120,11 @@ trait MakesDates
|
|||||||
*
|
*
|
||||||
* @return array [$start_date, $end_date];
|
* @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
|
//override for financial years
|
||||||
if($data['date_range'] == 'this_year') {
|
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);
|
$fin_year_start = now()->createFromDate(now()->year, $first_month_of_year, 1);
|
||||||
|
|
||||||
if(now()->lt($fin_year_start))
|
if(now()->lt($fin_year_start))
|
||||||
@ -133,7 +134,7 @@ trait MakesDates
|
|||||||
|
|
||||||
//override for financial years
|
//override for financial years
|
||||||
if($data['date_range'] == 'last_year') {
|
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 = now()->createFromDate(now()->year, $first_month_of_year, 1);
|
||||||
|
|
||||||
$fin_year_start->subYearNoOverflow();
|
$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::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::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::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']],
|
EmailStatement::CUSTOM_RANGE => [$data['start_date'], $data['end_date']],
|
||||||
default => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')],
|
default => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')],
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user