Codeunit 1610 Exp. Sales Inv. PEPPOL BIS3.0, source in 29

Source29

src/Layers/W1/BaseApp/Sales/Peppol/ExpSalesInvPEPPOLBIS30.Codeunit.al56 lines, Copyright (c) Microsoft Corporation. MIT

#if not CLEAN29
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Sales.Peppol;

using Microsoft.Sales.History;
using System.IO;

/// <summary>
/// Exports sales invoices to PEPPOL BIS 3.0 electronic document format with validation.
/// </summary>
codeunit 1610 "Exp. Sales Inv. PEPPOL BIS3.0"
{
    TableNo = "Record Export Buffer";
    ObsoleteState = Pending;
    ObsoleteReason = 'Replaced by PEPPOL App';
    ObsoleteTag = '29.0';

    trigger OnRun()
    var
        SalesInvoiceHeader: Record "Sales Invoice Header";
        PEPPOLValidation: Codeunit "PEPPOL Validation";
        RecordRef: RecordRef;
        OutStr: OutStream;
    begin
        RecordRef.Get(Rec.RecordID);
        RecordRef.SetTable(SalesInvoiceHeader);

        PEPPOLValidation.CheckSalesInvoice(SalesInvoiceHeader);

        Rec."File Content".CreateOutStream(OutStr);
        GenerateXMLFile(SalesInvoiceHeader, OutStr);

        Rec.Modify();
    end;

    /// <summary>
    /// Generates an XML file in PEPPOL BIS 3.0 format for the sales invoice.
    /// </summary>
    /// <param name="VariantRec">Specifies the sales invoice record to export.</param>
    /// <param name="OutStr">Returns the generated XML content as an output stream.</param>
    [Scope('OnPrem')]
    procedure GenerateXMLFile(VariantRec: Variant; var OutStr: OutStream)
    var
        SalesInvoicePEPPOLBIS30: XMLport "Sales Invoice - PEPPOL BIS 3.0";
    begin
        SalesInvoicePEPPOLBIS30.Initialize(VariantRec);
        SalesInvoicePEPPOLBIS30.SetDestination(OutStr);
        SalesInvoicePEPPOLBIS30.Export();
    end;
}
#endif