Report 5707 Batch Post Transfer Orders

App
Base Application
Namespace
Microsoft.Inventory.Transfer
Versions
22-28

Procedures, 1Events, 2

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Inventory/Transfer/BatchPostTransferOrders.Report.al99 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.Inventory.Transfer;

using System.Utilities;

report 5707 "Batch Post Transfer Orders"
{
    ApplicationArea = All;
    Caption = 'Batch Post Transfer Orders';
    ProcessingOnly = true;

    dataset
    {
        dataitem("Transfer Header"; "Transfer Header")
        {
            DataItemTableView = sorting("No.");
            RequestFilterFields = "No.", Status, "Direct Transfer", "Transfer-from Code", "Transfer-to Code";
            RequestFilterHeading = 'Transfer Order';

            trigger OnPostDataItem()
            begin
                RunPostBatchTransferOrder("Transfer Header");
                CurrReport.Break();
            end;
        }
    }

    requestpage
    {
        SaveValues = true;

        layout
        {
            area(Content)
            {
                group(Options)
                {
                    Caption = 'Options';
                    field(TransferOption; TransferOrderPost)
                    {
                        ApplicationArea = Basic, Suite;
                        Caption = 'Transfer option';
                        ToolTip = 'Specifies the posting option of the Transfer Orders. Direct Transfer will always be posted. To prefent this use the filtering.';
                    }
                }
            }
        }
    }

    var
        TransferOrderPost: Enum "Transfer Order Post";

    [ErrorBehavior(ErrorBehavior::Collect)]
    internal procedure RunPostBatchTransferOrder(var TransferHeader: Record "Transfer Header")
    var
        ErrorContextElement: Codeunit "Error Context Element";
        ErrorMessageHandler: Codeunit "Error Message Handler";
        ErrorMessageManagement: Codeunit "Error Message Management";
        TransferOrderPostYesNo: Codeunit "TransferOrder-Post (Yes/No)";
        IsHandled: Boolean;
        AdditionalInfoLbl: Label 'Batch post Transfer Order record';
    begin
        IsHandled := false;
        OnCodeOnBeforePostTransferOrder(TransferHeader, TransferOrderPost, IsHandled);
        if IsHandled then
            exit;

        ErrorMessageManagement.Activate(ErrorMessageHandler);
        ErrorMessageManagement.PushContext(ErrorContextElement, TransferHeader, 0, AdditionalInfoLbl);

        TransferOrderPostYesNo.SetParameters(true, TransferOrderPost);
        if TransferHeader.FindSet() then
            repeat
                if not TransferOrderPostYesNo.Run(TransferHeader) then
                    ErrorMessageManagement.LogErrorMessage(0, GetLastErrorText(), TransferHeader, 0, '');
            until TransferHeader.Next() = 0;

        OnRunPostBatchTransferOrderOnAfterPost(TransferHeader, TransferOrderPost, ErrorMessageHandler);

        if ErrorMessageHandler.HasErrors() then
            ErrorMessageHandler.NotifyAboutErrors();

        ClearCollectedErrors();
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCodeOnBeforePostTransferOrder(var TransferHeader: Record "Transfer Header"; var TransferOrderPost: Enum "Transfer Order Post"; var IsHandled: Boolean)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnRunPostBatchTransferOrderOnAfterPost(var TransferHeader: Record "Transfer Header"; var TransferOrderPost: Enum "Transfer Order Post"; var ErrorMessageHandler: Codeunit "Error Message Handler")
    begin
    end;
}