Skip to content

[BE][Codeunit][2000042][Post Coded Bank Statement] OnAfterSearchCustomer Event #29894

@StijnBtGAC

Description

@StijnBtGAC

Why do you need this change?

To allow custom/flexible CODA statement matching we require a possibility to write our own SearchCustomer logic.
This is not possible now.
However this is possible for the SearchVendor logic since an event was implemented there. The same kind of event on SearchCustomer would resolve our issue.

Describe the request

codeunit 2000042 "Post Coded Bank Statement"{

local procedure SearchCustomer(): Boolean
    var
        CustBankAcc: Record "Customer Bank Account";
        DomiciliationNo: Text[12];
        BankAccNo: Text[30];
    begin
        Clear(Cust);
        if CodBankStmtLine."Type Standard Format Message" = 107 then begin
            if Cust.SetCurrentKey("Domiciliation No.") then;
            DomiciliationNo := CopyStr(CodBankStmtLine."Statement Message", 1, 12);
            Cust.SetRange("Domiciliation No.", DomiciliationNo);
            exit(Cust.FindFirst());
        end;
        if CodBankStmtLine."Bank Account No. Other Party" <> '' then begin
            CustBankAcc.SetRange(IBAN, CodBankStmtLine."Bank Account No. Other Party");
            if not CustBankAcc.FindFirst() then begin
                CustBankAcc.SetRange(IBAN);
                if StrLen(CodBankStmtLine."Bank Account No. Other Party") <= MaxStrLen(CustBankAcc."Bank Account No.") then
                    CustBankAcc.SetRange("Bank Account No.", CodBankStmtLine."Bank Account No. Other Party");
                if not CustBankAcc.FindFirst() then begin
                    BankAccNo :=
                      // try format xxx-xxxxxxx-xx
                      CopyStr(CodBankStmtLine."Bank Account No. Other Party", 1, 3) +
                      '-' + CopyStr(CodBankStmtLine."Bank Account No. Other Party", 4, 7) +
                      '-' + CopyStr(CodBankStmtLine."Bank Account No. Other Party", 11, 2);
                    CustBankAcc.SetRange("Bank Account No.", BankAccNo);
                    if not CustBankAcc.FindFirst() then
                        if CodedTrans."Account Type" = CodedTrans."Account Type"::Customer then
                            CustBankAcc."Customer No." := CodedTrans."Account No.";
                end;
            end;
            //ADD BEGIN
            OnAfterSearchCustomer(Cust, CustBankAcc, CodBankStmtLine);
            //ADD END
            exit(Cust.Get(CustBankAcc."Customer No."));
        end
    end;

     //ADD BEGIN
    [IntegrationEvent(false, false)]
    local procedure OnAfterSearchCustomer(var Customer: Record Customer; var CustomerBankAccount: Record "Customer Bank Account"; var CODAStatementLine: Record "CODA Statement Line")
    begin
    end;
   //ADD END

}

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