2025-10-20 08:57:51 +02:00
|
|
|
|
<!DOCTYPE html lang="de">
|
|
|
|
|
|
<html>
|
|
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
|
|
<title>Rechnung {{ $invoice['nr'] }}</title>
|
|
|
|
|
|
@if($isPDF)
|
|
|
|
|
|
<link rel="stylesheet" href="{{ public_path('/storage/css/invoice.css') }}">
|
|
|
|
|
|
@else
|
|
|
|
|
|
<link rel="stylesheet" href="/storage/css/invoice.css">
|
|
|
|
|
|
@endif
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
|
@font-face {
|
|
|
|
|
|
font-family: 'Clear Sans';
|
|
|
|
|
|
src: url('{{ $fontPath }}/ClearSans-Regular.ttf') format('truetype');
|
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@font-face {
|
|
|
|
|
|
font-family: 'Clear Sans';
|
|
|
|
|
|
src: url('{{ $fontPath }}/ClearSans-Bold.ttf') format('truetype');
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@font-face {
|
|
|
|
|
|
font-family: 'Clear Sans';
|
|
|
|
|
|
src: url('{{ $fontPath }}/ClearSans-Medium.ttf') format('truetype');
|
|
|
|
|
|
font-weight: medium;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@font-face {
|
|
|
|
|
|
font-family: 'Clear Sans';
|
|
|
|
|
|
src: url('{{ $fontPath }}/ClearSans-Light.ttf') format('truetype');
|
|
|
|
|
|
font-weight: light;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
|
<!-- Fixed page elements need to bee direct descendents of body for Dompdf -->
|
|
|
|
|
|
<!-- see https://github.com/dompdf/dompdf/issues/1190 -->
|
|
|
|
|
|
<img id="logo"
|
|
|
|
|
|
@if($isPDF)
|
|
|
|
|
|
src="{{ public_path('storage/pdf/Logo.svg') }}"
|
|
|
|
|
|
@else
|
|
|
|
|
|
src="/storage/pdf/Logo.svg"
|
|
|
|
|
|
@endif />
|
|
|
|
|
|
|
|
|
|
|
|
<address>
|
|
|
|
|
|
<div class="sender">
|
2025-12-08 13:20:52 +01:00
|
|
|
|
{{ $companyName }},
|
2025-12-05 09:52:11 +01:00
|
|
|
|
{{ $companyAddress['lineOne'] }},
|
2025-12-08 13:20:52 +01:00
|
|
|
|
@if($companyAddress['lineTwo'])
|
2025-12-05 09:52:11 +01:00
|
|
|
|
{{ $companyAddress['lineTwo'] }}
|
|
|
|
|
|
@endif
|
|
|
|
|
|
{{ $companyAddress['postalCode'] }}
|
|
|
|
|
|
{{ $companyAddress['city'] }}
|
2025-10-20 08:57:51 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="recipient">
|
|
|
|
|
|
{{ $invoice['customer']['companyName'] }}<br />
|
|
|
|
|
|
{{ $invoice['billingData']['contactFirstName'] }} {{ $invoice['billingData']['contactLastName'] }}<br />
|
|
|
|
|
|
@if($invoice['billingData']['billingAddress']['lineOne'])
|
|
|
|
|
|
{{ $invoice['billingData']['billingAddress']['lineOne'] }}<br />
|
|
|
|
|
|
@endif
|
|
|
|
|
|
@if($invoice['billingData']['billingAddress']['lineTwo'])
|
|
|
|
|
|
{{ $invoice['billingData']['billingAddress']['lineTwo'] }}<br />
|
|
|
|
|
|
@endif
|
|
|
|
|
|
{{ $invoice['billingData']['billingAddress']['postalCode'] }} {{ $invoice['billingData']['billingAddress']['city'] }}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</address>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<table id="meta">
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Rechnungs-Nr.</th>
|
|
|
|
|
|
<td>
|
2025-10-22 16:13:01 +02:00
|
|
|
|
@if($invoice['paymentStatus'] == 'draft')
|
|
|
|
|
|
Entwurf
|
|
|
|
|
|
@else
|
2025-10-20 08:57:51 +02:00
|
|
|
|
{{ $invoice['nr'] }}
|
2025-10-22 16:13:01 +02:00
|
|
|
|
@endif
|
2025-10-20 08:57:51 +02:00
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
2025-10-21 17:12:50 +02:00
|
|
|
|
@if($invoice['customer']['customerNr'])
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Kunden-Nr.</th>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
{{ $invoice['customer']['customerNr'] }}
|
|
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
@endif
|
2025-10-20 08:57:51 +02:00
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Datum</th>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
@php
|
|
|
|
|
|
$fmt = new \IntlDateFormatter('de_DE', NULL, NULL);
|
|
|
|
|
|
$fmt->setPattern('d. MMMM yyyy');
|
|
|
|
|
|
@endphp
|
|
|
|
|
|
<date>{{ $fmt->format(strtotime($invoice['invoiceDate'])) }}</date>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
@if( !$invoice['billingData']['paymentTerms']['isFixed'] )
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Fälligkeitsdatum</th>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<date>{{ $fmt->format(strtotime($invoice['dueDate'])) }}</date>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
@if(false)
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Leistungsdatum</th>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<date>{{ $fmt->format(strtotime($invoice['service_date'])) }}</date>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
@else
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Leistungszeitraum</th>
|
|
|
|
|
|
<td>{{ $fmt->format(strtotime($invoice['serviceStartDate'])) }} –<br />{{ $fmt->format(strtotime($invoice['serviceEndDate'])) }}</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
<h1>Rechnung</h1>
|
|
|
|
|
|
<h2>{{ $invoice['title'] }}</h2>
|
|
|
|
|
|
|
2026-02-24 16:15:21 +01:00
|
|
|
|
@if($invoice['text'] && $invoice['text'] !== "<p></p>")
|
2025-10-20 08:57:51 +02:00
|
|
|
|
<div class="text">
|
2026-02-24 16:15:21 +01:00
|
|
|
|
{!! $invoice['text'] !!}
|
2025-10-20 08:57:51 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
|
|
|
|
|
|
<table id="line-items">
|
|
|
|
|
|
<thead>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Pos.</th>
|
|
|
|
|
|
<th>Bezeichnung</th>
|
|
|
|
|
|
<th>Menge</th>
|
|
|
|
|
|
<th>Einheit</th>
|
|
|
|
|
|
<th>Einzelpreis</th>
|
|
|
|
|
|
<th>Gesamtpreis</th>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
|
|
|
|
|
|
@foreach ($invoice['items'] as $item)
|
2025-11-19 11:42:54 +01:00
|
|
|
|
@if($item['isSection'])
|
|
|
|
|
|
<tr class="section-title">
|
|
|
|
|
|
<td colspan="6">
|
|
|
|
|
|
<h3>{{ $item['title'] }}</h3>
|
|
|
|
|
|
@if($item['description'])
|
|
|
|
|
|
<p>{{ $item['description'] }}</p>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
@else
|
|
|
|
|
|
<tr class="line-item">
|
|
|
|
|
|
<td>{{ $item['position'] }}</td>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<strong>{{ $item['title'] }}</strong><br>
|
|
|
|
|
|
{{ $item['description'] }}
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>@toCommaFloat($item['quantity'])</td>
|
2025-12-08 13:20:52 +01:00
|
|
|
|
<td>{{ $item['unit']['name'] }}</td>
|
2025-11-19 11:42:54 +01:00
|
|
|
|
<td>@toCurrency($item['price'])</td>
|
|
|
|
|
|
<td>@toCurrency($item['quantity'] * $item['price'])</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
@endif
|
2025-10-20 08:57:51 +02:00
|
|
|
|
@endforeach
|
2025-11-19 11:42:54 +01:00
|
|
|
|
|
2025-10-20 08:57:51 +02:00
|
|
|
|
</tbody>
|
|
|
|
|
|
<tfoot>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td colspan="5">Nettobetrag</td>
|
|
|
|
|
|
<td>@toCurrency($invoice['totalAmount'])</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td colspan="5">19 % MwSt.</td>
|
|
|
|
|
|
<td>@toCurrency(round($invoice['totalAmount'] * 0.19, 2))</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td colspan="5">Gesamt brutto</td>
|
|
|
|
|
|
<td>@toCurrency($invoice['totalAmount'] + round($invoice['totalAmount'] * 0.19, 2))</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</tfoot>
|
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- TODO: Kleingedrucktes aus settings -->
|
|
|
|
|
|
<div id="fine-print">
|
|
|
|
|
|
@if($invoice['billingData']['paymentTerms']['isFixed'])
|
|
|
|
|
|
<p>Zahlungsziel {{ $invoice['billingData']['paymentTerms']['description'] }}</p>
|
|
|
|
|
|
@else
|
|
|
|
|
|
<p>Zahlungsziel {{ $invoice['billingData']['paymentTerms']['days'] }} Tage</p>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div id="giro-code">
|
|
|
|
|
|
<img src="data:image/svg+xml;base64,{{ $giroCode }}" />
|
|
|
|
|
|
<p>
|
|
|
|
|
|
<strong>GiroCode/EPC-QR-Code</strong><br />
|
|
|
|
|
|
Der Code enthält alle relevanten Zahlungsdaten. Mit Ihrer Banking App können Sie den Code scannen und die Zahlung als Überweisung ausführen.
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<footer>
|
|
|
|
|
|
<!-- TODO: Footertext aus Settings -->
|
|
|
|
|
|
Tooloop Multimedia Daniel Stock, Rehmstraße 4, 86161 Augsburg, Tel. +49 821 65079983, www.tooloop.de<br />
|
|
|
|
|
|
Stadtsparkasse Augsburg, DE40 7205 0000 0251 5125 13, BIC AUGSDE77XXX, Ust-IdNr. DE309558315
|
|
|
|
|
|
</footer>
|
|
|
|
|
|
|
2025-10-28 10:21:40 +01:00
|
|
|
|
<pagination>
|
2025-10-29 14:18:34 +01:00
|
|
|
|
<span class="page-number number"></span> von {{ $totalPages }}
|
2025-10-28 10:21:40 +01:00
|
|
|
|
</pagination>
|
|
|
|
|
|
|
2025-10-20 08:57:51 +02:00
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
|
|
</html>
|