diff --git a/app/Http/Controllers/ChartController.php b/app/Http/Controllers/ChartController.php index 85b387d30202..69669159c68f 100644 --- a/app/Http/Controllers/ChartController.php +++ b/app/Http/Controllers/ChartController.php @@ -61,7 +61,7 @@ class ChartController extends BaseController /** @var \App\Models\User auth()->user() */ $user = auth()->user(); $cs = new ChartService($user->company(), $user, $user->isAdmin()); - + return response()->json($cs->chart_summary($request->input('start_date'), $request->input('end_date')), 200); } diff --git a/app/Http/Requests/Chart/ShowChartRequest.php b/app/Http/Requests/Chart/ShowChartRequest.php index 0293513d2555..f33766eec2a6 100644 --- a/app/Http/Requests/Chart/ShowChartRequest.php +++ b/app/Http/Requests/Chart/ShowChartRequest.php @@ -12,9 +12,12 @@ namespace App\Http\Requests\Chart; use App\Http\Requests\Request; +use App\Utils\Traits\MakesDates; class ShowChartRequest extends Request { + use MakesDates; + /** * Determine if the user is authorized to make this request. * @@ -22,7 +25,10 @@ class ShowChartRequest extends Request */ public function authorize() : bool { - return auth()->user()->isAdmin(); + /**@var \App\Models\User auth()->user */ + $user = auth()->user(); + + return $user->isAdmin(); } public function rules() @@ -38,14 +44,22 @@ class ShowChartRequest extends Request { $input = $this->all(); - if (! array_key_exists('start_date', $input)) { - $input['start_date'] = now()->subDays(20); + if(isset($input['date_range'])) { + $dates = $this->calculateStartAndEndDates($input); + $input['start_date'] = $dates[0]; + $input['end_date'] = $dates[1]; } - if (! array_key_exists('end_date', $input)) { - $input['end_date'] = now(); + if (! isset($input['start_date'])) { + $input['start_date'] = now()->subDays(20)->format('Y-m-d'); } + if (! isset($input['end_date'])) { + $input['end_date'] = now()->format('Y-m-d'); + } + + nlog($input); + $this->replace($input); } } diff --git a/app/Services/Chart/ChartService.php b/app/Services/Chart/ChartService.php index c9a8be50eda7..e69f513f84d0 100644 --- a/app/Services/Chart/ChartService.php +++ b/app/Services/Chart/ChartService.php @@ -76,6 +76,8 @@ class ChartService $currencies = $this->getCurrencyCodes(); $data = []; + $data['start_date'] = $start_date; + $data['end_date'] = $end_date; foreach ($currencies as $key => $value) { $data[$key]['invoices'] = $this->getInvoiceChartQuery($start_date, $end_date, $key); @@ -96,6 +98,8 @@ class ChartService $data = []; $data['currencies'] = $this->getCurrencyCodes(); + $data['start_date'] = $start_date; + $data['end_date'] = $end_date; $revenue = $this->getRevenue($start_date, $end_date); $outstanding = $this->getOutstanding($start_date, $end_date); diff --git a/app/Services/Scheduler/EmailReport.php b/app/Services/Scheduler/EmailReport.php index ce76e54fad04..f1def5d9b61c 100644 --- a/app/Services/Scheduler/EmailReport.php +++ b/app/Services/Scheduler/EmailReport.php @@ -58,7 +58,8 @@ class EmailReport public function run() { - $start_end_dates = $this->calculateStartAndEndDates(); + $start_end_dates = $this->calculateStartAndEndDates($this->scheduler->parameters); + $data = []; $data = [ diff --git a/app/Utils/Traits/MakesDates.php b/app/Utils/Traits/MakesDates.php index f63977932db2..caea8e926d64 100644 --- a/app/Utils/Traits/MakesDates.php +++ b/app/Utils/Traits/MakesDates.php @@ -119,9 +119,9 @@ trait MakesDates * * @return array [$start_date, $end_date]; */ - public function calculateStartAndEndDates(): array + public function calculateStartAndEndDates(array $data): array { - return match ($this->scheduler->parameters['date_range']) { + return match ($data['date_range']) { EmailStatement::LAST7 => [now()->startOfDay()->subDays(7)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], EmailStatement::LAST30 => [now()->startOfDay()->subDays(30)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], EmailStatement::LAST365 => [now()->startOfDay()->subDays(365)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], @@ -131,9 +131,9 @@ trait MakesDates EmailStatement::LAST_QUARTER => [now()->startOfDay()->subQuarterNoOverflow()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->subQuarterNoOverflow()->lastOfQuarter()->format('Y-m-d')], EmailStatement::THIS_YEAR => [now()->startOfDay()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->lastOfYear()->format('Y-m-d')], EmailStatement::LAST_YEAR => [now()->startOfDay()->subYearNoOverflow()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->subYearNoOverflow()->lastOfYear()->format('Y-m-d')], - EmailStatement::CUSTOM_RANGE => [$this->scheduler->parameters['start_date'], $this->scheduler->parameters['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')], }; } -} +} \ No newline at end of file