Skip to content

clsBankAccount

clsBankAccount is the concrete bank-account business object in SAIF.Business.Payment.EFT. It implements both IBankAccount (from SAIF.Business.Payment) and IBusinessCriteria (the BOF persistence interface), providing full CRUD lifecycle management for bank account records stored in the BANK_ACCOUNT Oracle table.

Purpose

  • Persist and retrieve bank account records including routing number, account number, account type, owner name, and status.
  • Expose masked bank account number display (MaskedBankAccountNumber).
  • Classify accounts by type (checking, savings, business, consumer) and status.
  • Perform soft-delete by updating BANK_ACCOUNT_STATUS_CODE to DELETED rather than removing the row.

Context

  • Namespace: SAIF.Business.Payment.EFT
  • Assembly/package: SAIF.BOF.Business.Payment.EFT (NuGet)
  • Implements: IBankAccount (SAIF.Business.Payment), IBusinessCriteria
  • Inherits: clsBusinessBase (SAIF.BOF.Framework)

Public members

Member Signature Purpose
BankAccountID Property BankAccountID As Decimal Sequence number primary key (BANK_ACCOUNT_SEQ_NUM).
BankAccountNum Property BankAccountNum As String Encrypted/stored bank account number (BANK_ACCOUNT_NUM).*
BankRoutingNum Property BankRoutingNum As String Bank routing number (BANK_ROUTING_NUM).*
BankAccountTypeCode Property BankAccountTypeCode As String Account type code (BANK_ACCOUNT_TYPE_CODE).
BankAccountStatusCode Property BankAccountStatusCode As String Account status code (BANK_ACCOUNT_STATUS_CODE).
BankAccountDataSourceCode Property BankAccountDataSourceCode As String Data source code (BANK_ACCOUNT_DATA_SOURCE_CODE).
BankAccountOwnerName Property BankAccountOwnerName As String Owner name on the account (BANK_ACCOUNT_OWNER_NAME).
BankAccountHolderName Property BankAccountHolderName As String Holder name on the account (BANK_ACCOUNT_HOLDER_NAME).
BankAccountNickName Property BankAccountNickName As String Nickname for the account (BANK_ACCOUNT_NICK_NAME).
BankName Property BankName As String Name of the bank (BANK_NAME).
BusinessConsumerCode Property BusinessConsumerCode As String Business or consumer classification (BUSINESS_CONSUMER_CODE).
HistoricalAuthorizationFlag Property HistoricalAuthorizationFlag As String Indicates historical authorization (HISTORICAL_AUTHORIZATION_FLAG).
PaymentReturnReasonCode Property PaymentReturnReasonCode As String Last return reason code on file (PAYMENT_RETURN_REASON_CODE).
MaskedBankAccountNumber ReadOnly Property MaskedBankAccountNumber As String Returns a masked display version of the bank account number.*
CreateDate Property CreateDate As Date Record creation date.
CreateUser Property CreateUser As String User who created the record.
UpdateDate Property UpdateDate As Date Last update date.
UpdateUser Property UpdateUser As String User who last updated the record.

Behavioral notes

  • DeleteSQL issues an UPDATE that sets BANK_ACCOUNT_STATUS_CODE to clsBankAccountStatusCode.DELETED, not a physical row delete. The BANK_ACCOUNT row is retained for historical linkage.*
  • CreateSQL calls SELECT BANK_ACCOUNT_SEQ.NEXTVAL FROM DUAL before InsertSQL to generate the sequence value.*
  • All insert and update operations enforce RowsAffected = 1; a different count adds an error message to the business object.*
  • The Libs\SAIFEncrypt.dll binary reference in the project suggests bank account/routing number encryption may be applied before persistence, but no confirmed call site was found.**

Constraints and usage notes

  • Requires IBankAccount contract from SAIF.BOF.Business.Payment.
  • Sequence generation (CreateSQL) must complete successfully before InsertSQL can proceed.*
  • Soft-delete semantics: consumers must filter by BANK_ACCOUNT_STATUS_CODE <> 'DELETED' if inactive accounts should be excluded.*

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • Business\SAIF.Business.Payment.EFT\clsBankAccount.vb
  • Business\SAIF.Business.Payment.EFT\clsBankAccountCollection.vb