Report 493 Carry Out Action Msg. - Req., source in 29

Source29

src/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgReq.Report.al196 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.Requisition;

using Microsoft.Purchases.Document;

report 493 "Carry Out Action Msg. - Req."
{
    Caption = 'Carry Out Action Msg. - Req.';
    ProcessingOnly = true;

    dataset
    {
    }

    requestpage
    {
        SaveValues = true;

        layout
        {
            area(content)
            {
                group(Options)
                {
                    Caption = 'Options';
                    field(PrintOrders; PrintOrders)
                    {
                        ApplicationArea = Planning;
                        Caption = 'Print Orders';
                        ToolTip = 'Specifies whether to print the purchase orders after they are created.';
                    }
                }
            }
        }

        actions
        {
        }

        trigger OnOpenPage()
        begin
            PurchOrderHeader."Order Date" := WorkDate();
            PurchOrderHeader."Posting Date" := WorkDate();
            if ReqWkshTmpl.Recurring then
                EndOrderDate := WorkDate()
            else
                EndOrderDate := 0D;
        end;
    }

    labels
    {
    }

    trigger OnPreReport()
    begin
        OnBeforePreReport(PrintOrders);

        UseOneJnl(ReqLine);
    end;

    trigger OnPostReport()
    begin
        OnBeforePostReport(ReqWkshMakeOrders);
    end;

    var
        ReqWkshName: Record "Requisition Wksh. Name";
        ReqLine: Record "Requisition Line";
        ReqWkshMakeOrders: Codeunit "Req. Wksh.-Make Order";
        TempJnlBatchName: Code[10];

#pragma warning disable AA0074
        Text000: Label 'cannot be filtered when you create orders';
        Text001: Label 'There is nothing to create.';
#pragma warning disable AA0470
        Text003: Label 'You are now in worksheet %1.';
#pragma warning restore AA0470
#pragma warning restore AA0074

    protected var
        ReqWkshTmpl: Record "Req. Wksh. Template";
        PurchOrderHeader: Record "Purchase Header";
        HideDialog: Boolean;
        SuppressCommit: Boolean;
        EndOrderDate: Date;
        PrintOrders: Boolean;

    procedure SetReqWkshLine(var NewReqLine: Record "Requisition Line")
    var
        IsHandled: Boolean;
    begin
        OnBeforeSetReqWkshLine(ReqLine, NewReqLine, IsHandled);
        if IsHandled then
            exit;
        ReqLine.Copy(NewReqLine);
        ReqWkshTmpl.Get(NewReqLine."Worksheet Template Name");

        OnAfterSetReqWkshLine(NewReqLine);
    end;

    procedure GetReqWkshLine(var NewReqLine: Record "Requisition Line")
    begin
        NewReqLine.Copy(ReqLine);
    end;

    procedure SetReqWkshName(var NewReqWkshName: Record "Requisition Wksh. Name")
    begin
        ReqWkshName.Copy(NewReqWkshName);
        ReqWkshTmpl.Get(NewReqWkshName."Worksheet Template Name");
    end;

    local procedure UseOneJnl(var ReqLine: Record "Requisition Line")
    var
        IsHandled: Boolean;
    begin
        ReqWkshTmpl.Get(ReqLine."Worksheet Template Name");
        if ReqWkshTmpl.Recurring and (ReqLine.GetFilter(ReqLine."Order Date") <> '') then
            ReqLine.FieldError("Order Date", Text000);
        TempJnlBatchName := ReqLine."Journal Batch Name";
        IsHandled := false;
        OnUseOneJnlOnBeforeSetReqWkshMakeOrdersParameters(ReqLine, ReqWkshMakeOrders, PurchOrderHeader, EndOrderDate, PrintOrders, SuppressCommit, IsHandled);
        if not IsHandled then begin
            ReqWkshMakeOrders.Set(PurchOrderHeader, EndOrderDate, PrintOrders);
            ReqWkshMakeOrders.SetSuppressCommit(SuppressCommit);
            ReqWkshMakeOrders.CarryOutBatchAction(ReqLine);
        end;

        if ReqLine."Line No." = 0 then
            Message(Text001)
        else
            if not HideDialog then
                if TempJnlBatchName <> ReqLine."Journal Batch Name" then
                    Message(
                      Text003,
                      ReqLine."Journal Batch Name");

        if not ReqLine.Find('=><') or (TempJnlBatchName <> ReqLine."Journal Batch Name") then begin
            ReqLine.Reset();
            ReqLine.FilterGroup := 2;
            ReqLine.SetRange(ReqLine."Worksheet Template Name", ReqLine."Worksheet Template Name");
            ReqLine.SetRange(ReqLine."Journal Batch Name", ReqLine."Journal Batch Name");
            ReqLine.FilterGroup := 0;
            ReqLine."Line No." := 1;
        end;
    end;

    procedure InitializeRequest(ExpirationDate: Date; OrderDate: Date; PostingDate: Date; ExpectedReceiptDate: Date; YourRef: Text[50])
    begin
        EndOrderDate := ExpirationDate;
        PurchOrderHeader."Order Date" := OrderDate;
        PurchOrderHeader."Posting Date" := PostingDate;
        PurchOrderHeader."Expected Receipt Date" := ExpectedReceiptDate;
        PurchOrderHeader."Your Reference" := YourRef;
    end;

    procedure SetHideDialog(NewHideDialog: Boolean)
    begin
        HideDialog := NewHideDialog;
    end;

    procedure SetSupressCommit(NewSupressCommit: Boolean)
    begin
        SuppressCommit := NewSupressCommit;
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterSetReqWkshLine(var RequisitionLine: Record "Requisition Line")
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforePreReport(var PrintOrders: Boolean)
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforePostReport(var ReqWkshMakeOrders: Codeunit "Req. Wksh.-Make Order")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnUseOneJnlOnBeforeSetReqWkshMakeOrdersParameters(var ReqLine: Record "Requisition Line"; var ReqWkshMakeOrders: Codeunit "Req. Wksh.-Make Order"; PurchOrderHeader: Record "Purchase Header"; EndOrderDate: Date; PrintOrders: Boolean; var SuppressCommit: Boolean; var IsHandled: Boolean)
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeSetReqWkshLine(var RequisitionLine: Record "Requisition Line"; var NewReqLine: Record "Requisition Line"; var IsHandled: Boolean)
    begin
    end;
}