Extend invoices and invoice items to keep more information.

This commit is contained in:
2025-01-31 13:04:59 +01:00
parent e2240c017d
commit d8afe4960e
20 changed files with 1475 additions and 640 deletions

View File

@@ -2,3 +2,7 @@ resources/views/xml/invoice.blade.php
BuyerReference = Leitweg-ID (BT-10)
PaymentMeansCode = Bezahlarten
InvoicedQuantity unitCode="C62"
<cac:Country>
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
</cac:Country>

View File

@@ -8,10 +8,15 @@
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>{{ $invoice->number }}</cbc:ID>
<cbc:IssueDate>{{ \Carbon\Carbon::parse($invoice->created_at)->format('Y-m-d') }}</cbc:IssueDate>
<cbc:DueDate>{{ \Carbon\Carbon::parse($invoice->created_at)->addDays(14)->format('Y-m-d') }}</cbc:DueDate>
<cbc:DueDate>{{ \Carbon\Carbon::parse($invoice->due_date)->format('Y-m-d') }}</cbc:DueDate>
<cbc:InvoiceTypeCode>{{ $invoice->type }}</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:DocumentCurrencyCode>{{ $invoice->currency_code }}</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>0</cbc:BuyerReference>
@if(!is_null($invoice->project_id))
<cac:ProjectReference>
<cbc:ID>{{ $invoice->project->project_number }}</cbc:ID>
</cac:ProjectReference>
@endif
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="EM">{{ $options->email }}</cbc:EndpointID>
@@ -36,7 +41,7 @@
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
@endif
@endif
<cac:PartyTaxScheme>
<cbc:CompanyID>{{ $options->tax_number }}</cbc:CompanyID>
<cac:TaxScheme>
@@ -82,15 +87,17 @@
</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
@if($invoice->cash_discount != 0)
<cac:PaymentTerms>
<cbc:Note>Zahlbar bis spätestens {{ \Carbon\Carbon::parse($invoice->created_at)->addDays(14)->format('d.m.Y') }}.</cbc:Note>
<cbc:Note>{{ __('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)]) }}</cbc:Note>
</cac:PaymentTerms>
@endif
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">{{ $invoice->tax }}</cbc:TaxAmount>
<cbc:TaxAmount currencyID="{{ $invoice->currency_code }}">{{ $invoice->tax }}</cbc:TaxAmount>
@foreach($taxes as $tax_rate => $tax)
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">{{ $tax['taxable'] }}</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">{{ $tax['tax'] }}</cbc:TaxAmount>
<cbc:TaxableAmount currencyID="{{ $invoice->currency_code }}">{{ $tax['taxable'] }}</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="{{ $invoice->currency_code }}">{{ $tax['tax'] }}</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>{{ $tax_rate }}</cbc:Percent>
@@ -99,35 +106,49 @@
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
@endforeach
@endforeach
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">{{ $invoice->sum - $invoice->tax }}</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">{{ $invoice->sum - $invoice->tax }}</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">{{ $invoice->sum }}</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="EUR">0.00</cbc:AllowanceTotalAmount>
<cbc:PrepaidAmount currencyID="EUR">0</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="EUR">{{ $invoice->sum }}</cbc:PayableAmount>
<cbc:LineExtensionAmount currencyID="{{ $invoice->currency_code }}">{{ $invoice->sum - $invoice->tax }}</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="{{ $invoice->currency_code }}">{{ $invoice->sum - $invoice->tax }}</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="{{ $invoice->currency_code }}">{{ $invoice->sum }}</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="{{ $invoice->currency_code }}">0.00</cbc:AllowanceTotalAmount>
<cbc:PrepaidAmount currencyID="{{ $invoice->currency_code }}">0</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="{{ $invoice->currency_code }}">{{ $invoice->sum }}</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
@foreach($invoice->items as $item)
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">{{ $item->amount }}</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">{{ $item->amount * $item->price }}</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Description>{{ $item->description }}</cbc:Description>
<cbc:Name>{{ $item->name }}</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>{{ $item->tax }}</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">{{ $item->price }}</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
@endforeach
<cac:InvoiceLine>+
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">{{ $item->amount }}</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="{{ $invoice->currency_code }}">{{ $item->amount * $item->price * (100 - $item->discount) / 100 }}</cbc:LineExtensionAmount>
@if($item->discount != 0)
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Rabatt</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>{{ $item->discount }}</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="{{ $invoice->currency_code }}">{{ $item->amount * $item->price * $item->discount / 100 }}</cbc:Amount>
<cbc:BaseAmount currencyID="{{ $invoice->currency_code }}">{{ $item->amount * $item->price }}</cbc:BaseAmount>
</cac:AllowanceCharge>
@endif
<cac:Item>
<cbc:Description>{{ $item->description }}</cbc:Description>
<cbc:Name>{{ $item->name }}</cbc:Name>
@if(!is_null($invoice->article_number))
<cac:SellersItemIdentification>
<cbc:ID>{{ $item->article_number }}</cbc:ID>
</cac:SellersItemIdentification>
@endif
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>{{ $item->tax }}</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="{{ $invoice->currency_code }}">{{ $item->price }}</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
@endforeach
</Invoice>