Codeunit 1621 PEPPOL Service Validation

App
Base Application
Namespace
Microsoft.Sales.Peppol
Versions
17-28

Procedures, 3Events, 5

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Service/Sales/Peppol/PEPPOLServiceValidation.Codeunit.al115 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.Document;
using Microsoft.Service.Document;
using Microsoft.Service.History;

codeunit 1621 "PEPPOL Service Validation"
{
    TableNo = "Service Header";
    ObsoleteState = Pending;
    ObsoleteReason = 'Replaced by PEPPOL App';
    ObsoleteTag = '29.0';

    trigger OnRun()
    begin
        CheckServiceHeader(Rec);
    end;

    var
        PEPPOLManagement: Codeunit "PEPPOL Management";
        PEPPOLValidation: Codeunit "PEPPOL Validation";

    procedure CheckServiceHeader(ServiceHeader: Record "Service Header")
    var
        ServiceLine: Record "Service Line";
        SalesHeader: Record "Sales Header";
        SalesLine: Record "Sales Line";
    begin
        PEPPOLManagement.TransferHeaderToSalesHeader(ServiceHeader, SalesHeader);
        SalesHeader."Shipment Date" := SalesHeader."Posting Date";
        SalesHeader."Sell-to E-Mail" := ServiceHeader."E-Mail";
        PEPPOLValidation.CheckSalesDocument(SalesHeader);
        ServiceLine.SetRange("Document No.", ServiceHeader."No.");
        OnAfterSetServiceLineFilter(ServiceLine, ServiceHeader);
        if ServiceLine.FindSet() then
            repeat
                PEPPOLManagement.TransferLineToSalesLine(ServiceLine, SalesLine);
                OnCheckServiceHeaderOnBeforeCheckSalesDocumentLine(SalesLine, ServiceLine);
                PEPPOLValidation.CheckSalesDocumentLine(SalesLine);
            until ServiceLine.Next() = 0;
    end;

    procedure CheckServiceInvoice(ServiceInvoiceHeader: Record "Service Invoice Header")
    var
        ServiceInvoiceLine: Record "Service Invoice Line";
        SalesHeader: Record "Sales Header";
        SalesLine: Record "Sales Line";
    begin
        PEPPOLManagement.TransferHeaderToSalesHeader(ServiceInvoiceHeader, SalesHeader);
        SalesHeader."Document Type" := SalesHeader."Document Type"::Invoice;
        SalesHeader."Shipment Date" := SalesHeader."Posting Date";
        OnCheckServiceInvoiceOnBeforeCheckSalesDocument(SalesHeader, ServiceInvoiceHeader);
        PEPPOLValidation.CheckSalesDocument(SalesHeader);
        ServiceInvoiceLine.SetRange("Document No.", ServiceInvoiceHeader."No.");
        if ServiceInvoiceLine.FindSet() then
            repeat
                PEPPOLManagement.TransferLineToSalesLine(ServiceInvoiceLine, SalesLine);
                SalesLine."Document Type" := SalesLine."Document Type"::Invoice;
                OnCheckServiceInvoiceOnBeforeCheckSalesDocumentLine(SalesLine, ServiceInvoiceLine);
                PEPPOLValidation.CheckSalesDocumentLine(SalesLine);
            until ServiceInvoiceLine.Next() = 0;
    end;

    procedure CheckServiceCreditMemo(ServiceCrMemoHeader: Record "Service Cr.Memo Header")
    var
        ServiceCrMemoLine: Record "Service Cr.Memo Line";
        SalesHeader: Record "Sales Header";
        SalesLine: Record "Sales Line";
    begin
        PEPPOLManagement.TransferHeaderToSalesHeader(ServiceCrMemoHeader, SalesHeader);
        SalesHeader."Document Type" := SalesHeader."Document Type"::"Credit Memo";
        SalesHeader."Shipment Date" := SalesHeader."Posting Date";
        PEPPOLValidation.CheckSalesDocument(SalesHeader);
        ServiceCrMemoLine.SetRange("Document No.", ServiceCrMemoHeader."No.");
        if ServiceCrMemoLine.FindSet() then
            repeat
                PEPPOLManagement.TransferLineToSalesLine(ServiceCrMemoLine, SalesLine);
                SalesLine."Document Type" := SalesLine."Document Type"::"Credit Memo";
                OnCheckServiceCreditMemoOnBeforeCheckSalesDocumentLine(SalesLine, ServiceCrMemoLine);
                PEPPOLValidation.CheckSalesDocumentLine(SalesLine);
            until ServiceCrMemoLine.Next() = 0;
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCheckServiceHeaderOnBeforeCheckSalesDocumentLine(var SalesLine: Record "Sales Line"; ServiceLine: Record "Service Line")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCheckServiceInvoiceOnBeforeCheckSalesDocumentLine(var SalesLine: Record "Sales Line"; ServiceInvoiceLine: Record "Service Invoice Line")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCheckServiceCreditMemoOnBeforeCheckSalesDocumentLine(var SalesLine: Record "Sales Line"; ServiceCrMemoLine: Record "Service Cr.Memo Line")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterSetServiceLineFilter(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCheckServiceInvoiceOnBeforeCheckSalesDocument(var SalesHeader: Record "Sales Header"; ServiceInvoiceHeader: Record "Service Invoice Header")
    begin
    end;
}
#endif