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/lang/de/report.php b/resources/lang/de/report.php index 89ffaca..f8f8962 100644 --- a/resources/lang/de/report.php +++ b/resources/lang/de/report.php @@ -26,4 +26,8 @@ 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', + 'view_year_to_year' => 'View Year to Year Report', ]; diff --git a/resources/lang/en/report.php b/resources/lang/en/report.php index 89ffaca..f8f8962 100644 --- a/resources/lang/en/report.php +++ b/resources/lang/en/report.php @@ -26,4 +26,8 @@ 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', + 'view_year_to_year' => 'View Year to Year Report', ]; diff --git a/resources/lang/id/report.php b/resources/lang/id/report.php index 9f4bd4d..c5f8ac0 100644 --- a/resources/lang/id/report.php +++ b/resources/lang/id/report.php @@ -26,4 +26,8 @@ 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', + 'view_year_to_year' => 'Lihat Laporan Tahun ke Tahun', ]; 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..2c075af --- /dev/null +++ b/resources/views/reports/payments/year_to_year.blade.php @@ -0,0 +1,98 @@ +@extends('layouts.app') + +@section('title', __('report.year_to_year')) + +@section('content') +
+ +| {{ __('time.month') }} | +{{ __('payment.payment') }} | +{{ __('payment.cash_in') }} | +{{ __('payment.cash_out') }} | +{{ __('report.profit') }} | +{{ __('app.action') }} | + + + @php $chartData = []; @endphp + @foreach(get_years() as $year) + @php + $any = isset($reports[$year]); + @endphp +
|---|---|---|---|---|---|
| {{ $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')) }} | ++ |