Skip to content

clsProviderPaymentPreference

clsProviderPaymentPreference is the medical/service-provider payment-method preference business object. It implements the iPaymentPreference interface defined in SAIF.Business.Payment, scoped specifically to provider payees rather than claimants.

Purpose

  • Persist and retrieve payment method preferences for medical/service providers.
  • Implement the iPaymentPreference contract for the provider context.
  • Expose AllowDebitCard to control whether the debit-card option is available to the provider.

Context

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

Public members

Member Signature Purpose
PAYMENT_PREFERENCE_TYPE_CHECK Public Const PAYMENT_PREFERENCE_TYPE_CHECK = "CHK" Code constant representing the check payment preference type.
PAYMENT_PREFERENCE_TYPE_DIRECTDEPOSIT Public Const PAYMENT_PREFERENCE_TYPE_DIRECTDEPOSIT = "DD" Code constant representing the direct-deposit payment preference type.
PAYMENT_PREFERENCE_TYPE_DEBITCARD Public Const PAYMENT_PREFERENCE_TYPE_DEBITCARD = "DC" Code constant representing the debit-card payment preference type.
PROVIDER_PAYEE_TYPE Public Const PROVIDER_PAYEE_TYPE = "PROV" Code constant identifying the provider payee type.
AllowDebitCard Public ReadOnly Property AllowDebitCard As Boolean Indicates whether debit-card payment is allowed for this provider payee.*
BankAccountNumber Public Property BankAccountNumber As String Gets or sets the decrypted (or masked, per MyCriteria.MaskBankNumbers) bank account number stored on PaymentAuthorization.BankAccount.
BankAccountTypeCode Public Property BankAccountTypeCode As String Gets or sets the bank account type code delegated to PaymentAuthorization.BankAccount.BankAccountTypeCode.
BankRoutingNumber Public Property BankRoutingNumber As String Gets or sets the decrypted (or masked) bank routing number stored on PaymentAuthorization.BankAccount.
Payee Public ReadOnly Property Payee As iPayee The provider payee associated with this payment preference.
IsBusinessAccount Public Property IsBusinessAccount As Boolean Gets or sets whether the bank account is a business account, mapped to clsConsumerBusinessCode.BUSINESS/CONSUMER on PaymentAuthorization.BankAccount.
SendEmailNotification Public Property SendEmailNotification As Boolean Gets or sets whether the provider payee receives email notifications for the payment authorization.
PaymentPreferenceType Public ReadOnly Property PaymentPreferenceType As iPaymentPreference.PaymentPreferenceTypes The strongly-typed payment preference type (Check, DirectDeposit, DebitCard) selected for this provider.
PaymentPreferenceTypeCode Public ReadOnly Property PaymentPreferenceTypeCode As String The short code (CHK/DD/DC) corresponding to PaymentPreferenceType.
ProviderId Public Property ProviderId As Decimal The provider identifier this payment preference belongs to.
BankAccountNickName Public Property BankAccountNickName As String A user-supplied friendly name for the provider's bank account.*
MaskedBankAccountNumber Public ReadOnly Property MaskedBankAccountNumber As String The masked bank account number from PaymentAuthorization.BankAccount.
MaskedBankRoutingNumber Public ReadOnly Property MaskedBankRoutingNumber As String The masked bank routing number from PaymentAuthorization.BankAccount.
PayeeHasForeignOrIATAddress Public ReadOnly Property PayeeHasForeignOrIATAddress As Boolean True when any IAT address field is populated, or the provider payee's address is foreign.
IsIAT Public Property IsIAT As Boolean Gets or sets PaymentAuthorization.IATFlag (International ACH Transaction flag) as a boolean.
IATCity Public Property IATCity As String Gets or sets PaymentAuthorization.IATCity.
IATCountryCode Public Property IATCountryCode As String Gets or sets PaymentAuthorization.IATCountryCode.
CountryCodeList Public ReadOnly Property CountryCodeList As SAIF.Business.CodeMappings.clsCountryCodeList Lazily-loaded, statically-cached country code list retrieved via SAIF.Business.CodeMappings.GetCountryCodeList.
IATCountryName Public ReadOnly Property IATCountryName As String The description text for IATCountryCode looked up from CountryCodeList.
IATStateOrProvince Public Property IATStateOrProvince As String Gets or sets PaymentAuthorization.IATStateProvince.
IATPostalCode Public Property IATPostalCode As String Gets or sets PaymentAuthorization.IATPostalCode.
IATStreet Public Property IATStreet As String Gets or sets PaymentAuthorization.IATStreetAddress.
SecondBankAccountNumber Public Property SecondBankAccountNumber As String A secondary bank account number used for confirmation/re-entry during account entry or change.*
BankAccount Public Property BankAccount As clsBankAccount The bank account associated with the provider's payment authorization.
PaymentAuthorization Public ReadOnly Property PaymentAuthorization As clsEFTAuthorization The underlying clsEFTAuthorization child object that backs most bank-account and IAT properties on this class.
BankAccountTypeDescription Public ReadOnly Property BankAccountTypeDescription As String Localized description ("Checking"/"Savings") for the bank account type, resolved from Resources.Business_Payment_EFT.
PaymentPreferenceTypeDescription Public ReadOnly Property PaymentPreferenceTypeDescription As String Localized description of PaymentPreferenceType ("Check"/"Debit card"/"Direct deposit"), resolved from Resources.Business_Payment_EFT.
IsUserSAIFEmployee Public ReadOnly Property IsUserSAIFEmployee As Boolean Indicates whether the current user is a SAIF employee, used to gate masking/validation behavior.
NewPaymentPreference Public Shared Function NewPaymentPreference(inDataPortal As IDataPortalInfo, inProviderId As Decimal, inProviderLocationId As Decimal, inPaymentPreferenceType As iPaymentPreference.PaymentPreferenceTypes, inIsSAIFUser As Boolean, inMaskBankNumbers As Boolean, inBankValidatorXMLDocument As XDocument, Optional inBankAccount As clsBankAccount = Nothing) As clsProviderPaymentPreference Creates a new, unsaved clsProviderPaymentPreference for the given provider, location, and preference type.
GetPaymentPreference Public Shared Function GetPaymentPreference(inDataPortal As IDataPortalInfo, inProviderId As Decimal, inProviderLocationId As Decimal, inIsUserSAIFEmployee As Boolean, inMaskBankNumbers As Boolean, inBankValidatorXMLDocument As XDocument) As clsProviderPaymentPreference Retrieves the existing payment preference for the given provider and location.
IsValidPayee Public Function IsValidPayee() As Boolean Validates that the provider payee has a usable name/identity.
IsValid Public Overrides ReadOnly Property IsValid As Boolean Triggers bank-number validation when needed, validates child objects, and returns true only when no validation errors are outstanding.
IsDirty Public Overrides ReadOnly Property IsDirty As Boolean True when the base object or the PaymentAuthorization child object has unsaved changes.
ConvertToPaymentPreferenceType Public Shared Function ConvertToPaymentPreferenceType(inPaymentPreferenceTypeCode As String) As iPaymentPreference.PaymentPreferenceTypes Converts a short payment-preference code (CHK/DD/DC) to the corresponding iPaymentPreference.PaymentPreferenceTypes value.
GetPayee Public Function GetPayee() As iPayee Returns the iPayee representation of the provider for this payment preference.*
SetPaymentPreferenceDefaults Public Sub SetPaymentPreferenceDefaults(inPaymentPreferenceType As iPaymentPreference.PaymentPreferenceTypes) Resets/initializes default field values appropriate to the given payment preference type.*
Save Public Overrides Function Save() As Boolean Persists the payment preference and its child objects through the data portal.

Inherited public members

Member Signature Purpose
DataPortalInfo (via Criteria) Public Property DataPortalInfo() As IDataPortalInfo implemented from IBusinessCriteria on the nested Criteria class Carries the data-portal connection/context information used for retrieve/insert/update/delete operations.*

Behavioral notes

  • Functionally analogous to clsPaymentPreference but scoped to provider context.*
  • AllowDebitCard governs debit-card option availability; exact eligibility condition not traced.**

Constraints and usage notes

  • Use clsPaymentPreference for claimant payment preferences.
  • The iPaymentPreference contract is defined in SAIF.BOF.Business.Payment.

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\clsProviderPaymentPreference.vb