Abrechnungsgrüne nun immer erforderlich
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
@page {
|
||||
margin: 15mm 12mm;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: DejaVu Sans, sans-serif;
|
||||
font-size: 10pt;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 15pt;
|
||||
margin: 0 0 2mm;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 11pt;
|
||||
letter-spacing: 1px;
|
||||
margin: 8mm 0 2mm;
|
||||
border-bottom: 1px solid #000;
|
||||
padding-bottom: 1mm;
|
||||
}
|
||||
|
||||
.subline {
|
||||
font-size: 9pt;
|
||||
color: #444;
|
||||
margin-bottom: 2mm;
|
||||
}
|
||||
|
||||
/* Die Rechnung selbst: keine Rahmen, nur Linien vor den Summen -- so liest sich eine Aufstellung
|
||||
schneller als eine Gittertabelle. */
|
||||
table.statement {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table.statement td {
|
||||
padding: 1.2mm 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.statement td.value {
|
||||
text-align: right;
|
||||
width: 30mm;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
tr.category td {
|
||||
font-weight: bold;
|
||||
padding-top: 3mm;
|
||||
}
|
||||
|
||||
tr.entry td.label {
|
||||
padding-left: 8mm;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
tr.entry td.value {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
tr.sum td {
|
||||
font-weight: bold;
|
||||
border-top: 1px solid #000;
|
||||
padding-top: 1.5mm;
|
||||
}
|
||||
|
||||
tr.result td {
|
||||
font-weight: bold;
|
||||
font-size: 12pt;
|
||||
padding-top: 5mm;
|
||||
}
|
||||
|
||||
.positive { color: #4caf50; }
|
||||
.negative { color: #f44336; }
|
||||
|
||||
.footnote {
|
||||
margin-top: 10mm;
|
||||
font-size: 8pt;
|
||||
color: #444;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.page-break {
|
||||
page-break-before: always;
|
||||
}
|
||||
|
||||
/* Die Anlage bleibt eine klassische Belegtabelle mit Rahmen. */
|
||||
table.receipts {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 6mm;
|
||||
}
|
||||
|
||||
table.receipts th,
|
||||
table.receipts td {
|
||||
border: 1px solid #000;
|
||||
padding: 4px 6px;
|
||||
font-size: 8pt;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.receipts th {
|
||||
background: #f2f2f2;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table.receipts td.value,
|
||||
table.receipts th.value {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
width: 22mm;
|
||||
}
|
||||
|
||||
table.receipts tr.group-sum td {
|
||||
font-weight: bold;
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 10pt;
|
||||
margin: 5mm 0 1.5mm;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Einnahmen-Überschuss-Rechnung</h1>
|
||||
<div class="subline">
|
||||
{{ $event->name }}
|
||||
· {{ $event->start_date->format('d.m.Y') }}–{{ $event->end_date->format('d.m.Y') }}
|
||||
@if($event->location)· {{ $event->location }}@endif
|
||||
· Stand: {{ $createdAt }}
|
||||
</div>
|
||||
|
||||
<h2>Einnahmen</h2>
|
||||
<table class="statement">
|
||||
@foreach($income['categories'] as $category)
|
||||
<tr class="category">
|
||||
<td>{{ $category['name'] }}</td>
|
||||
<td class="value">{{ $money($category['total']) }} €</td>
|
||||
</tr>
|
||||
@foreach($category['entries'] as $entry)
|
||||
<tr class="entry">
|
||||
<td class="label">{{ $entry['name'] }}</td>
|
||||
<td class="value">{{ $money($entry['amount']) }} €</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endforeach
|
||||
<tr class="sum">
|
||||
<td>Summe Einnahmen</td>
|
||||
<td class="value">{{ $money($income['total']) }} €</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Ausgaben</h2>
|
||||
<table class="statement">
|
||||
@foreach($expenses['groups'] as $group)
|
||||
<tr class="entry">
|
||||
<td class="label">{{ $group['name'] }}</td>
|
||||
<td class="value">{{ $money($group['sum']) }} €</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
<tr class="sum">
|
||||
<td>Summe Ausgaben</td>
|
||||
<td class="value">{{ $money($expenses['total']) }} €</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table class="statement">
|
||||
<tr class="result">
|
||||
<td class="{{ $result->getAmount() >= 0 ? 'positive' : 'negative' }}">
|
||||
{{ $result->getAmount() >= 0 ? 'Überschuss' : 'Fehlbetrag' }}
|
||||
</td>
|
||||
<td class="value {{ $result->getAmount() >= 0 ? 'positive' : 'negative' }}">
|
||||
{{ $money($result) }} €
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="footnote">
|
||||
Berücksichtigt sind nur tatsächlich vereinnahmte Beiträge und erfasste Belege. Nicht enthalten sind
|
||||
offene Beiträge, Budget- und Schätzwerte, erstattete Beiträge sowie Auslagen, auf deren Auszahlung
|
||||
verzichtet wurde.
|
||||
@if($event->tax_liable)
|
||||
<br />Alle Beträge sind Bruttobeträge inklusive {{ $event->vat_rate }} % Umsatzsteuer.
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@php
|
||||
$documentedGroups = array_filter($expenses['groups'], fn ($group) => count($group['rows']) > 0);
|
||||
@endphp
|
||||
|
||||
@if(count($documentedGroups) > 0)
|
||||
<div class="page-break"></div>
|
||||
|
||||
<h1>Anlage: Belege</h1>
|
||||
<div class="subline">{{ $event->name }} · Stand: {{ $createdAt }}</div>
|
||||
|
||||
@foreach($documentedGroups as $group)
|
||||
<h3>{{ $group['name'] }}</h3>
|
||||
<table class="receipts">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 22mm;">Beleg-Nr.</th>
|
||||
<th style="width: 18mm;">Datum</th>
|
||||
<th>Zweck</th>
|
||||
<th class="value">Betrag</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($group['rows'] as $row)
|
||||
<tr>
|
||||
<td>{{ $row['number'] }}</td>
|
||||
<td>{{ $row['date'] }}</td>
|
||||
<td>{{ $row['purpose'] }}</td>
|
||||
<td class="value">{{ $money($row['amount']) }} €</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
<tr class="group-sum">
|
||||
<td colspan="3">Zwischensumme {{ $group['name'] }}</td>
|
||||
<td class="value">{{ $money($group['sum']) }} €</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user