Complete and submit a full travel expense report through the guided wizard
The Expense Registration Screen orchestrates the full wizard flow using the Expense Registration BLoC for state management. The wizard guides the user through: (1) expense type selection, (2) type-specific amount or distance entry, (3) optional additional expense items within the same report, and (4) a summary confirmation step before submission. On submission, the Expense Validation Service performs a final client-side validation pass followed by server-side confirmation. On success, the Expense Repository writes to the `travel_expense_reports` and `expense_items` Supabase tables with RLS policies scoped to the submitting user. A confirmation screen with the report reference is displayed. On failure, descriptive error messages guide the user to correct any issues.
User Story
Acceptance Criteria
- Given the user opens the expense registration wizard and completes all required steps, when they tap 'Submit', then client-side validation runs first and any errors are shown inline before a server request is made
- Given client-side validation passes, when the submission request is sent, then server-side validation runs and the response either confirms success or returns specific field-level errors
- Given submission succeeds, when the confirmation screen is shown, then it displays the report reference number, total reimbursement amount, and a timestamp
- Given the user navigates back or closes the app mid-wizard, when they return to the expense registration flow, then the BLoC restores the in-progress wizard state so they can continue from where they left off
- Given the user reaches the summary step, when they review the wizard output, then all entered expense items are listed with their types, amounts, and receipt indicators before final submission
- Given the RLS policy on the Supabase table is active, when the submission is saved, then only the submitting user's own expense reports are accessible under their account
Business Value
The complete wizard submission flow is the core deliverable of this feature. A fully guided, validated submission flow ensures that expense data written to Supabase is clean, complete, and ready for automated processing through the reimbursement approval workflow and accounting system integration. Reducing incomplete or invalid submissions directly lowers coordinator workload and speeds up reimbursement turnaround for volunteers, which is a key driver of volunteer satisfaction and retention.