Codeunit 228 Test Report-Print

App
Base Application
Namespace
Microsoft.Foundation.Reporting
Versions
17-28

Procedures, 27Events, 10Obsolete, 3

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Foundation/Reporting/TestReportPrint.Codeunit.al354 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.Foundation.Reporting;

using Microsoft.Bank.Reconciliation;
using Microsoft.Finance.GeneralLedger.Journal;
using Microsoft.Finance.VAT.Reporting;
using Microsoft.FixedAssets.Insurance;
using Microsoft.FixedAssets.Journal;
using Microsoft.Inventory.Journal;
using Microsoft.Inventory.Setup;
using Microsoft.Projects.Project.Journal;
using Microsoft.Projects.Resources.Journal;
using Microsoft.Purchases.Document;
using Microsoft.Purchases.Setup;
using Microsoft.Sales.Document;
using Microsoft.Sales.Setup;
using Microsoft.Warehouse.Journal;

codeunit 228 "Test Report-Print"
{

    trigger OnRun()
    begin
    end;

    var
        ReportSelection: Record "Report Selections";
        GenJnlTemplate: Record "Gen. Journal Template";
        VATStmtTmpl: Record "VAT Statement Template";
        ItemJnlTemplate: Record "Item Journal Template";
        GenJnlLine: Record "Gen. Journal Line";
        VATStmtLine: Record "VAT Statement Line";
        ItemJnlLine: Record "Item Journal Line";
        ResJnlTemplate: Record "Res. Journal Template";
        ResJnlLine: Record "Res. Journal Line";
        JobJnlTemplate: Record "Job Journal Template";
        JobJnlLine: Record "Job Journal Line";
        FAJnlLine: Record "FA Journal Line";
        FAJnlTemplate: Record "FA Journal Template";
        InsuranceJnlLine: Record "Insurance Journal Line";
        InsuranceJnlTempl: Record "Insurance Journal Template";
        WhseJnlTemplate: Record "Warehouse Journal Template";
        WhseJnlLine: Record "Warehouse Journal Line";

    procedure PrintGenJnlBatch(GenJnlBatch: Record "Gen. Journal Batch")
    begin
        GenJnlBatch.SetRecFilter();
        GenJnlTemplate.Get(GenJnlBatch."Journal Template Name");
        GenJnlTemplate.TestField("Test Report ID");
        REPORT.Run(GenJnlTemplate."Test Report ID", true, false, GenJnlBatch);
    end;

    procedure PrintGenJnlLine(var NewGenJnlLine: Record "Gen. Journal Line")
    var
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforePrintGenJnlLine(NewGenJnlLine, IsHandled);
        if IsHandled then
            exit;

        GenJnlLine.Copy(NewGenJnlLine);
        OnPrintGenJnlLineOnAfterGenJnlLineCopy(GenJnlLine);
        GenJnlLine.SetRange("Journal Template Name", GenJnlLine."Journal Template Name");
        GenJnlLine.SetRange("Journal Batch Name", GenJnlLine."Journal Batch Name");
        GenJnlTemplate.Get(GenJnlLine."Journal Template Name");
        GenJnlTemplate.TestField("Test Report ID");
        REPORT.Run(GenJnlTemplate."Test Report ID", true, false, GenJnlLine);
    end;

    procedure PrintVATStmtName(VATStmtName: Record "VAT Statement Name")
    begin
        VATStmtName.SetRecFilter();
        VATStmtTmpl.Get(VATStmtName."Statement Template Name");
        VATStmtTmpl.TestField("VAT Statement Report ID");
        REPORT.Run(VATStmtTmpl."VAT Statement Report ID", true, false, VATStmtName);
    end;

    procedure PrintVATStmtLine(var NewVATStatementLine: Record "VAT Statement Line")
    var
        IsHandled: Boolean;
    begin
        VATStmtLine.Copy(NewVATStatementLine);
        VATStmtLine.SetRange("Statement Template Name", VATStmtLine."Statement Template Name");
        VATStmtLine.SetRange("Statement Name", VATStmtLine."Statement Name");
        VATStmtTmpl.Get(VATStmtLine."Statement Template Name");
        VATStmtTmpl.TestField("VAT Statement Report ID");
        IsHandled := false;
        OnPrintVATStmtLineOnBeforeReportRun(VATStmtTmpl, VATStmtLine, IsHandled);
        if not IsHandled then
            REPORT.Run(VATStmtTmpl."VAT Statement Report ID", true, false, VATStmtLine);
    end;

    procedure PrintItemJnlBatch(ItemJnlBatch: Record "Item Journal Batch")
    begin
        ItemJnlBatch.SetRecFilter();
        ItemJnlTemplate.Get(ItemJnlBatch."Journal Template Name");
        ItemJnlTemplate.TestField("Test Report ID");
        REPORT.Run(ItemJnlTemplate."Test Report ID", true, false, ItemJnlBatch);
    end;

    procedure PrintItemJnlLine(var NewItemJnlLine: Record "Item Journal Line")
    begin
        ItemJnlLine.Copy(NewItemJnlLine);
        ItemJnlLine.SetRange("Journal Template Name", ItemJnlLine."Journal Template Name");
        ItemJnlLine.SetRange("Journal Batch Name", ItemJnlLine."Journal Batch Name");
        ItemJnlTemplate.Get(ItemJnlLine."Journal Template Name");
        ItemJnlTemplate.TestField("Test Report ID");
        REPORT.Run(ItemJnlTemplate."Test Report ID", true, false, ItemJnlLine);
    end;

    procedure PrintResJnlBatch(ResJnlBatch: Record "Res. Journal Batch")
    begin
        ResJnlBatch.SetRecFilter();
        ResJnlTemplate.Get(ResJnlBatch."Journal Template Name");
        ResJnlTemplate.TestField("Test Report ID");
        REPORT.Run(ResJnlTemplate."Test Report ID", true, false, ResJnlBatch);
    end;

    procedure PrintResJnlLine(var NewResJnlLine: Record "Res. Journal Line")
    begin
        ResJnlLine.Copy(NewResJnlLine);
        ResJnlLine.SetRange("Journal Template Name", ResJnlLine."Journal Template Name");
        ResJnlLine.SetRange("Journal Batch Name", ResJnlLine."Journal Batch Name");
        ResJnlTemplate.Get(ResJnlLine."Journal Template Name");
        ResJnlTemplate.TestField("Test Report ID");
        REPORT.Run(ResJnlTemplate."Test Report ID", true, false, ResJnlLine);
    end;

    procedure PrintSalesHeader(NewSalesHeader: Record "Sales Header")
    var
        SalesHeader: Record "Sales Header";
    begin
        SalesHeader := NewSalesHeader;
        SalesHeader.SetRecFilter();
        CalcSalesDiscount(SalesHeader);
        ReportSelection.PrintWithCheckForCust(
            ReportSelection.Usage::"S.Test", SalesHeader, SalesHeader.FieldNo("Bill-to Customer No."));
    end;

    procedure PrintSalesHeaderPrepmt(NewSalesHeader: Record "Sales Header")
    var
        SalesHeader: Record "Sales Header";
    begin
        SalesHeader := NewSalesHeader;
        SalesHeader.SetRecFilter();
        ReportSelection.PrintWithCheckForCust(
            ReportSelection.Usage::"S.Test Prepmt.", SalesHeader, SalesHeader.FieldNo("Bill-to Customer No."));
    end;

    procedure PrintPurchHeader(NewPurchHeader: Record "Purchase Header")
    var
        PurchHeader: Record "Purchase Header";
    begin
        PurchHeader := NewPurchHeader;
        PurchHeader.SetRecFilter();
        CalcPurchDiscount(PurchHeader);
        ReportSelection.PrintWithCheckForVend(ReportSelection.Usage::"P.Test", PurchHeader, PurchHeader.FieldNo("Buy-from Vendor No."));
    end;

    procedure PrintPurchHeaderPrepmt(NewPurchHeader: Record "Purchase Header")
    var
        PurchHeader: Record "Purchase Header";
    begin
        PurchHeader := NewPurchHeader;
        PurchHeader.SetRecFilter();
        ReportSelection.PrintWithCheckForVend(ReportSelection.Usage::"P.Test Prepmt.", PurchHeader, PurchHeader.FieldNo("Buy-from Vendor No."));
    end;

    procedure PrintBankAccRecon(NewBankAccRecon: Record "Bank Acc. Reconciliation")
    var
        BankAccRecon: Record "Bank Acc. Reconciliation";
    begin
        BankAccRecon := NewBankAccRecon;
        BankAccRecon.SetRecFilter();
        ReportSelection.PrintWithCheckForCust(ReportSelection.Usage::"B.Recon.Test", BankAccRecon, 0);
    end;

    procedure PrintFAJnlBatch(FAJnlBatch: Record "FA Journal Batch")
    begin
        FAJnlBatch.SetRecFilter();
        FAJnlTemplate.Get(FAJnlBatch."Journal Template Name");
        FAJnlTemplate.TestField("Test Report ID");
        REPORT.Run(FAJnlTemplate."Test Report ID", true, false, FAJnlBatch);
    end;

    procedure PrintFAJnlLine(var NewFAJnlLine: Record "FA Journal Line")
    begin
        FAJnlLine.Copy(NewFAJnlLine);
        FAJnlLine.SetRange("Journal Template Name", FAJnlLine."Journal Template Name");
        FAJnlLine.SetRange("Journal Batch Name", FAJnlLine."Journal Batch Name");
        FAJnlTemplate.Get(FAJnlLine."Journal Template Name");
        FAJnlTemplate.TestField("Test Report ID");
        REPORT.Run(FAJnlTemplate."Test Report ID", true, false, FAJnlLine);
    end;

    procedure PrintInsuranceJnlBatch(InsuranceJnlBatch: Record "Insurance Journal Batch")
    begin
        InsuranceJnlBatch.SetRecFilter();
        InsuranceJnlTempl.Get(InsuranceJnlBatch."Journal Template Name");
        InsuranceJnlTempl.TestField("Test Report ID");
        REPORT.Run(InsuranceJnlTempl."Test Report ID", true, false, InsuranceJnlBatch);
    end;

    procedure PrintInsuranceJnlLine(var NewInsuranceJnlLine: Record "Insurance Journal Line")
    begin
        InsuranceJnlLine.Copy(NewInsuranceJnlLine);
        InsuranceJnlLine.SetRange("Journal Template Name", InsuranceJnlLine."Journal Template Name");
        InsuranceJnlLine.SetRange("Journal Batch Name", InsuranceJnlLine."Journal Batch Name");
        InsuranceJnlTempl.Get(InsuranceJnlLine."Journal Template Name");
        InsuranceJnlTempl.TestField("Test Report ID");
        REPORT.Run(InsuranceJnlTempl."Test Report ID", true, false, InsuranceJnlLine);
    end;


    procedure PrintWhseJnlBatch(WhseJnlBatch: Record "Warehouse Journal Batch")
    begin
        WhseJnlBatch.SetRecFilter();
        WhseJnlTemplate.Get(WhseJnlBatch."Journal Template Name");
        WhseJnlTemplate.TestField("Test Report ID");
        REPORT.Run(WhseJnlTemplate."Test Report ID", true, false, WhseJnlBatch);
    end;

    procedure PrintWhseJnlLine(var NewWhseJnlLine: Record "Warehouse Journal Line")
    begin
        WhseJnlLine.Copy(NewWhseJnlLine);
        WhseJnlLine.SetRange("Journal Template Name", WhseJnlLine."Journal Template Name");
        WhseJnlLine.SetRange("Journal Batch Name", WhseJnlLine."Journal Batch Name");
        WhseJnlTemplate.Get(WhseJnlLine."Journal Template Name");
        WhseJnlTemplate.TestField("Test Report ID");
        REPORT.Run(WhseJnlTemplate."Test Report ID", true, false, WhseJnlLine);
    end;

    procedure PrintInvtPeriod(NewInvtPeriod: Record "Inventory Period")
    var
        InvtPeriod: Record "Inventory Period";
    begin
        InvtPeriod := NewInvtPeriod;
        InvtPeriod.SetRecFilter();

        ReportSelection.PrintWithCheckForCust(
            ReportSelection.Usage::"Invt.Period Test", InvtPeriod, 0);
    end;

    procedure PrintJobJnlBatch(JobJnlBatch: Record "Job Journal Batch")
    begin
        JobJnlBatch.SetRecFilter();
        JobJnlTemplate.Get(JobJnlBatch."Journal Template Name");
        JobJnlTemplate.TestField("Test Report ID");
        REPORT.Run(JobJnlTemplate."Test Report ID", true, false, JobJnlBatch);
    end;

    procedure PrintJobJnlLine(var NewJobJnlLine: Record "Job Journal Line")
    begin
        JobJnlLine.Copy(NewJobJnlLine);
        JobJnlLine.SetRange("Journal Template Name", JobJnlLine."Journal Template Name");
        JobJnlLine.SetRange("Journal Batch Name", JobJnlLine."Journal Batch Name");
        JobJnlTemplate.Get(JobJnlLine."Journal Template Name");
        JobJnlTemplate.TestField("Test Report ID");
        REPORT.Run(JobJnlTemplate."Test Report ID", true, false, JobJnlLine);
    end;

    procedure CalcSalesDiscount(var SalesHeader: Record "Sales Header")
    var
        SalesLine: Record "Sales Line";
        SalesSetup: Record "Sales & Receivables Setup";
    begin
        SalesSetup.Get();
        if SalesSetup."Calc. Inv. Discount" then begin
            SalesLine.Reset();
            SalesLine.SetRange("Document Type", SalesHeader."Document Type");
            SalesLine.SetRange("Document No.", SalesHeader."No.");
            OnCalcSalesDiscOnAfterSetFilters(SalesLine, SalesHeader);
            SalesLine.FindFirst();
            OnCalcSalesDiscOnBeforeRun(SalesHeader, SalesLine);
            CODEUNIT.Run(CODEUNIT::"Sales-Calc. Discount", SalesLine);
            SalesHeader.Get(SalesHeader."Document Type", SalesHeader."No.");
            Commit();
        end;

        OnAfterCalcSalesDiscount(SalesHeader, SalesLine);
    end;

    procedure CalcPurchDiscount(var PurchHeader: Record "Purchase Header")
    var
        PurchLine: Record "Purchase Line";
        PurchSetup: Record "Purchases & Payables Setup";
    begin
        PurchSetup.Get();
        if PurchSetup."Calc. Inv. Discount" then begin
            PurchLine.Reset();
            PurchLine.SetRange("Document Type", PurchHeader."Document Type");
            PurchLine.SetRange("Document No.", PurchHeader."No.");
            OnCalcPurchDiscOnAfterSetFilters(PurchLine, PurchHeader);
            PurchLine.FindFirst();
            OnCalcPurchDiscOnBeforeRun(PurchHeader, PurchLine);
            CODEUNIT.Run(CODEUNIT::"Purch.-Calc.Discount", PurchLine);
            PurchHeader.Get(PurchHeader."Document Type", PurchHeader."No.");
            Commit();
        end;

        OnAfterCalcPurchDiscount(PurchHeader, PurchLine);
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterCalcSalesDiscount(var SalesHeader: Record "Sales Header"; var SalesLine: Record "Sales Line")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterCalcPurchDiscount(var PurchHeader: Record "Purchase Header"; var PurchaseLine: Record "Purchase Line")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforePrintGenJnlLine(var NewGenJnlLine: Record "Gen. Journal Line"; var IsHandled: Boolean)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCalcSalesDiscOnAfterSetFilters(var SalesLine: Record "Sales Line"; SalesHeader: Record "Sales Header");
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCalcPurchDiscOnAfterSetFilters(var PurchaseLine: Record "Purchase Line"; PurchaseHeader: Record "Purchase Header");
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCalcSalesDiscOnBeforeRun(SalesHeader: Record "Sales Header"; var SalesLine: Record "Sales Line")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCalcPurchDiscOnBeforeRun(PurchaseHeader: Record "Purchase Header"; var PurchaseLine: Record "Purchase Line")
    begin
    end;


    [IntegrationEvent(false, false)]
    local procedure OnPrintGenJnlLineOnAfterGenJnlLineCopy(var GenJnlLine: Record "Gen. Journal Line")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnPrintVATStmtLineOnBeforeReportRun(VATStatementTemplate: Record "VAT Statement Template"; VATStatementLine: Record "VAT Statement Line"; var IsHandled: Boolean)
    begin
    end;
}