Skip to content

[NL][Codeunit][11000006][CBGStatementReconciliation][MatchCBGStatementLine] Add integration event OnMatchCBGStatementLineOnAfterFillAppliesToFieldsVendor #30154

@KateDovgalova

Description

@KateDovgalova

Why do you need this change?

In 4PS Construct we need to validate "Applies-to Doc. No." in "CBG Statement Line" (and execute PaymentToleranceMgt.PmtTolCBGJnl) in procedure MatchCBGStatementLine of codeunit 11000006 "CBG Statement Reconciliation" after assigning value from VendorLedgerEntry."Document No.".

Describe the request

Dear ALAppExtensions team,

On behalf of 4PS I would like to request integration event 'OnMatchCBGStatementLineOnAfterFillAppliesToFieldsVendor' to be added to procedure MatchCBGStatementLine of codeunit 11000006 "CBG Statement Reconciliation".

                    CBGStatementLine."Account Type"::Vendor:
                        begin
                            VendorLedgerEntry.Reset();
                            VendorLedgerEntry.SetCurrentKey("Vendor No.", Open);
                            VendorLedgerEntry.SetRange("Vendor No.", CBGStatementLine."Account No.");
                            VendorLedgerEntry.SetRange(Open, true);
                            VendorLedgerEntry.SetFilter("Document Type", '<>%1', VendorLedgerEntry."Document Type"::Payment);
                            GetTransactionModeFilter(CBGStatementLine, strFilter, TransactionMode."Account Type"::Vendor);
                            if strFilter <> '' then
                                VendorLedgerEntry.SetFilter("Transaction Mode Code", strFilter);
                            OnMatchCBGStatementLineOnBeforeFindVendLedgEntries(VendorLedgerEntry, CBGStatement, CBGStatementLine);
                            if VendorLedgerEntry.FindSet() then
                                repeat
                                    VendorLedgerEntry.CalcFields("Remaining Amount");
                                    if Abs(CBGStatementLine.Amount) =
                                       Abs(VendorLedgerEntry."Remaining Amount" - VendorLedgerEntry."Remaining Pmt. Disc. Possible")
                                    then begin
                                        EntriesCount += 1;
                                        EntryNo := VendorLedgerEntry."Entry No.";
                                    end;
                                until (VendorLedgerEntry.Next() = 0) or (EntriesCount > 1);
                            if EntriesCount = 1 then begin
                                VendorLedgerEntry.Get(EntryNo);
                                CBGStatementLine."Applies-to Doc. Type" := VendorLedgerEntry."Document Type";
                                CBGStatementLine."Applies-to Doc. No." := VendorLedgerEntry."Document No.";
                                OnMatchCBGStatementLineOnAfterFillAppliesToFieldsVendor(CBGStatementLine); //new
                                CBGStatementLine."Reconciliation Status" := CBGStatementLine."Reconciliation Status"::Applied;
                                NumberOfLinesApplied := NumberOfLinesApplied + 1;
                                if RecChanged then
                                    NumberOfLinesChanged := NumberOfLinesChanged - 1;
                                RecChanged := true;
                            end;
                        end;
    [IntegrationEvent(false, false)]
    local procedure OnMatchCBGStatementLineOnAfterFillAppliesToFieldsVendor(var CBGStatementLine: Record "CBG Statement Line")
    begin
        // new
    end;

Metadata

Metadata

Assignees

No one assigned

    Labels

    missing-infoThe issue misses information that prevents it from completion.

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions