Register fixed-amount expense for toll, parking, or public transit
After selecting a fixed-amount expense type (toll, parking, or public transit), the wizard renders the Expense Amount Input Widget. The user enters the expense amount; the widget applies locale-aware currency formatting and validates that the value is a positive number. If the amount exceeds the organisation's configured receipt requirement threshold (e.g., NOK 100 for HLF), the widget prompts the user to attach a receipt by navigating to the receipt upload flow. The Expense Rules Riverpod Provider supplies the threshold value. The BLoC records the expense type, amount, and optional receipt reference for inclusion in the final submission payload.
User Story
Acceptance Criteria
- Given the user has selected 'Toll fee', 'Parking', or 'Public transit' as the expense type, when the wizard advances, then the Expense Amount Input Widget is displayed with a currency-formatted number field
- Given the user enters a non-numeric value or zero, when they attempt to advance, then a validation error is shown and progression is blocked
- Given the organisation has a receipt requirement threshold of NOK 100 and the user enters an amount exceeding this, when the field loses focus, then a prompt to attach a receipt is displayed with a link to the receipt upload flow
- Given the user enters an amount below the receipt threshold, when they proceed without attaching a receipt, then no receipt prompt is shown and the wizard advances normally
- Given the user has linked a receipt, when the expense item is displayed in the wizard summary step, then the receipt thumbnail is shown alongside the amount
Business Value
Toll, parking, and transit costs are regular out-of-pocket expenses for peer mentors attending visits and events. A structured amount input with locale-aware formatting and policy-driven receipt prompting ensures that expense records meet the organisation's accounting requirements without burdening users with policy knowledge. This reduces rejection rates for submitted claims and ensures accounting system compatibility.
Components
- Expense Registration Screen ui
- Expense Amount Input Widget ui
- Expense Registration BLoC service
- Expense Rules Riverpod Provider service
- Expense Validation Service service