Prevent Duplicate Export Submissions for the Same Period
The double-export guard checks the export-run-repository before any export is executed to determine whether any claims in the selected period have already been exported in a completed run. If overlap is detected, the coordinator sees a warning identifying the conflicting run with its timestamp and is required to acknowledge the risk before the system allows a re-export. Partial period overlaps (e.g., exporting Jan 1–31 after Jan 1–15 was already exported) are detected and broken down by overlapping date ranges.
User Story
Acceptance Criteria
- Given a period has been successfully exported, when a coordinator selects the same date range and triggers export, then the double-export guard intercepts before any claims are queried and shows a warning with the original export run details
- Given the coordinator sees the duplicate warning, when they tap Cancel, then no export is executed and the screen returns to the date range picker
- Given the coordinator sees the duplicate warning, when they tap Override and Confirm, then the export proceeds and the new run is logged as a deliberate re-export with the override noted
- Given a coordinator selects a partial overlap (e.g., exporting Jan 15–Feb 15 when Jan 1–31 already exported), when the guard runs, then it identifies the Jan 15–31 overlap specifically and warns about those dates
- Given an export run failed, when a coordinator re-exports the same period, then the double-export guard does not block the retry since no successful submission was recorded
Business Value
Duplicate accounting entries are a serious compliance and financial integrity issue — correcting them requires manual ledger adjustments, finance team time, and can affect grant reporting accuracy. The double-export guard is a non-negotiable safeguard that protects organizational finances and ensures the accounting export feature can be trusted without requiring constant manual verification of what has already been submitted.
Components
- Double-Export Guard service
- Export Run Repository data
- Accounting Export Screen ui
- Export Confirmation Dialog ui
- Accounting Exporter Service service