From a57a54595398d39d0d4ee764b5fce7291e147659 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 12 Jan 2019 22:45:13 +0800 Subject: [PATCH 1/4] Add year to year payment report --- app/Entities/Reports/ReportsRepository.php | 22 +++++ app/Http/Controllers/ReportsController.php | 7 ++ .../views/reports/payments/year_to_year.blade.php | 101 +++++++++++++++++++++ routes/web/reports.php | 1 + 4 files changed, 131 insertions(+) create mode 100755 resources/views/reports/payments/year_to_year.blade.php diff --git a/app/Entities/Reports/ReportsRepository.php b/app/Entities/Reports/ReportsRepository.php index dbf74c7..f58e0a9 100755 --- a/app/Entities/Reports/ReportsRepository.php +++ b/app/Entities/Reports/ReportsRepository.php @@ -106,6 +106,28 @@ class ReportsRepository extends BaseRepository return collect($reports); } + public function getYearToYearReports() + { + $rawQuery = 'YEAR(date) as year'; + $rawQuery .= ', count(`id`) as count'; + $rawQuery .= ', sum(if(in_out = 1, amount, 0)) AS cashin'; + $rawQuery .= ', sum(if(in_out = 0, amount, 0)) AS cashout'; + + $reportsData = DB::table('payments')->select(DB::raw($rawQuery)) + ->groupBy(DB::raw('YEAR(date)')) + ->orderBy('date', 'asc') + ->get(); + + $reports = []; + foreach ($reportsData as $report) { + $key = str_pad($report->year, 2, '0', STR_PAD_LEFT); + $reports[$key] = $report; + $reports[$key]->profit = $report->cashin - $report->cashout; + } + + return collect($reports); + } + /** * Get current credit/receiveble earnings report. * diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index 52eed1b..e385c20 100755 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -61,6 +61,13 @@ class ReportsController extends Controller return view('reports.payments.yearly', compact('reports', 'years', 'year')); } + public function yearToYear(Request $request) + { + $reports = $this->repo->getYearToYearReports(); + + return view('reports.payments.year_to_year', compact('reports')); + } + public function currentCredits() { $projects = $this->repo->getCurrentCredits(); diff --git a/resources/views/reports/payments/year_to_year.blade.php b/resources/views/reports/payments/year_to_year.blade.php new file mode 100755 index 0000000..8133b28 --- /dev/null +++ b/resources/views/reports/payments/year_to_year.blade.php @@ -0,0 +1,101 @@ +@extends('layouts.app') + +@section('title', __('report.year_to_year')) + +@section('content') + + +
+

{{ __('report.sales_graph') }}

+
+ {{ Option::get('money_sign', 'Rp') }} +
+
{{ __('time.month') }}
+
+
+ +
+

{{ __('report.detail') }}

+
+ + + + + + + + + + + @php $chartData = []; @endphp + @foreach(get_years() as $year) + @php + $any = isset($reports[$year]); + @endphp + + + + + + + + + @php + $chartData[] = ['year' => $year, 'value' => $profit]; + @endphp + @endforeach + + + + + + + + + + + +
{{ __('time.month') }}{{ __('payment.payment') }}{{ __('payment.cash_in') }}{{ __('payment.cash_out') }}{{ __('report.profit') }}{{ __('app.action') }}
{{ $year }}{{ $any ? $reports[$year]->count : 0 }}{{ format_money($any ? $reports[$year]->cashin : 0) }}{{ format_money($any ? $reports[$year]->cashout : 0) }}{{ format_money($profit = $any ? $reports[$year]->profit : 0) }} + {{ link_to_route( + 'reports.payments.yearly', + __('report.view_yearly'), + ['month' => $year, 'year' => $year], + [ + 'class' => 'btn btn-info btn-xs', + 'title' => __('report.yearly', ['year' => $year]), + ] + ) }} +
{{ trans('app.total') }}{{ $reports->sum('count') }}{{ format_money($reports->sum('cashin')) }}{{ format_money($reports->sum('cashout')) }}{{ format_money($reports->sum('profit')) }} 
+
+
+@endsection + +@section('ext_css') + {{ Html::style(url('assets/css/plugins/morris.css')) }} +@endsection + +@section('ext_js') + {{ Html::script(url('assets/js/plugins/morris/raphael.min.js')) }} + {{ Html::script(url('assets/js/plugins/morris/morris.min.js')) }} +@endsection + +@section('script') + +@endsection diff --git a/routes/web/reports.php b/routes/web/reports.php index 5748042..8c37e6b 100644 --- a/routes/web/reports.php +++ b/routes/web/reports.php @@ -8,6 +8,7 @@ Route::group(['middleware' => ['web', 'role:admin'], 'prefix' => 'reports'], fun Route::get('payments/daily', 'ReportsController@daily')->name('reports.payments.daily'); Route::get('payments/monthly', 'ReportsController@monthly')->name('reports.payments.monthly'); Route::get('payments/yearly', 'ReportsController@yearly')->name('reports.payments.yearly'); + Route::get('payments/year_to_year', 'ReportsController@yearToYear')->name('reports.payments.year_to_year'); Route::get('current-credits', 'ReportsController@currentCredits')->name('reports.current-credits'); /* From bc0e19cad6fcd8c8aeb47f456e6b51212e5a9590 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 12 Jan 2019 22:46:09 +0800 Subject: [PATCH 2/4] Add lang value for report.year_to_year key --- resources/lang/de/report.php | 3 +++ resources/lang/en/report.php | 3 +++ resources/lang/id/report.php | 3 +++ 3 files changed, 9 insertions(+) diff --git a/resources/lang/de/report.php b/resources/lang/de/report.php index 89ffaca..f2eff6a 100644 --- a/resources/lang/de/report.php +++ b/resources/lang/de/report.php @@ -26,4 +26,7 @@ return [ 'this_year' => 'This Year', 'view_yearly' => 'View Yearly', 'view_yearly_label' => 'View Report per', + + // Year to year + 'year_to_year' => 'Year to Year Report', ]; diff --git a/resources/lang/en/report.php b/resources/lang/en/report.php index 89ffaca..f2eff6a 100644 --- a/resources/lang/en/report.php +++ b/resources/lang/en/report.php @@ -26,4 +26,7 @@ return [ 'this_year' => 'This Year', 'view_yearly' => 'View Yearly', 'view_yearly_label' => 'View Report per', + + // Year to year + 'year_to_year' => 'Year to Year Report', ]; diff --git a/resources/lang/id/report.php b/resources/lang/id/report.php index 9f4bd4d..23ca60d 100644 --- a/resources/lang/id/report.php +++ b/resources/lang/id/report.php @@ -26,4 +26,7 @@ return [ 'this_year' => 'Tahun Ini', 'view_yearly' => 'Lihat Tahunan', 'view_yearly_label' => 'Lihat Tahunan per', + + // Year to year + 'year_to_year' => 'Laponan Tahun ke Tahun', ]; From 0a89159cde3cfa2b4606116361802e35b95410cb Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 12 Jan 2019 22:49:33 +0800 Subject: [PATCH 3/4] Add year to year report link to yearly report page --- resources/lang/de/report.php | 3 ++- resources/lang/en/report.php | 3 ++- resources/lang/id/report.php | 3 ++- resources/views/reports/payments/yearly.blade.php | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/resources/lang/de/report.php b/resources/lang/de/report.php index f2eff6a..f8f8962 100644 --- a/resources/lang/de/report.php +++ b/resources/lang/de/report.php @@ -28,5 +28,6 @@ return [ 'view_yearly_label' => 'View Report per', // Year to year - 'year_to_year' => 'Year to Year Report', + 'year_to_year' => 'Year to Year Report', + 'view_year_to_year' => 'View Year to Year Report', ]; diff --git a/resources/lang/en/report.php b/resources/lang/en/report.php index f2eff6a..f8f8962 100644 --- a/resources/lang/en/report.php +++ b/resources/lang/en/report.php @@ -28,5 +28,6 @@ return [ 'view_yearly_label' => 'View Report per', // Year to year - 'year_to_year' => 'Year to Year Report', + 'year_to_year' => 'Year to Year Report', + 'view_year_to_year' => 'View Year to Year Report', ]; diff --git a/resources/lang/id/report.php b/resources/lang/id/report.php index 23ca60d..c5f8ac0 100644 --- a/resources/lang/id/report.php +++ b/resources/lang/id/report.php @@ -28,5 +28,6 @@ return [ 'view_yearly_label' => 'Lihat Tahunan per', // Year to year - 'year_to_year' => 'Laponan Tahun ke Tahun', + 'year_to_year' => 'Laponan Tahun ke Tahun', + 'view_year_to_year' => 'Lihat Laporan Tahun ke Tahun', ]; diff --git a/resources/views/reports/payments/yearly.blade.php b/resources/views/reports/payments/yearly.blade.php index ca28dd9..b0c8de3 100755 --- a/resources/views/reports/payments/yearly.blade.php +++ b/resources/views/reports/payments/yearly.blade.php @@ -12,6 +12,7 @@ {{ Form::select('year', $years, $year, ['class' => 'form-control']) }} {{ Form::submit(__('report.view_report'), ['class' => 'btn btn-info btn-sm']) }} {{ link_to_route('reports.payments.yearly', __('report.this_year'), [], ['class' => 'btn btn-default btn-sm']) }} +{{ link_to_route('reports.payments.year_to_year', __('report.view_year_to_year'), [], ['class' => 'btn btn-success btn-sm']) }} {{ Form::close() }}
From e056d56580faf7cec3f8275af542c450c36d5fd7 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 12 Jan 2019 22:57:41 +0800 Subject: [PATCH 4/4] Change line chart to bar chart for year to year report --- resources/views/reports/payments/year_to_year.blade.php | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/resources/views/reports/payments/year_to_year.blade.php b/resources/views/reports/payments/year_to_year.blade.php index 8133b28..2c075af 100755 --- a/resources/views/reports/payments/year_to_year.blade.php +++ b/resources/views/reports/payments/year_to_year.blade.php @@ -11,7 +11,7 @@

{{ __('report.sales_graph') }}

{{ Option::get('money_sign', 'Rp') }} -
+
{{ __('time.month') }}
@@ -84,17 +84,14 @@ @section('script')