From 0b791dc9bfc31180acdda53b6c44ab3842a7e223 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 9 Feb 2017 17:13:47 +0200 Subject: [PATCH] Use fiscal year in date range picker #1310 --- app/Ninja/Presenters/AccountPresenter.php | 20 +++++++++++++++++++ resources/lang/en/texts.php | 3 ++- resources/views/dashboard.blade.php | 8 +------- .../views/reports/chart_builder.blade.php | 11 +++------- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/app/Ninja/Presenters/AccountPresenter.php b/app/Ninja/Presenters/AccountPresenter.php index 9560e844d7fc..9921b33c4bce 100644 --- a/app/Ninja/Presenters/AccountPresenter.php +++ b/app/Ninja/Presenters/AccountPresenter.php @@ -2,6 +2,7 @@ namespace App\Ninja\Presenters; +use Carbon; use Domain; use Laracasts\Presenter\Presenter; use stdClass; @@ -112,4 +113,23 @@ class AccountPresenter extends Presenter return $data; } + + public function dateRangeOptions() + { + $yearStart = Carbon::parse($this->entity->financialYearStart() ?: '2000-01-01'); + $month = $yearStart->month - 1; + $year = $yearStart->year; + $lastYear = $year - 1; + + $str = '{ + "' . trans('texts.last_7_days') . '": [moment().subtract(6, "days"), moment()], + "' . trans('texts.last_30_days') . '": [moment().subtract(29, "days"), moment()], + "' . trans('texts.this_month') . '": [moment().startOf("month"), moment().endOf("month")], + "' . trans('texts.last_month') . '": [moment().subtract(1, "month").startOf("month"), moment().subtract(1, "month").endOf("month")], + "' . trans('texts.this_year') . '": [moment().date(1).month(' . $month . ').year(' . $year . '), moment()], + "' . trans('texts.last_year') . '": [moment().date(1).month(' . $month . ').year(' . $lastYear . '), moment().date(1).month(' . $month . ').year(' . $year . ').subtract(1, "day")], + }'; + + return $str; + } } diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 547e07be1238..2c7622884fa6 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2356,7 +2356,8 @@ $LANG = array( 'template' => 'Template', 'start_of_week_help' => 'Used by date selectors', 'financial_year_start_help' => 'Used by date range selectors', - 'reports_help' => 'Shift + Click to sort by multple columns, Ctrl + Click to clear the grouping.' + 'reports_help' => 'Shift + Click to sort by multple columns, Ctrl + Click to clear the grouping.', + 'this_year' => 'This Year', ); diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php index bf1b1bdd16df..3ff821d9f563 100644 --- a/resources/views/dashboard.blade.php +++ b/resources/views/dashboard.blade.php @@ -110,13 +110,7 @@ startDate: chartStartDate, endDate: chartEndDate, linkedCalendars: false, - ranges: { - "{{ trans('texts.last_7_days') }}": [moment().subtract(6, 'days'), moment()], - "{{ trans('texts.last_30_days') }}": [moment().subtract(29, 'days'), moment()], - "{{ trans('texts.this_month') }}": [moment().startOf('month'), moment().endOf('month')], - "{{ trans('texts.last_month') }}": [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')], - "{{ trans('texts.last_year') }}": [moment().subtract(1, 'year'), moment()], - } + ranges: {!! $account->present()->dateRangeOptions !!} }, cb); cb(chartStartDate, chartEndDate); diff --git a/resources/views/reports/chart_builder.blade.php b/resources/views/reports/chart_builder.blade.php index 077295a6a192..caedeb10e7db 100644 --- a/resources/views/reports/chart_builder.blade.php +++ b/resources/views/reports/chart_builder.blade.php @@ -37,18 +37,13 @@ $('#reportrange').daterangepicker({ locale: { - "format": "{{ $account->getMomentDateFormat() }}", + format: "{{ $account->getMomentDateFormat() }}", + customRangeLabel: "{{ trans('texts.custom_range') }}", }, startDate: chartStartDate, endDate: chartEndDate, linkedCalendars: false, - ranges: { - 'Last 7 Days': [moment().subtract(6, 'days'), moment()], - 'Last 30 Days': [moment().subtract(29, 'days'), moment()], - 'This Month': [moment().startOf('month'), moment().endOf('month')], - 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')], - 'This Year': [moment().startOf('year'), moment().endOf('month')] - } + ranges: {!! $account->present()->dateRangeOptions !!} }, cb); cb(chartStartDate, chartEndDate);