Calculation type
Reduces each individual charge line's allowed amount down to the amount found in a configured fee schedule, only when the schedule amount is lower than the currently calculated allowed amount for that line; unconditionally destroys (zeroes) the account-level detail's amount via SetBase first.
Unused
This type appears in no customer's configuration in the snapshot.
records = GetFeeScheduleRecords(context, calc.ScheduleType); context.Details[0].SetBase(0.0M, calc) [runs unconditionally, before the loop, regardless of whether any charge is later adjusted]; for i=1..NumCharges-1: if !IgnoreCharge(calc,charge,context) && records[i] != null && records[i].Amount < detail.Amount: detail.Adjust(records[i].Amount, calc).
| Key | Meaning |
|---|---|
| ScheduleType | Key of the fee schedule (ScheduleTypeReferenceField, inherited from ScheduleTypeCalculation) read via GetFeeScheduleRecords to supply the per-charge ceiling amount used as the threshold. |
Gotchas
Despite being categorized Adjustment (implements IAdjustment), the account-level detail is mutated with SetBase, not Adjust -- SetBase replaces BaseCalculation and Amount wholesale (no delta recorded in Adjustments, and it stomps whatever the base calculation or prior adjustments had set for Details[0]) whereas every charge-level change in the same method correctly uses Adjust. This SetBase(0.0M) call is unconditional -- it runs even if no charge ends up adjusted, so any ThresholdAdjustment configured in a FeeLogic always zeroes the account-level amount as a side effect. records[i] can be null (charge code has no schedule entry) and that charge is silently left unadjusted, no error.
class · /home/cary/src/mdc/MdClarity/MDClarity/MDClarityCore/Backend/CustomerDataModel.cs:907
dispatch · /home/cary/src/mdc/MdClarity/MDClarity/MDClarityCore/Backend/CalculationEngine.cs:750
CONFIRMED