Skip to content

SAIF.Business.Payment business rules

This page captures business rules enforced by this library. SAIF.Business.Payment contains substantive eligibility logic in clsEligPayeeClaimCollection.getEligClaimPayees, which evaluates worker and beneficiary eligibility through explicit conditional checks. The two contract-level inferred rules (BR-PAY-01, BR-PAY-02) are retained, and the implemented eligibility rules from clsEligPayeeClaimCollection.vb are documented below as BR-PAY-03, BR-PAY-04, BR-PAY-05, BR-PAY-06, and BR-PAY-07.

BR-PAY-01: Eligible-payee record requirement

Field Value
Statement A payee is only eligible for claim payment if a corresponding clsEligPayeeClaim record exists and is active for that claim.**
Trigger Payment processing code evaluates payee eligibility for a given claim.**
Enforcement The existence and state of a clsEligPayeeClaim object for the claim; exact eligibility criteria (status and date fields) require deeper inspection of clsEligPayeeClaim.vb properties and After* validation logic, which were not fully traced.**
Outcome Payees without a valid clsEligPayeeClaim record are not eligible for claim payment.**
Source Business\SAIF.Business.Payment\clsEligPayeeClaim.vb

BR-PAY-02: Conditional debit-card allowance

Field Value
Statement Debit-card payment is conditionally allowed per payee or payment preference.**
Trigger Payment channel selection; evaluation of iPaymentPreference.AllowDebitCard.**
Enforcement The AllowDebitCard property on iPaymentPreference; the condition governing this flag is defined by the implementing class outside this library.**
Outcome When AllowDebitCard is false or unset, debit-card channel is not offered to the payee.**
Source Business\SAIF.Business.Payment\IPaymentPreference.vb

BR-PAY-03: Dead worker exclusion from eligible payee list

Field Value
Statement A worker who has a recorded death date is excluded from the eligible payee list unless the caller explicitly requests inclusion of non-eligible payees.
Trigger getEligClaimPayees is called with inIncludeNonEligiblePayees = False (the default) and the worker record has DeathDate > Date.MinValue.
Enforcement clsEligPayeeClaimCollection.getEligClaimPayees: If l_Worker.DeathDate > Date.MinValue And Not inIncludeNonEligiblePayees — the worker payee record is not added to the collection.
Outcome Deceased workers do not appear as eligible payees on claims unless the override flag is set.
Source Business\SAIF.Business.Payment\clsEligPayeeClaimCollection.vb

BR-PAY-04: Child under 26 eligible as beneficiary payee

Field Value
Statement A beneficiary with a child relationship (RelationshipToWorkerCode = "2") is eligible as a payee if their birth date plus 26 years is on or after today.
Trigger getEligClaimPayees iterates the beneficiary list and the beneficiary RelationshipToWorkerCode is "2".
Enforcement clsEligPayeeClaimCollection.getEligClaimPayees: If l_Bene.BirthDate.AddYears(26) >= Today Then l_add = True.
Outcome Child beneficiaries under age 26 are included in the eligible payee collection.
Source Business\SAIF.Business.Payment\clsEligPayeeClaimCollection.vb

BR-PAY-05: Invalid/disabled child over 26 exception

Field Value
Statement A child beneficiary age 26 or older is still eligible as a payee if they are flagged as an invalid or disabled child (InvalidCode = "Y") and their award eligibility has not expired (AwardEligExpDate > Now).
Trigger getEligClaimPayees iterates the beneficiary list, the beneficiary RelationshipToWorkerCode is "2", and BirthDate.AddYears(26) < Today.
Enforcement clsEligPayeeClaimCollection.getEligClaimPayees: If l_Bene.InvalidCode = "Y" And l_Bene.AwardEligExpDate > Now Then l_add = True.
Outcome Disabled children over 26 whose awards are active remain eligible payees.
Source Business\SAIF.Business.Payment\clsEligPayeeClaimCollection.vb

BR-PAY-06: Non-child beneficiary eligible until award expiry

Field Value
Statement A beneficiary who is not a child (RelationshipToWorkerCode <> "2") is eligible as a payee while their award eligibility date is in the future.
Trigger getEligClaimPayees iterates the beneficiary list and the beneficiary RelationshipToWorkerCode is not "2".
Enforcement clsEligPayeeClaimCollection.getEligClaimPayees: If l_Bene.AwardEligExpDate > Now Then l_add = True.
Outcome Spouses and other non-child beneficiaries with active awards are included in the eligible payee collection.
Source Business\SAIF.Business.Payment\clsEligPayeeClaimCollection.vb

BR-PAY-07: Include non-eligible payees override

Field Value
Statement When the inIncludeNonEligiblePayees flag is True, all workers and beneficiaries are added to the payee collection regardless of their eligibility status.
Trigger getEligClaimPayees is called with inIncludeNonEligiblePayees = True (added 2012-11-05).
Enforcement clsEligPayeeClaimCollection.getEligClaimPayees: If l_add Or inIncludeNonEligiblePayees Then — the flag short-circuits all eligibility checks for beneficiaries; dead workers are similarly included when this flag is True.
Outcome The returned collection contains all workers and beneficiaries, including those who would otherwise be filtered by BR-PAY-03, BR-PAY-04, BR-PAY-05, and BR-PAY-06.
Source Business\SAIF.Business.Payment\clsEligPayeeClaimCollection.vb

Notes

  • BR-PAY-01 and BR-PAY-02 remain inferred or unconfirmed at the contract level; the implementing logic resides in consuming libraries (primarily SAIF.Business.Payment.EFT).*
  • BR-PAY-03, BR-PAY-04, BR-PAY-05, BR-PAY-06, and BR-PAY-07 are directly implemented in clsEligPayeeClaimCollection.getEligClaimPayees and verified from source.

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\clsEligPayeeClaim.vb
  • Business\SAIF.Business.Payment\clsEligPayeeClaimCollection.vb
  • Business\SAIF.Business.Payment\IPaymentPreference.vb