PHASE 2: Implements balance assertions for reconciliation

Adds balance assertion functionality to enable admins to verify accounting accuracy.

This includes:
- A new `balance_assertions` table in the database
- CRUD operations for balance assertions (create, get, list, check, delete)
- API endpoints for managing balance assertions (admin only)
- UI elements for creating, viewing, and re-checking assertions

Also, reorders the implementation roadmap in the documentation to reflect better the dependencies between phases.
This commit is contained in:
padreug 2025-10-23 01:36:09 +02:00
parent 1a9c91d042
commit 0257b7807c
7 changed files with 890 additions and 17 deletions

View file

@ -866,29 +866,29 @@ async def validate_journal_entry(entry: CreateJournalEntry) -> list[CastleError]
## Implementation Roadmap
### Phase 1: Foundation (High Priority)
### Phase 1: Foundation (High Priority) ✅ COMPLETE
1. ✅ Switch from `float` to `Decimal` for fiat amounts
2. ✅ Add `meta` field to journal entries for audit trail
3. ✅ Add `flag` field for transaction status
4. ✅ Implement hierarchical account naming
### Phase 2: Core Logic (Medium Priority)
5. Create `core/` module with pure accounting logic
6. Implement `CastleInventory` for position tracking
7. Move balance calculation to `core/balance.py`
8. Add comprehensive validation in `core/validation.py`
### Phase 2: Reconciliation (High Priority) - No dependencies
5. Implement balance assertions
6. Add reconciliation API endpoints
7. Build reconciliation UI
8. Add automated daily balance checks
### Phase 3: Validation (Medium Priority)
9. Create plugin system architecture
10. Implement `check_balanced` plugin
11. Implement `check_receivables` plugin
12. Add plugin configuration UI
### Phase 3: Core Logic Refactoring (Medium Priority) - Improves code quality
9. Create `core/` module with pure accounting logic
10. Implement `CastleInventory` for position tracking
11. Move balance calculation to `core/balance.py`
12. Add comprehensive validation in `core/validation.py`
### Phase 4: Reconciliation (High Priority)
13. Implement balance assertions
14. Add reconciliation API endpoints
15. Build reconciliation UI
16. Add automated daily balance checks
### Phase 4: Validation Plugins (Medium Priority) - Works better after Phase 3
13. Create plugin system architecture
14. Implement `check_balanced` plugin
15. Implement `check_receivables` plugin
16. Add plugin configuration UI
### Phase 5: Advanced Features (Low Priority)
17. Add tags and links to entries