Select Expense Type from Predefined Options
When registering an expense claim, the peer mentor is presented with a clearly labelled list of predefined expense types (e.g., mileage, toll, parking, public transport). Each option is rendered as a large, tappable card with an icon, label, and brief description. The picker enforces organisational configuration so only types enabled for the current organisation are shown. The selected type is visually highlighted and the form adapts to capture the relevant details for that type.
User Story
Acceptance Criteria
- Given the peer mentor opens the expense registration flow, when the expense type picker renders, then only expense types enabled in the organisation's configuration are displayed
- Given the expense type picker is visible, when the peer mentor taps an expense type card, then that card is visually highlighted and all other cards are deselected
- Given an expense type is selected, when the form continues, then the subsequent fields shown are specific to that expense type (e.g., distance fields for mileage, amount field for parking)
- Given the picker is rendered, when a screen reader is active, then each expense type card has a descriptive accessibility label including the type name and whether it is currently selected
- Given the organisation has only one expense type enabled, when the picker loads, then that type is pre-selected automatically and the picker step may be skipped
Business Value
Predefined expense types eliminate free-text entry errors that cause reimbursement delays and accounting mismatches. For HLF, where a peer mentor may file hundreds of claims annually, consistent categorisation is essential for automated approval, Bufdir reporting, and Xledger/Dynamics export. Removing ambiguity at the point of entry reduces coordinator review time and prevents the most common source of invalid claims.
Components
- Expense Type Picker Widget ui
- Expense Selection BLoC service
- Expense Type Repository data
- Expense Type Configuration data
- Expense Type Accessibility Service service