diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index ce1b5f5..ddb5601 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -154,7 +154,34 @@ class ReportsController extends Controller return view('reports.scopes.compact', compact('scopes', 'year', 'startBalance', 'endBalance')); } elseif ($type == 'detailed') { - return view('reports.scopes.detailed'); + $yearFilter = function($query) use ($year) { + $query->whereHas('booking', function($query) use ($year) { + $query->whereYear('date', $year); + }); + }; + + $scopes = Scope::select('id', 'name') + ->with([ + 'accountClasses:id,io_type_id,scope_id,name', + 'accountClasses.ioType:id,factor', + 'accountClasses.accountTypes' => function($query) use ($year, $yearFilter) { + return $query->select('id', 'account_class_id', 'name', 'number') + ->whereHas('subBookings', $yearFilter) + ->with(['subBookings' => $yearFilter, + 'subBookings.booking:id,person_or_company,date']); + } + ])->get(); + + foreach ($scopes as $scope) { + foreach ($scope->accountClasses as $accountClass) { + $accountClass->amount = + $accountClass->accountTypes->sum(function ($accountType) { + return $accountType->subBookings->sum('amount'); + }); + } + } + + return view('reports.scopes.detailed', compact('scopes', 'year')); } else { abort(404); } diff --git a/resources/views/bookings/index.blade.php b/resources/views/bookings/index.blade.php index 1c5975f..96d6623 100644 --- a/resources/views/bookings/index.blade.php +++ b/resources/views/bookings/index.blade.php @@ -8,6 +8,8 @@ HS-Rechnung Abrechnung + Konten @endsection @@ -42,7 +44,7 @@ or $firstDate['Y'] == $year and $firstDate['m'] <= $month )) - + {{ startOfMonth($year, $month) }} Saldo @@ -100,7 +102,7 @@ @if (!$booking->isSimple()) @foreach ($booking->subBookings as $subBooking) - + {{ $subBooking->reference }} @@ -137,7 +139,7 @@ or $firstDate['Y'] == $year and $firstDate['m'] <= $month )) - + {{ endOfMonth($year, $month) }} @@ -149,7 +151,7 @@ - + {{ endOfMonth($year, $month) }} diff --git a/resources/views/reports/scopes/detailed.blade.php b/resources/views/reports/scopes/detailed.blade.php index e69de29..be552e2 100644 --- a/resources/views/reports/scopes/detailed.blade.php +++ b/resources/views/reports/scopes/detailed.blade.php @@ -0,0 +1,48 @@ +@extends('layout.master') + +@section('title', 'Buchungen nach Konten ' . $year) + +@section('subnav') + + Zurück + +@endsection + +@section('content') +

@yield('title')

+ @foreach($scopes as $scope) +

{{ $scope->name }}

+ @foreach($scope->accountClasses as $accountClass) +

{{ $accountClass->name }}

+ + + + + + + + @foreach($accountClass->accountTypes as $accountType) + + + + @foreach($accountType->subBookings as $subBooking) + + + + + + + @endforeach + + + + @endforeach +
DatumPositionPerson / FirmaBetrag
+ {{ $accountType->number . ' - ' . $accountType->name }} +
{{ formatDate($subBooking->date()) }}{{ $subBooking->reference }}{{ $subBooking->personOrCompany() }}{!! formatAmount($subBooking->amount) !!}
+ {!! formatAmount($accountType->subBookings + ->sum('amount')) !!} +
+ @endforeach + @endforeach +@endsection