BR-PROC-005: Expense payments over the user authority level require supervisor approval¶
Field
Value
Statement
Expense payments over the user authority level require supervisor approval
Trigger
A dirty expense is moved toward payment and the acting user lacks initiate authority for the paid amount, or an amendment is entered without approval authority, or the paid amount exceeds the expense type's limit amount
Enforcement
clsExpense.NeedsApproval and clsExpense.CanPay, using PaymentUser.HasInitiateAuthority and PaymentUser.HasApprovalAuthority
Outcome
The expense is demoted to pending supervisor approval instead of moving to pay status
A purchase in pay status carries a credit-card transaction date
Enforcement
clsPurchase.NeedsApproval override, which returns true before any authority or limit evaluation and adds the warning "Supervisor approval is required when credit card trans date is entered."
Outcome
The purchase is routed to the supervisor credit-card review queue regardless of amount or user authority
BR-PROC-007: Wage subsidy pay equals gross wages times the effective rate factor¶
Field
Value
Statement
Wage subsidy pay equals gross wages times the effective rate factor
Trigger
A wage subsidy worksheet is recalculated from its pay period summaries
Enforcement
clsWageSubsidy sets gross wages to the sum of the pay period gross wages and the paid amount to that sum multiplied by WageSubsidyCalculationFactor, rounded to two decimals
Outcome
The payable wage subsidy is a derived value that cannot be entered directly
BR-PROC-008: Wage subsidy days may not exceed 66 in a service period¶
Field
Value
Statement
Wage subsidy days may not exceed 66 in a service period
Trigger
The summed days of the non-amended, non-denied wage subsidies on a service period exceed 66
Enforcement
clsWageSubsidyCollection adds the warning "Warning: Supervisor approval is required when paying more than 66 days."; the related rule Rule_Rule_ValidDaySpanInTwoYears warns that the 66 days must fall within the 24-month service period
Outcome
Payment is blocked until a supervisor approves the excess
BR-PROC-009: Expense payment totals under $100 require supervisor approval¶
Field
Value
Statement
Expense payment totals under $100 require supervisor approval
Trigger
Any expense on the service period sits in pay status and the summed paid amount is less than the $100 minimum, and the total cannot be billed
Enforcement
clsExpenseCollection.CanPay compares the summed paid amount against the MIN_PAID_AMOUNT constant of 100 and adds the warning "Warning: Supervisor approval is needed when payment total is less than $100.00."
Outcome
The payment run is blocked until a supervisor approves the small-dollar total
BR-PROC-010: Only the first bill for a service period carries the administrative fee¶
Field
Value
Statement
Only the first bill for a service period carries the administrative fee
Trigger
A DCBS bill is generated for a service period whose existing bills already sum to a non-zero administrative fee
Enforcement
clsGenerateBill.GenerateBill sums AdminFeeAmount across the period's existing bills; a zero sum produces an initial bill carrying the admin-fee limit amount from the EAIP type code table, and a non-zero sum produces a subsequent bill with no fee
Outcome
The administrative fee is billed to DCBS once per service period
BR-PROC-011: Amended expenses are excluded from the batch billing run¶
Field
Value
Statement
Amended expenses are excluded from the batch billing run
Trigger
The batch bill run finds paid wage subsidies or purchases carrying a non-zero original expense identifier
Enforcement
clsGenerateBill.GenerateBill returns an empty bill immediately when billAmended is false and amendments were detected, with the code comment "don't bill amendments during batch run"
Outcome
Amendments and corrections are billed only through the explicit on-demand path, which also generates a cover letter
BR-PROC-012: A reimbursement detail reconciles only when amounts match the detail total¶
Field
Value
Statement
A reimbursement detail reconciles only when amounts match the detail total
Trigger
The DCBS balancing run finishes matching a reimbursement detail's expense-type amounts against the claim's unreconciled billed expenses
Enforcement
clsBalanceDCBS.BalanceToDCBS compares the detail's total amount with the accumulated matched amount; equality sets the reconciled flag and increments the reconciled counter, and any difference increments the skipped counter and emits a "Not Reconciled" warning. The detail's transaction is committed only when the reconciled flag is set
Outcome
Partial matches are rolled back rather than persisted, so a detail is either fully reconciled or left untouched
BR-PROC-013: EAIP service periods for a claim may not overlap¶
Field
Value
Statement
EAIP service periods for a claim may not overlap
Trigger
A service period's effective or expiration date is set so that its range intersects another period on the same claim
Enforcement
clsPeriod.Rule_ValidServiceDates tests the candidate date range against the claim's other periods and reports "Error: Period dates overlap an existing period."
BR-PROC-014: Targeting records must be unique by claim, status date, and completed date¶
Field
Value
Statement
Targeting records must be unique by claim, status date, and completed date
Trigger
A targeting record is saved whose claim identifier, claim status effective date, and completed date match another record
Enforcement
clsTargeting.Rule_ValidUniqueID counts matching rows in the EAIP claim targeting table excluding the record's own identifier, and the collection rules Rule_ValidUniqueIDs and Rule_DuplicateTargetings group the in-memory records on the same three values
Outcome
Duplicate eligibility screenings are rejected, whether the duplicate is already stored or still pending in the same collection
BR-PROC-015: Timecard regular and overtime hours must equal calculated hours¶
Field
Value
Statement
Timecard regular and overtime hours must equal calculated hours
Trigger
A timecard's regular hours are entered or changed
Enforcement
clsPayPeriodTimeCard.Rule_ValidTotalHours requires regular plus overtime hours to equal the calculated hours derived from the in and out times, reporting both figures in the message
Outcome
The timecard cannot be saved until the entered split agrees with the elapsed time worked