Added functionality to upload and manage receipts without initially
associating them to a transaction, with the ability to map them later.
Changes:
- Modified Receipt model to make TransactionId nullable
- Updated ReceiptManager service with new methods:
- UploadUnmappedReceiptAsync: Upload receipts without a transaction
- MapReceiptToTransactionAsync: Map an existing receipt to a transaction
- Created Receipts page (Receipts.cshtml) with:
- Upload form for new receipts
- List view of all receipts (mapped and unmapped)
- Status badges (Mapped/Unmapped)
- Map to Transaction modal dialog
- Delete receipt functionality
- Added "Receipts" link to navigation menu
- Fixed Transactions page receipt count query for nullable TransactionId
- Created migration: MakeReceiptTransactionIdNullable
This enables workflows where receipts are uploaded first and matched
to transactions later, useful for batch receipt processing.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>