Skip to content

codeunit 1720 "Deferral Utilities" - OnAfterInitializeDeferralHeaderAndSetPostDate #29728

@Henriquantos

Description

@Henriquantos

Why do you need this change?

Can you please add the event OnAfterInitializeDeferralHeaderAndSetPostDate to the procedure InitializeDeferralHeaderAndSetPostDate in Codeunit "Deferral Utilities" (1720)? This will be used to control the attribution of the variable StartDate.

Describe the request

Actual Code

procedure InitializeDeferralHeaderAndSetPostDate(var DeferralLine: Record "Deferral Line"; DeferralHeader: Record "Deferral Header"; PeriodicCount: Integer; var PostDate: Date)
var
    AccountingPeriod: Record "Accounting Period";
begin
    DeferralLine.Init();
    DeferralLine."Deferral Doc. Type" := DeferralHeader."Deferral Doc. Type";
    DeferralLine."Gen. Jnl. Template Name" := DeferralHeader."Gen. Jnl. Template Name";
    DeferralLine."Gen. Jnl. Batch Name" := DeferralHeader."Gen. Jnl. Batch Name";
    DeferralLine."Document Type" := DeferralHeader."Document Type";
    DeferralLine."Document No." := DeferralHeader."Document No.";
    DeferralLine."Line No." := DeferralHeader."Line No.";
    DeferralLine."Currency Code" := DeferralHeader."Currency Code";
    OnInitializeDeferralHeaderAndSetPostDateAfterInitDeferralLine(DeferralLine);

    if PeriodicCount = 1 then begin
        if not AccountingPeriod.IsEmpty() then begin
            AccountingPeriod.SetFilter("Starting Date", '..%1', DeferralHeader."Start Date");
            if not AccountingPeriod.FindFirst() then
                Error(DeferSchedOutOfBoundsErr);
        end;
        PostDate := DeferralHeader."Start Date";
    end else begin
        if IsAccountingPeriodExist(AccountingPeriod, CalcDate('<CM>', PostDate) + 1) then begin
            AccountingPeriod.SetFilter("Starting Date", '>%1', PostDate);
            if not AccountingPeriod.FindFirst() then
                Error(DeferSchedOutOfBoundsErr);
        end;
        PostDate := AccountingPeriod."Starting Date";
    end;
end;

Suggestion

procedure InitializeDeferralHeaderAndSetPostDate(var DeferralLine: Record "Deferral Line"; DeferralHeader: Record "Deferral Header"; PeriodicCount: Integer; var PostDate: Date)
var
    AccountingPeriod: Record "Accounting Period";
begin
    DeferralLine.Init();
    DeferralLine."Deferral Doc. Type" := DeferralHeader."Deferral Doc. Type";
    DeferralLine."Gen. Jnl. Template Name" := DeferralHeader."Gen. Jnl. Template Name";
    DeferralLine."Gen. Jnl. Batch Name" := DeferralHeader."Gen. Jnl. Batch Name";
    DeferralLine."Document Type" := DeferralHeader."Document Type";
    DeferralLine."Document No." := DeferralHeader."Document No.";
    DeferralLine."Line No." := DeferralHeader."Line No.";
    DeferralLine."Currency Code" := DeferralHeader."Currency Code";
    OnInitializeDeferralHeaderAndSetPostDateAfterInitDeferralLine(DeferralLine);

    if PeriodicCount = 1 then begin
        if not AccountingPeriod.IsEmpty() then begin
            AccountingPeriod.SetFilter("Starting Date", '..%1', DeferralHeader."Start Date");
            if not AccountingPeriod.FindFirst() then
                Error(DeferSchedOutOfBoundsErr);
        end;
        PostDate := DeferralHeader."Start Date";
    end else begin
        if IsAccountingPeriodExist(AccountingPeriod, CalcDate('<CM>', PostDate) + 1) then begin
            AccountingPeriod.SetFilter("Starting Date", '>%1', PostDate);
            if not AccountingPeriod.FindFirst() then
                Error(DeferSchedOutOfBoundsErr);
        end;
        PostDate := AccountingPeriod."Starting Date";
    end;

    OnAfterInitializeDeferralHeaderAndSetPostDate(DeferralLine, DeferralHeader,PeriodicCount, PostDate);
end;

[IntegrationEvent(false, false)]
local procedure OnAfterInitializeDeferralHeaderAndSetPostDate(var DeferralLine: Record "Deferral Line"; DeferralHeader: Record "Deferral Header"; PeriodicCount: Integer; var PostDate: Date)
begin
end;

Internal work item: AB#622415

Metadata

Metadata

Assignees

No one assigned

    Labels

    FinanceGitHub request for Finance areaevent-requestRequest for adding an event

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions