Codeunit 819 Undefined Post Invoice, source in 29

Source29

src/Layers/W1/BaseApp/Finance/ReceivablesPayables/UndefinedPostInvoice.Codeunit.al168 lines, Copyright (c) Microsoft Corporation. MIT

// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Finance.ReceivablesPayables;

using Microsoft.Finance.GeneralLedger.Posting;

/// <summary>
/// Default implementation of Invoice Posting interface that provides error handling for undefined posting scenarios.
/// Serves as a fallback implementation when no specific invoice posting logic has been configured.
/// </summary>
/// <remarks>
/// Safety implementation ensuring that invoice posting operations fail gracefully when proper posting interfaces are not defined.
/// Used by the invoice posting framework as a default to prevent silent failures and ensure explicit configuration.
/// Part of the extensible invoice posting architecture requiring explicit implementation selection.
/// </remarks>
codeunit 819 "Undefined Post Invoice" implements "Invoice Posting"
{
    var
        InvoicePostingParameters: Record "Invoice Posting Parameters";
        HideProgressWindow: Boolean;
        PreviewMode: Boolean;
        SuppressCommit: Boolean;

    /// <summary>
    /// Performs validation check for invoice posting but throws an error for undefined implementations.
    /// </summary>
    /// <param name="TableID">Table ID for the posting validation</param>
    procedure Check(TableID: Integer)
    begin
        error('Please define invoice posting interface using setup table.')
    end;

    /// <summary>
    /// Clears internal posting buffers but throws an error for undefined implementations.
    /// </summary>
    procedure ClearBuffers()
    begin
    end;

    /// <summary>
    /// Sets preview mode for posting operations but throws an error for undefined implementations.
    /// </summary>
    /// <param name="NewPreviewMode">Preview mode flag</param>
    procedure SetPreviewMode(NewPreviewMode: Boolean)
    begin
        PreviewMode := NewPreviewMode;
    end;

    /// <summary>
    /// Sets commit suppression for posting operations but throws an error for undefined implementations.
    /// </summary>
    /// <param name="NewSuppressCommit">Suppress commit flag</param>
    procedure SetSuppressCommit(NewSuppressCommit: Boolean)
    begin
        SuppressCommit := NewSuppressCommit;
    end;

    /// <summary>
    /// Sets progress window visibility for posting operations but throws an error for undefined implementations.
    /// </summary>
    /// <param name="NewHideProgressWindow">Hide progress window flag</param>
    procedure SetHideProgressWindow(NewHideProgressWindow: Boolean)
    begin
        HideProgressWindow := NewHideProgressWindow;
    end;

    /// <summary>
    /// Sets posting parameters but throws an error for undefined implementations.
    /// </summary>
    /// <param name="NewInvoicePostingParameters">Invoice posting parameters record</param>
    procedure SetParameters(NewInvoicePostingParameters: Record "Invoice Posting Parameters")
    begin
        InvoicePostingParameters := NewInvoicePostingParameters;
    end;

    /// <summary>
    /// Sets total line amounts for posting calculations but throws an error for undefined implementations.
    /// </summary>
    /// <param name="TotalDocumentLine">Total document line amounts</param>
    /// <param name="TotalDocumentLineLCY">Total document line amounts in local currency</param>
    procedure SetTotalLines(TotalDocumentLine: Variant; TotalDocumentLineLCY: Variant)
    begin
    end;

    /// <summary>
    /// Checks credit line limits but throws an error for undefined implementations.
    /// </summary>
    /// <param name="DocumentHeaderVar">Document header variant</param>
    /// <param name="DocumentLineVar">Document line variant</param>
    procedure CheckCreditLine(DocumentHeaderVar: Variant; DocumentLineVar: Variant)
    begin
    end;

    /// <summary>
    /// Prepares document line for posting but throws an error for undefined implementations.
    /// </summary>
    /// <param name="DocumentHeaderVar">Document header variant</param>
    /// <param name="DocumentLineVar">Document line variant</param>
    /// <param name="DocumentLineACYVar">Document line additional currency variant</param>
    procedure PrepareLine(DocumentHeaderVar: Variant; DocumentLineVar: Variant; DocumentLineACYVar: Variant)
    begin
    end;

    /// <summary>
    /// Prepares job line for posting but throws an error for undefined implementations.
    /// </summary>
    /// <param name="DocumentHeaderVar">Document header variant</param>
    /// <param name="DocumentLineVar">Document line variant</param>
    /// <param name="DocumentLineACYVar">Document line additional currency variant</param>
    procedure PrepareJobLine(DocumentHeaderVar: Variant; DocumentLineVar: Variant; DocumentLineACYVar: Variant)
    begin
    end;

    /// <summary>
    /// Posts invoice lines but throws an error for undefined implementations.
    /// </summary>
    /// <param name="DocumentHeaderVar">Document header variant</param>
    /// <param name="GenJnlPostLine">General journal posting line codeunit</param>
    /// <param name="Window">Progress window dialog</param>
    /// <param name="TotalAmount">Total posting amount</param>
    procedure PostLines(DocumentHeaderVar: Variant; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; var Window: Dialog; var TotalAmount: Decimal)
    begin
        TotalAmount := 0;
    end;

    /// <summary>
    /// Posts ledger entries but throws an error for undefined implementations.
    /// </summary>
    /// <param name="DocumentHeaderVar">Document header variant</param>
    /// <param name="GenJnlPostLine">General journal posting line codeunit</param>
    procedure PostLedgerEntry(DocumentHeaderVar: Variant; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line")
    begin
    end;

    /// <summary>
    /// Posts balancing entries but throws an error for undefined implementations.
    /// </summary>
    /// <param name="DocumentHeaderVar">Document header variant</param>
    /// <param name="GenJnlPostLine">General journal posting line codeunit</param>
    procedure PostBalancingEntry(DocumentHeaderVar: Variant; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line")
    begin
    end;

    /// <summary>
    /// Calculates deferral amounts but throws an error for undefined implementations.
    /// </summary>
    /// <param name="DocumentHeaderVar">Document header variant</param>
    /// <param name="DocumentLineVar">Document line variant</param>
    /// <param name="OriginalDeferralAmount">Original deferral amount</param>
    procedure CalcDeferralAmounts(DocumentHeaderVar: Variant; DocumentLineVar: Variant; OriginalDeferralAmount: Decimal)
    begin
    end;

    /// <summary>
    /// Creates posted deferral schedule but throws an error for undefined implementations.
    /// </summary>
    /// <param name="DocumentLineVar">Document line variant</param>
    /// <param name="NewDocumentType">New document type</param>
    /// <param name="NewDocumentNo">New document number</param>
    /// <param name="NewLineNo">New line number</param>
    /// <param name="PostingDate">Posting date</param>
    procedure CreatePostedDeferralSchedule(DocumentLineVar: Variant; NewDocumentType: Integer; NewDocumentNo: Code[20]; NewLineNo: Integer; PostingDate: Date)
    begin
    end;
}