S15
Receipts
Receipt processing with OCR upload, AI-powered text extraction, and order creation from receipts.
Route/receipts
Entry pathMain nav > Receipts
Detailed source
10-UC-Receipts.md
UC-REC: Receipts Page Use Cases
Page: Receipts.razor
Route: /receipts
Menu Position: 10 (Receipts)
Overview
Receipt processing with OCR upload, AI-powered text extraction, and order creation from receipts.
Section: Page Header & Access Control
| ID |
Section |
Action |
Expected Outcome |
Controls Affected |
| UC-REC-001 |
Header |
Load page |
"Receipt Processing" title with receipt icon |
Page title |
| UC-REC-002 |
Header |
No business selected |
Info alert: "Please select a business to view and upload receipts" |
alert alert-info |
| UC-REC-003 |
Header |
Click "Upload Receipt" |
Opens upload modal |
upload-receipt-btn, uploadModal |
| UC-REC-004 |
Auth |
Access control |
Requires CustomerAdmin policy (higher than Operator) |
Authorization |
Section: Processing Status Alerts
| ID |
Section |
Action |
Expected Outcome |
Controls Affected |
| UC-REC-005 |
Status |
Processing active |
Blue info alert with spinner, "Processing Receipt..." message |
alert alert-info |
| UC-REC-006 |
Status |
Error occurred |
Red danger alert with message, dismissible |
alert alert-danger |
| UC-REC-007 |
Status |
Success |
Green success alert with message, dismissible |
alert alert-success |
| UC-REC-008 |
Status |
Dismiss error |
Clears ErrorMessage on button click |
Close button |
| UC-REC-009 |
Status |
Dismiss success |
Clears SuccessMessage on button click |
Close button |
Section: Recent Receipts Summary
| ID |
Section |
Action |
Expected Outcome |
Controls Affected |
| UC-REC-010 |
Summary |
View header |
"Recent Receipts" with Refresh button |
Card header |
| UC-REC-011 |
Summary |
Click Refresh |
Calls LoadReceiptHistory |
Refresh button |
| UC-REC-012 |
Summary |
Total count |
Shows "X receipts" total |
Summary row |
| UC-REC-013 |
Summary |
Processed count |
Count where ProcessingStatus = "Completed" |
Summary row |
| UC-REC-014 |
Summary |
Failed count |
Count where ProcessingStatus = "Failed" |
Summary row |
| UC-REC-015 |
Summary |
Processing count |
Count where status not Completed/Failed |
Summary row |
Section: Receipts Table
| ID |
Section |
Action |
Expected Outcome |
Controls Affected |
| UC-REC-016 |
Table |
View headers |
6 columns: Date, File Name, Status, Vendor, Amount, Actions |
thead |
| UC-REC-017 |
Table |
Date format |
DD/MM/YYYY HH:mm format |
receipt-date |
| UC-REC-018 |
Table |
File name cell |
Bold name, file size in KB below |
receipt-filename |
| UC-REC-019 |
Table |
Status Completed |
Green "Processed" badge |
receipt-status |
| UC-REC-020 |
Table |
Status Failed |
Red "Failed" badge |
receipt-status |
| UC-REC-021 |
Table |
Status other |
Yellow "Processing" badge |
receipt-status |
| UC-REC-022 |
Table |
Vendor extracted |
Shows vendor from ExtractedText |
receipt-vendor |
| UC-REC-023 |
Table |
No vendor |
Shows "-" muted |
receipt-vendor |
| UC-REC-024 |
Table |
Amount extracted |
Shows ₹X from ExtractedText |
receipt-amount |
| UC-REC-025 |
Table |
No amount |
Shows "-" muted |
receipt-amount |
| UC-REC-026 |
Table |
Click View |
Calls ViewReceipt(imageId) |
View button |
| UC-REC-027 |
Table |
Click Create Order |
Calls CreateSalesOrder(imageId), only if Completed and no SalesOrderId |
Create Order button |
| UC-REC-028 |
Table |
Click Delete |
Calls DeleteReceipt(imageId) |
Delete button |
| UC-REC-029 |
Table |
Max display |
Shows max 15 receipts (Take(15)) |
Pagination |
| UC-REC-030 |
Table |
Empty state |
Receipt icon with "No receipts uploaded yet" message |
Empty message |
Section: Upload Modal
| ID |
Section |
Action |
Expected Outcome |
Controls Affected |
| UC-REC-031 |
Modal |
View modal |
Title "Upload Receipt", file input, format info |
receipt-upload-modal |
| UC-REC-032 |
Modal |
File formats |
Accepts image/* (JPG, PNG, WebP), max 20MB |
receipt-file-input accept |
| UC-REC-033 |
Modal |
Select file |
OnFileSelected called, file preview shown |
InputFile |
| UC-REC-034 |
Modal |
File selected |
Blue info alert shows name, size, content type |
File info alert |
| UC-REC-035 |
Modal |
No file selected |
Upload button disabled |
Submit button disabled |
| UC-REC-036 |
Modal |
Processing active |
Upload button disabled with spinner |
Submit button |
| UC-REC-037 |
Modal |
Click Cancel |
Modal closes |
receipt-modal-cancel-btn |
| UC-REC-038 |
Modal |
Click Upload |
Calls HandleFileUpload, processes with AI |
receipt-upload-submit |
| UC-REC-039 |
Modal |
Click X |
Modal closes |
receipt-modal-close |
Section: Data Validation Requirements
| ID |
Validation |
Requirement |
| UC-REC-040 |
File Size |
Max 20MB per file |
| UC-REC-041 |
File Types |
image/* (JPG, PNG, WebP) |
| UC-REC-042 |
AI Processing |
ExtractedText populated by AI OCR |
| UC-REC-043 |
Order Link |
SalesOrderId links processed receipt to created order |
| UC-REC-044 |
Date Format |
DD/MM/YYYY HH:mm format |
| UC-REC-045 |
Authorization |
Requires CustomerAdmin policy |
Total Use Cases: 45