5511709a863143e193e322b0ccbf442cc9e06f56
Implemented automatic mapping of parsed receipts to matching transactions, with both automatic (after parsing) and manual (via button) triggers. New Service - ReceiptAutoMapper: - AutoMapReceiptAsync: Maps a single receipt to a transaction - AutoMapUnmappedReceiptsAsync: Bulk maps all unmapped receipts - FindMatchingTransactionsAsync: Smart matching algorithm using: - Receipt date (+/- 3 days for processing delays) - Merchant name (matches against transaction merchant or name) - Total amount (within $0.10 tolerance) - Excludes transactions that already have receipts - Returns single match, multiple matches, or no match Matching Strategy: - Single match: Automatically maps - Multiple matches: Reports count for manual review - No match: Reports for manual intervention - Not parsed: Skips (requires merchant, date, or total) Integration Points: - OpenAIReceiptParser: Triggers auto-mapping after successful parse (only for unmapped receipts, errors ignored to not fail parse) - Receipts page: Added "Auto-Map Unmapped Receipts" button - Only shows when unmapped parsed receipts exist - Displays detailed results (mapped count, no match, multi-match) This enables a streamlined workflow: 1. Upload receipt → 2. Parse receipt → 3. Auto-map to transaction Users can also trigger bulk auto-mapping for all unmapped receipts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Description
No description provided
Languages
C#
66.6%
HTML
31.2%
JavaScript
1.9%
CSS
0.2%
Dockerfile
0.1%