From d0cdd5f7f5fb4f3dd6b90a4fe4c80101fb9a094d Mon Sep 17 00:00:00 2001 From: AndreasHans Date: Fri, 19 Dec 2025 10:19:41 +0100 Subject: [PATCH 1/6] port from ado --- .../App/src/Common/PEPPOL30Impl.Codeunit.al | 38 +++++++++++++++---- .../src/PEPPOL30ManagementTests.Codeunit.al | 6 +-- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/Apps/W1/PEPPOL/App/src/Common/PEPPOL30Impl.Codeunit.al b/src/Apps/W1/PEPPOL/App/src/Common/PEPPOL30Impl.Codeunit.al index fccbec1fe7..e581fd9aa1 100644 --- a/src/Apps/W1/PEPPOL/App/src/Common/PEPPOL30Impl.Codeunit.al +++ b/src/Apps/W1/PEPPOL/App/src/Common/PEPPOL30Impl.Codeunit.al @@ -47,6 +47,8 @@ codeunit 37201 "PEPPOL30 Impl." SalespersonTxt: Label 'Salesperson'; UoMforPieceINUNECERec20ListIDTxt: Label 'EA', Locked = true; VATTxt: Label 'VAT', Locked = true; + PaymentDisAmtTxt: Label 'Payment Discount Amount'; + AllowanceChargePaymentDiscountReasonCodeTxt: Label '95', Locked = true; procedure GetGeneralInfo(SalesHeader: Record "Sales Header"; var ID: Text; var IssueDate: Text; var InvoiceTypeCode: Text; var InvoiceTypeCodeListID: Text; var Note: Text; var TaxPointDate: Text; var DocumentCurrencyCode: Text; var DocumentCurrencyCodeListID: Text; var TaxCurrencyCode: Text; var TaxCurrencyCodeListID: Text; var AccountingCost: Text) var @@ -676,7 +678,7 @@ codeunit 37201 "PEPPOL30 Impl." var GLSetup: Record "General Ledger Setup"; begin - TaxableAmount := Format(VATAmtLine."VAT Base", 0, 9); + TaxableAmount := Format(VATAmtLine."VAT Base" - VATAmtLine."Pmt. Discount Amount", 0, 9); TaxAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); SubtotalTaxAmount := Format(VATAmtLine."VAT Amount", 0, 9); TaxSubtotalCurrencyID := GetSalesDocCurrencyCode(SalesHeader); @@ -737,13 +739,13 @@ codeunit 37201 "PEPPOL30 Impl." Format(VATAmtLine."Amount Including VAT" - Round(VATAmtLine."Amount Including VAT", 0.01), 0, 9); PayableRndingAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); - PayableAmount := Format(Round(VATAmtLine."Amount Including VAT", 0.01), 0, 9); + PayableAmount := Format(Round(VATAmtLine."Amount Including VAT" - VATAmtLine."Pmt. Discount Amount", 0.01), 0, 9); PayableAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); end else begin PayableRoundingAmount := Format(TempSalesLine."Amount Including VAT", 0, 9); PayableRndingAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); - PayableAmount := Format(Round(VATAmtLine."Amount Including VAT" + TempSalesLine."Amount Including VAT", 0.01), 0, 9); + PayableAmount := Format(Round(VATAmtLine."Amount Including VAT" + TempSalesLine."Amount Including VAT" - VATAmtLine."Pmt. Discount Amount", 0.01), 0, 9); PayableAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); end; end; @@ -753,13 +755,13 @@ codeunit 37201 "PEPPOL30 Impl." LineExtensionAmount := Format(Round(VATAmtLine."VAT Base", 0.01) + Round(VATAmtLine."Invoice Discount Amount", 0.01), 0, 9); LegalMonetaryTotalCurrencyID := GetSalesDocCurrencyCode(SalesHeader); - TaxExclusiveAmount := Format(Round(VATAmtLine."VAT Base", 0.01), 0, 9); + TaxExclusiveAmount := Format(Round(VATAmtLine."VAT Base" - VATAmtLine."Pmt. Discount Amount", 0.01), 0, 9); TaxExclusiveAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); - TaxInclusiveAmount := Format(Round(VATAmtLine."Amount Including VAT", 0.01, '>'), 0, 9); // Should be two decimal places + TaxInclusiveAmount := Format(Round(VATAmtLine."Amount Including VAT" - VATAmtLine."Pmt. Discount Amount", 0.01, '>'), 0, 9); // Should be two decimal places TaxInclusiveAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); - AllowanceTotalAmount := Format(Round(VATAmtLine."Invoice Discount Amount", 0.01), 0, 9); + AllowanceTotalAmount := Format(Round(VATAmtLine."Invoice Discount Amount" + VATAmtLine."Pmt. Discount Amount", 0.01), 0, 9); AllowanceTotalAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); TaxInclusiveAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); @@ -768,11 +770,14 @@ codeunit 37201 "PEPPOL30 Impl." end; procedure GetLineGeneralInfo(SalesLine: Record "Sales Line"; SalesHeader: Record "Sales Header"; var InvoiceLineID: Text; var InvoiceLineNote: Text; var InvoicedQuantity: Text; var InvoiceLineExtensionAmount: Text; var LineExtensionAmountCurrencyID: Text; var InvoiceLineAccountingCost: Text) + var + SalesLineLineAmount: Decimal; begin InvoiceLineID := Format(SalesLine."Line No.", 0, 9); InvoiceLineNote := DelChr(Format(SalesLine.Type), '<>'); InvoicedQuantity := Format(SalesLine.Quantity, 0, 9); - InvoiceLineExtensionAmount := Format(SalesLine."VAT Base Amount" + SalesLine."Inv. Discount Amount", 0, 9); + SalesLineLineAmount := SalesLine."Line Amount"; + InvoiceLineExtensionAmount := Format(SalesLineLineAmount, 0, 9); LineExtensionAmountCurrencyID := GetSalesDocCurrencyCode(SalesHeader); InvoiceLineAccountingCost := ''; end; @@ -1337,4 +1342,23 @@ codeunit 37201 "PEPPOL30 Impl." exit("Sales Line Type"::"G/L Account"); end; end; + + procedure GetAllowanceChargeInfoPaymentDiscount(VATAmtLine: Record "VAT Amount Line"; SalesHeader: Record "Sales Header"; var ChargeIndicator: Text; var AllowanceChargeReasonCode: Text; var AllowanceChargeListID: Text; var AllowanceChargeReason: Text; var Amount: Text; var AllowanceChargeCurrencyID: Text; var TaxCategoryID: Text; var TaxCategorySchemeID: Text; var Percent: Text; var AllowanceChargeTaxSchemeID: Text) + begin + if VATAmtLine."Pmt. Discount Amount" = 0 then begin + ChargeIndicator := ''; + exit; + end; + + ChargeIndicator := 'false'; + AllowanceChargeReasonCode := AllowanceChargePaymentDiscountReasonCodeTxt; + AllowanceChargeListID := GetUNCL4465ListID(); + AllowanceChargeReason := PaymentDisAmtTxt; + Amount := Format(VATAmtLine."Pmt. Discount Amount", 0, 9); + AllowanceChargeCurrencyID := GetSalesDocCurrencyCode(SalesHeader); + TaxCategoryID := VATAmtLine."Tax Category"; + TaxCategorySchemeID := ''; + Percent := Format(VATAmtLine."VAT %", 0, 9); + AllowanceChargeTaxSchemeID := VATTxt; + end; } \ No newline at end of file diff --git a/src/Apps/W1/PEPPOL/Test/src/PEPPOL30ManagementTests.Codeunit.al b/src/Apps/W1/PEPPOL/Test/src/PEPPOL30ManagementTests.Codeunit.al index ffb73c40e9..cf66f2d825 100644 --- a/src/Apps/W1/PEPPOL/Test/src/PEPPOL30ManagementTests.Codeunit.al +++ b/src/Apps/W1/PEPPOL/Test/src/PEPPOL30ManagementTests.Codeunit.al @@ -3954,6 +3954,7 @@ codeunit 139235 "PEPPOL30 Management Tests" LineExtensionAmountCurrencyID: Text; unitCode: Text; unitCodeListID: Text; + SalesInvoiceLineLineAmount: Decimal; begin SalesInvoiceHeader.Get(PostedInvoiceNo); SalesHeader.TransferFields(SalesInvoiceHeader); @@ -3975,9 +3976,8 @@ codeunit 139235 "PEPPOL30 Management Tests" Assert.AreEqual(Format(SalesInvoiceLine.Quantity, 0, 9), InvoicedQuantity, ''); Assert.AreEqual(UnitOfMeasure."International Standard Code", unitCode, ''); Assert.AreEqual('UNECERec20', unitCodeListID, ''); - Assert.AreEqual( - Format(SalesInvoiceLine."VAT Base Amount" + SalesInvoiceLine."Inv. Discount Amount", 0, 9), - InvoiceLineExtensionAmount, ''); + SalesInvoiceLineLineAmount := SalesInvoiceLine."Line Amount"; + Assert.AreEqual(Format(SalesInvoiceLineLineAmount, 0, 9), InvoiceLineExtensionAmount, ''); Assert.AreEqual(SalesHeader."Currency Code", LineExtensionAmountCurrencyID, ''); Assert.AreEqual('', InvoiceLineAccountingCost, ''); end; From a29c6225db8829ab1c3e9e491a020a102f89a986 Mon Sep 17 00:00:00 2001 From: AndreasHans Date: Fri, 19 Dec 2025 11:39:49 +0100 Subject: [PATCH 2/6] add xmlport changes --- .../XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al | 84 +++++++++++++++++++ .../XmlPorts/SalesInvoicePEPPOL30.XmlPort.al | 84 +++++++++++++++++++ 2 files changed, 168 insertions(+) diff --git a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al index 3838ec7271..2f88e4f4b5 100644 --- a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al +++ b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al @@ -1343,6 +1343,90 @@ xmlport 37200 "Sales Cr.Memo - PEPPOL30" currXMLport.Skip(); end; } + tableelement(allowancechargepaymentdiscountloop; Integer) + { + NamespacePrefix = 'cac'; + XmlName = 'AllowanceCharge'; + SourceTableView = sorting(Number) where(Number = filter(1 ..)); + textelement(ChargeIndicatorPaymentDiscount) + { + XmlName = 'ChargeIndicator'; + NamespacePrefix = 'cbc'; + } + textelement(AllowanceChargeReasonCodePaymentDiscount) + { + XmlName = 'AllowanceChargeReasonCode'; + NamespacePrefix = 'cbc'; + } + textelement(AllowanceChargeReasonPaymentDiscount) + { + XmlName = 'AllowanceChargeReason'; + NamespacePrefix = 'cbc'; + } + textelement(AmountPaymentDiscount) + { + XmlName = 'Amount'; + NamespacePrefix = 'cbc'; + textattribute(allowancechargecurrencyidPaymentDiscount) + { + XmlName = 'currencyID'; + } + } + textelement(TaxCategoryPaymentDiscount) + { + XmlName = 'TaxCategory'; + NamespacePrefix = 'cac'; + textelement(taxcategoryidPaymentDiscount) + { + NamespacePrefix = 'cbc'; + XmlName = 'ID'; + } + textelement(PercentPaymentDiscount) + { + XmlName = 'Percent'; + NamespacePrefix = 'cbc'; + + trigger OnBeforePassVariable() + begin + if PercentPaymentDiscount = '' then + currXMLport.Skip(); + end; + } + textelement(TaxSchemePaymentDiscount) + { + XmlName = 'TaxScheme'; + NamespacePrefix = 'cac'; + textelement(allowancechargetaxschemeidPaymentDiscount) + { + NamespacePrefix = 'cbc'; + XmlName = 'ID'; + } + } + } + + trigger OnAfterGetRecord() + begin + if not FindNextVATAmtRec(TempVATAmtLine, AllowanceChargePaymentDiscountLoop.Number) then + currXMLport.Break(); + + PEPPOLMgt.GetAllowanceChargeInfoPaymentDiscount( + TempVATAmtLine, + SalesHeader, + ChargeIndicatorPaymentDiscount, + AllowanceChargeReasonCodePaymentDiscount, + DummyVar, + AllowanceChargeReasonPaymentDiscount, + AmountPaymentDiscount, + AllowanceChargeCurrencyIDPaymentDiscount, + TaxCategoryIDPaymentDiscount, + DummyVar, + PercentPaymentDiscount, + AllowanceChargeTaxSchemeIDPaymentDiscount); + + if ChargeIndicatorPaymentDiscount = '' then + currXMLport.Skip(); + end; + } textelement(TaxTotal) { NamespacePrefix = 'cac'; diff --git a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al index 17864f300a..e12c596b2d 100644 --- a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al +++ b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al @@ -1294,6 +1294,90 @@ xmlport 37201 "Sales Invoice - PEPPOL30" currXMLport.Skip(); end; } + tableelement(allowancechargepaymentdiscountloop; Integer) + { + NamespacePrefix = 'cac'; + XmlName = 'AllowanceCharge'; + SourceTableView = sorting(Number) where(Number = filter(1 ..)); + textelement(ChargeIndicatorPaymentDiscount) + { + XmlName = 'ChargeIndicator'; + NamespacePrefix = 'cbc'; + } + textelement(AllowanceChargeReasonCodePaymentDiscount) + { + XmlName = 'AllowanceChargeReasonCode'; + NamespacePrefix = 'cbc'; + } + textelement(AllowanceChargeReasonPaymentDiscount) + { + XmlName = 'AllowanceChargeReason'; + NamespacePrefix = 'cbc'; + } + textelement(AmountPaymentDiscount) + { + XmlName = 'Amount'; + NamespacePrefix = 'cbc'; + textattribute(allowancechargecurrencyidPaymentDiscount) + { + XmlName = 'currencyID'; + } + } + textelement(TaxCategoryPaymentDiscount) + { + XmlName = 'TaxCategory'; + NamespacePrefix = 'cac'; + textelement(taxcategoryidPaymentDiscount) + { + NamespacePrefix = 'cbc'; + XmlName = 'ID'; + } + textelement(PercentPaymentDiscount) + { + XmlName = 'Percent'; + NamespacePrefix = 'cbc'; + + trigger OnBeforePassVariable() + begin + if PercentPaymentDiscount = '' then + currXMLport.Skip(); + end; + } + textelement(TaxSchemePaymentDiscount) + { + XmlName = 'TaxScheme'; + NamespacePrefix = 'cac'; + textelement(allowancechargetaxschemeidPaymentDiscount) + { + NamespacePrefix = 'cbc'; + XmlName = 'ID'; + } + } + } + + trigger OnAfterGetRecord() + begin + if not FindNextVATAmtRec(TempVATAmtLine, AllowanceChargePaymentDiscountLoop.Number) then + currXMLport.Break(); + + PEPPOLMgt.GetAllowanceChargeInfoPaymentDiscount( + TempVATAmtLine, + SalesHeader, + ChargeIndicatorPaymentDiscount, + AllowanceChargeReasonCodePaymentDiscount, + DummyVar, + AllowanceChargeReasonPaymentDiscount, + AmountPaymentDiscount, + AllowanceChargeCurrencyIDPaymentDiscount, + TaxCategoryIDPaymentDiscount, + DummyVar, + PercentPaymentDiscount, + AllowanceChargeTaxSchemeIDPaymentDiscount); + + if ChargeIndicatorPaymentDiscount = '' then + currXMLport.Skip(); + end; + } textelement(TaxTotal) { NamespacePrefix = 'cac'; From 36f283aa799a031f9f88acf3b1897c45c467df89 Mon Sep 17 00:00:00 2001 From: AndreasHans Date: Fri, 19 Dec 2025 13:04:58 +0100 Subject: [PATCH 3/6] add to interface --- .../App/src/Common/PEPPOL30.Codeunit.al | 20 ++++++++++++++++++- .../PEPPOLPaymentInfoProvider.Interface.al | 17 ++++++++++++++++ .../XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al | 4 +++- .../XmlPorts/SalesInvoicePEPPOL30.XmlPort.al | 4 +++- 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/Apps/W1/PEPPOL/App/src/Common/PEPPOL30.Codeunit.al b/src/Apps/W1/PEPPOL/App/src/Common/PEPPOL30.Codeunit.al index 0f27e44426..ae9a0fa8a6 100644 --- a/src/Apps/W1/PEPPOL/App/src/Common/PEPPOL30.Codeunit.al +++ b/src/Apps/W1/PEPPOL/App/src/Common/PEPPOL30.Codeunit.al @@ -1057,5 +1057,23 @@ codeunit 37200 "PEPPOL30" implements "PEPPOL Attachment Provider" exit(PEPPOLManagementImpl.MapServiceLineTypeToSalesLineType(ServiceLineType)); end; - + /// + /// Gets allowance charge information for payment discounts from VAT amount line and sales header. + /// + /// The VAT amount line record containing allowance charge information. + /// The sales header record. + /// Returns the charge indicator. + /// Returns the allowance charge reason code. + /// Returns the allowance charge list ID. + /// Returns the allowance charge reason. + /// Returns the amount. + /// Returns the allowance charge currency ID. + /// Returns the tax category ID. + /// Returns the tax category scheme ID. + /// Returns the percent. + /// Returns the allowance charge tax scheme ID. + procedure GetAllowanceChargeInfoPaymentDiscount(VATAmtLine: Record "VAT Amount Line"; SalesHeader: Record "Sales Header"; var ChargeIndicator: Text; var AllowanceChargeReasonCode: Text; var AllowanceChargeListID: Text; var AllowanceChargeReason: Text; var Amount: Text; var AllowanceChargeCurrencyID: Text; var TaxCategoryID: Text; var TaxCategorySchemeID: Text; var Percent: Text; var AllowanceChargeTaxSchemeID: Text) + begin + PEPPOLManagementImpl.GetAllowanceChargeInfoPaymentDiscount(VATAmtLine, SalesHeader, ChargeIndicator, AllowanceChargeReasonCode, AllowanceChargeListID, AllowanceChargeReason, Amount, AllowanceChargeCurrencyID, TaxCategoryID, TaxCategorySchemeID, Percent, AllowanceChargeTaxSchemeID); + end; } diff --git a/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al b/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al index dfc91131e3..cd4799978b 100644 --- a/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al +++ b/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al @@ -58,4 +58,21 @@ interface "PEPPOL Payment Info Provider" /// The sales header record. /// Return value: Payment terms note. procedure GetPaymentTermsInfo(SalesHeader: Record "Sales Header"; var PaymentTermsNote: Text) + + /// + /// Gets allowance charge information for payment discounts from VAT amount line and sales header. + /// + /// The VAT amount line record containing allowance charge information. + /// The sales header record. + /// Returns the charge indicator. + /// Returns the allowance charge reason code. + /// Returns the allowance charge list ID. + /// Returns the allowance charge reason. + /// Returns the amount. + /// Returns the allowance charge currency ID. + /// Returns the tax category ID. + /// Returns the tax category scheme ID. + /// Returns the percent. + /// Returns the allowance charge tax scheme ID. + procedure GetAllowanceChargeInfoPaymentDiscount(VATAmtLine: Record "VAT Amount Line"; SalesHeader: Record "Sales Header"; var ChargeIndicator: Text; var AllowanceChargeReasonCode: Text; var AllowanceChargeListID: Text; var AllowanceChargeReason: Text; var Amount: Text; var AllowanceChargeCurrencyID: Text; var TaxCategoryID: Text; var TaxCategorySchemeID: Text; var Percent: Text; var AllowanceChargeTaxSchemeID: Text) } \ No newline at end of file diff --git a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al index 2f88e4f4b5..4a13f6c790 100644 --- a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al +++ b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al @@ -1405,11 +1405,13 @@ xmlport 37200 "Sales Cr.Memo - PEPPOL30" } trigger OnAfterGetRecord() + PEPPOLPaymentInfoProvider: Interface "PEPPOL Payment Info Provider"; begin if not FindNextVATAmtRec(TempVATAmtLine, AllowanceChargePaymentDiscountLoop.Number) then currXMLport.Break(); - PEPPOLMgt.GetAllowanceChargeInfoPaymentDiscount( + PEPPOLPaymentInfoProvider := GetFormat(); + PEPPOLPaymentInfoProvider.GetAllowanceChargeInfoPaymentDiscount( TempVATAmtLine, SalesHeader, ChargeIndicatorPaymentDiscount, diff --git a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al index e12c596b2d..05da2caff4 100644 --- a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al +++ b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al @@ -1356,11 +1356,13 @@ xmlport 37201 "Sales Invoice - PEPPOL30" } trigger OnAfterGetRecord() + PEPPOLPaymentInfoProvider: Interface "PEPPOL Payment Info Provider"; begin if not FindNextVATAmtRec(TempVATAmtLine, AllowanceChargePaymentDiscountLoop.Number) then currXMLport.Break(); - PEPPOLMgt.GetAllowanceChargeInfoPaymentDiscount( + PEPPOLPaymentInfoProvider := GetFormat(); + PEPPOLPaymentInfoProvider.GetAllowanceChargeInfoPaymentDiscount( TempVATAmtLine, SalesHeader, ChargeIndicatorPaymentDiscount, From ec1af4e5c30bf0fc90a80484c47f9ae18864b73e Mon Sep 17 00:00:00 2001 From: AndreasHans Date: Fri, 19 Dec 2025 14:42:33 +0100 Subject: [PATCH 4/6] add import --- .../App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al b/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al index cd4799978b..29733863d7 100644 --- a/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al +++ b/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al @@ -5,6 +5,7 @@ namespace Microsoft.Peppol; using Microsoft.Sales.Document; +using Microsoft.Finance.VAT.Calculation interface "PEPPOL Payment Info Provider" { From ff0118c2970f6aca6e7077781588222137967891 Mon Sep 17 00:00:00 2001 From: AndreasHans Date: Fri, 19 Dec 2025 15:30:46 +0100 Subject: [PATCH 5/6] semi colon --- .../App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al b/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al index 29733863d7..aa9a5dbaf4 100644 --- a/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al +++ b/src/Apps/W1/PEPPOL/App/src/Interfaces/PEPPOLPaymentInfoProvider.Interface.al @@ -5,7 +5,7 @@ namespace Microsoft.Peppol; using Microsoft.Sales.Document; -using Microsoft.Finance.VAT.Calculation +using Microsoft.Finance.VAT.Calculation; interface "PEPPOL Payment Info Provider" { From 719879dc44b30c6bfcb04b9be241e38f90f41a81 Mon Sep 17 00:00:00 2001 From: AndreasHans Date: Mon, 29 Dec 2025 09:49:11 +0100 Subject: [PATCH 6/6] missing var ... --- .../PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al | 1 + .../App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al index 4a13f6c790..974f5d06ba 100644 --- a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al +++ b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesCrMemoPEPPOL30.XmlPort.al @@ -1405,6 +1405,7 @@ xmlport 37200 "Sales Cr.Memo - PEPPOL30" } trigger OnAfterGetRecord() + var PEPPOLPaymentInfoProvider: Interface "PEPPOL Payment Info Provider"; begin if not FindNextVATAmtRec(TempVATAmtLine, AllowanceChargePaymentDiscountLoop.Number) then diff --git a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al index 05da2caff4..ba99931fcf 100644 --- a/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al +++ b/src/Apps/W1/PEPPOL/App/src/Sales/XmlPorts/SalesInvoicePEPPOL30.XmlPort.al @@ -1356,6 +1356,7 @@ xmlport 37201 "Sales Invoice - PEPPOL30" } trigger OnAfterGetRecord() + var PEPPOLPaymentInfoProvider: Interface "PEPPOL Payment Info Provider"; begin if not FindNextVATAmtRec(TempVATAmtLine, AllowanceChargePaymentDiscountLoop.Number) then