Extend invoices and invoice items to keep more information.
This commit is contained in:
@@ -28,10 +28,17 @@
|
||||
|
||||
<div class="clear"></div>
|
||||
|
||||
<div class="left" style="width: 110mm; height:15mm;">
|
||||
{{ __('invoice.Invoice Number short') }}: {{ $invoice->number }}
|
||||
@php
|
||||
$height = ($invoice->project) ? 25 : 15;
|
||||
@endphp
|
||||
<div class="left" style="width: 110mm; height:{{ $height }}mm;">
|
||||
{{ __('invoice.Invoice Number short') }}: {{ $invoice->number }}<br/>
|
||||
{{ \App\Enum\InvoiceTypeCode::label($invoice->type) }} {{ (in_array($invoice->type, ['326', '875'])) ? $invoice->project_count : '' }}
|
||||
@if($invoice->project)
|
||||
<br/>{{ $invoice->project->name }} - {{ __('project.Project Number') }}: {{ $invoice->project->project_number }}
|
||||
@endif
|
||||
</div>
|
||||
<div class="right" style=" width: 60mm; height:15mm;">
|
||||
<div class="right" style=" width: 60mm; height:{{ $height }}mm;">
|
||||
<div class="left">{{ __('common.Date') }}:</div>
|
||||
<div class="right text-right">{{ $invoice->created }}</div>
|
||||
</div>
|
||||
|
||||
@@ -5,75 +5,165 @@
|
||||
<title>{{ __('invoice.Invoice') }}</title>
|
||||
<style>
|
||||
|
||||
@page { margin: 50mm 15mm 35mm 20mm; font-family:Figtree,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal; }
|
||||
header { position: fixed; top: -30mm; left: 0; right: 0; height: 25mm; }
|
||||
footer { position: fixed; bottom: -25mm; left: 0; right: 0; height: 10mm; font-size: 10px; border-top: 1px solid black; padding-top: 2mm;}
|
||||
.invoice { font-size: 13px; }
|
||||
.invoice-header { font-weight: bold; border-bottom: 1px solid black; }
|
||||
.item { border-bottom: 1px solid black; }
|
||||
.header-left { width: 100mm; }
|
||||
.header-right { width: 70mm; font-size: 13px; }
|
||||
.header-logo { height: 20mm; }
|
||||
.footer-left { width: 115mm; }
|
||||
.footer-center { width: 25mm; }
|
||||
.footer-right {width: 40mm; }
|
||||
.text-right { text-align: right; }
|
||||
.left { float: left; display: inline-block; }
|
||||
.right { float: right; display: inline-block; }
|
||||
.clear { clear:both; height: 0; line-height: 0; }
|
||||
.page-break { page-break-after: always; }
|
||||
@page {
|
||||
margin: 50mm 15mm 35mm 20mm;
|
||||
font-family: Figtree, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol, "Noto Color Emoji";
|
||||
font-feature-settings: normal;
|
||||
font-variation-settings: normal;
|
||||
}
|
||||
|
||||
header {
|
||||
position: fixed;
|
||||
top: -30mm;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 25mm;
|
||||
}
|
||||
|
||||
footer {
|
||||
position: fixed;
|
||||
bottom: -25mm;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 10mm;
|
||||
font-size: 10px;
|
||||
border-top: 1px solid black;
|
||||
padding-top: 2mm;
|
||||
}
|
||||
|
||||
.invoice {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.invoice-header {
|
||||
font-weight: bold;
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
|
||||
.item {
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
|
||||
.header-left {
|
||||
width: 100mm;
|
||||
}
|
||||
|
||||
.header-right {
|
||||
width: 70mm;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.header-logo {
|
||||
height: 20mm;
|
||||
}
|
||||
|
||||
.footer-left {
|
||||
width: 115mm;
|
||||
}
|
||||
|
||||
.footer-center {
|
||||
width: 25mm;
|
||||
}
|
||||
|
||||
.footer-right {
|
||||
width: 40mm;
|
||||
}
|
||||
|
||||
.text-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.left {
|
||||
float: left;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
height: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
.page-break {
|
||||
page-break-after: always;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@include('pdfs.header')
|
||||
@include('pdfs.header')
|
||||
|
||||
@include('pdfs.footer')
|
||||
@include('pdfs.footer')
|
||||
|
||||
<main>
|
||||
@include('pdfs.address')
|
||||
<main>
|
||||
@include('pdfs.address')
|
||||
|
||||
<div class="invoice">
|
||||
<div class="invoice-header">
|
||||
<div style="width: 15mm;" class="left">{{ __('invoice.Item position short') }}</div>
|
||||
<div style="width: 15mm;" class="left">{{ __('invoice.Item amount short') }}</div>
|
||||
<div style="width: 85mm;" class="left">{{ __('invoice.Item description') }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ __('invoice.Item single price short') }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ __('invoice.Vat short') }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ __('invoice.Item total price short') }}</div>
|
||||
<div class="invoice">
|
||||
<div class="invoice-header">
|
||||
<div style="width: 15mm;" class="left">{{ __('invoice.Item position short') }}</div>
|
||||
<div style="width: 15mm;" class="left">{{ __('invoice.Item amount short') }}</div>
|
||||
<div style="width: 65mm;" class="left">{{ __('invoice.Name') }} / {{ __('invoice.Article number') }}
|
||||
/ {{ __('invoice.Description') }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ __('invoice.Item single price short') }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ __('invoice.Discount') }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ __('invoice.Vat short') }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ __('invoice.Item total price short') }}</div>
|
||||
<br class="clear"/>
|
||||
</div>
|
||||
|
||||
@foreach ($invoice->items as $key => $item)
|
||||
<div class="item">
|
||||
<div style="width: 15mm;" class="left">{{ $key + 1 }}</div>
|
||||
<div style="width: 15mm;" class="left">{{ \Illuminate\Support\Number::format($item->amount) }}</div>
|
||||
<div style="width: 65mm;" class="left">{{ $item->name }}</div>
|
||||
<div style="width: 20mm;"
|
||||
class="left text-right">{{ \Illuminate\Support\Number::currency($item->price) }}</div>
|
||||
<div style="width: 20mm;"
|
||||
class="left text-right">{{ \Illuminate\Support\Number::percentage($item->discount) }}<br/></div>
|
||||
<div style="width: 20mm;"
|
||||
class="left text-right">{{ \Illuminate\Support\Number::percentage($item->tax) }}<br/></div>
|
||||
<div style="width: 20mm;"
|
||||
class="left text-right">{{ \Illuminate\Support\Number::currency($item->total) }}</div>
|
||||
<br class="clear"/>
|
||||
<div style="width: 30mm;" class="left"></div>
|
||||
<div style="width: 85mm;"
|
||||
class="left">{!! ($item->article_number) ? $item->article_number . '<br/>' : ''; !!}{!! nl2br($item->description) !!}</div>
|
||||
<div style="width: 20mm;"
|
||||
class="left text-right">{{ \Illuminate\Support\Number::currency($item->amount * $item->price * $item->discount / 100) }}</div>
|
||||
<div style="width: 20mm;"
|
||||
class="left text-right">{{ \Illuminate\Support\Number::currency($item->amount * $item->price * ($item->tax / 100) * (1 - $item->discount / 100)) }}</div>
|
||||
<br class="clear"/>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
@foreach ($invoice->items as $key => $item)
|
||||
<div class="item">
|
||||
<div style="width: 15mm;" class="left">{{ $key + 1 }}</div>
|
||||
<div style="width: 15mm;" class="left">{{ \Illuminate\Support\Number::format($item->amount) }}</div>
|
||||
<div style="width: 85mm;" class="left">{{ $item->name }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ \Illuminate\Support\Number::currency($item->price) }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ \Illuminate\Support\Number::percentage($item->tax) }}<br/></div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ \Illuminate\Support\Number::currency($item->total) }}</div>
|
||||
<br class="clear"/>
|
||||
<div style="width: 30mm;" class="left"></div>
|
||||
<div style="width: 105mm;" class="left">{{ $item->description }}</div>
|
||||
<div style="width: 20mm;" class="left text-right">{{ \Illuminate\Support\Number::currency($item->amount * $item->price * $item->tax / 100) }}</div>
|
||||
<br class="clear"/>
|
||||
</div>
|
||||
@endforeach
|
||||
<div class="left" style="padding-left: 30mm; width: 105mm;">{{ __('invoice.Net long') }}</div>
|
||||
<div class="left text-right"
|
||||
style="width: 40mm;">{{ \Illuminate\Support\Number::currency($invoice->sum - $invoice->tax) }}</div>
|
||||
<br class="clear"/>
|
||||
<div class="left" style="padding-left: 30mm; width: 105mm;">+ {{ __('invoice.Vat short') }}</div>
|
||||
<div class="left text-right"
|
||||
style="width: 40mm;">{{ \Illuminate\Support\Number::currency($invoice->tax) }}</div>
|
||||
<br class="clear"/>
|
||||
<div class="left" style="width: 30mm;"></div>
|
||||
<div class="left"
|
||||
style="font-weight: bold; width: 105mm; border-bottom: 1px solid black;">{{ __('invoice.Gross long') }}</div>
|
||||
<div class="left text-right"
|
||||
style="font-weight: bold; width: 40mm; border-bottom: 1px solid black;">{{ \Illuminate\Support\Number::currency($invoice->sum) }}</div>
|
||||
<br class="clear"/>
|
||||
|
||||
<div class="left" style="padding-left: 30mm; width: 105mm;">{{ __('invoice.Net long') }}</div>
|
||||
<div class="left text-right" style="width: 40mm;">{{ \Illuminate\Support\Number::currency($invoice->sum - $invoice->tax) }}</div>
|
||||
<br class="clear"/>
|
||||
<div class="left" style="padding-left: 30mm; width: 105mm;">+ {{ __('invoice.Vat short') }}</div>
|
||||
<div class="left text-right" style="width: 40mm;">{{ \Illuminate\Support\Number::currency($invoice->tax) }}</div>
|
||||
<br class="clear"/>
|
||||
<div class="left" style="width: 30mm;"></div>
|
||||
<div class="left" style="font-weight: bold; width: 105mm; border-bottom: 1px solid black;">{{ __('invoice.Gross long') }}</div>
|
||||
<div class="left text-right" style="font-weight: bold; width: 40mm; border-bottom: 1px solid black;">{{ \Illuminate\Support\Number::currency($invoice->sum) }}</div>
|
||||
<br class="clear"/>
|
||||
<div
|
||||
style="margin-top: 5mm;">{{ __('invoice.Final sentence', ['sum' => \Illuminate\Support\Number::currency($invoice->sum), 'date' => \Illuminate\Support\Carbon::parse($invoice->due_date)->format('d.m.Y')]) }}</div>
|
||||
@if($invoice->cash_discount != 0)
|
||||
<div
|
||||
style="margin-top: 5mm;">{{ __('invoice.Discount sentence', ['sum' => \Illuminate\Support\Number::currency($invoice->sum * (100 - $invoice->cash_discount) / 100), 'date' => \Illuminate\Support\Carbon::parse($invoice->cash_discount_date)->format('d.m.Y'), 'discount' => \Illuminate\Support\Number::percentage($invoice->cash_discount)]) }}</div>
|
||||
@endif
|
||||
|
||||
<div style="margin-top: 5mm;">{{ __('invoice.Final sentence', ['sum' => \Illuminate\Support\Number::currency($invoice->sum), 'date' => \Illuminate\Support\Carbon::parse($invoice->created_at)->addDays(14)->format('d.m.Y')]) }}</div>
|
||||
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user