diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md index 0e2ce81..4f07013 100644 --- a/PROJECT_CONTEXT.md +++ b/PROJECT_CONTEXT.md @@ -524,8 +524,50 @@ These tasks aim to further refine the application's functionality and user exper - **Verified End-to-End Flow:** - Triggered the `_sendToFirefly` function in `ReceiptScreen`. - **Step 1: Transaction Submission:** Confirmed that the transaction is successfully created in Firefly III. - - **Step 2: PDF Generation:** Confirmed that the PDF receipt is generated locally on the device. + - **Step 2: PDF Generation:** Confirmed that the PDF receipt is generated locally on the device. - **Step 3: PDF Upload:** Confirmed that the `uploadAttachment` service method is called with the correct transaction ID and PDF data. - **Step 4: Verification in Firefly III:** Manually checked the Firefly III instance and verified that the newly created transaction now has the correct PDF receipt attached to it. - **Current Status:** The core feature of submitting a transaction and attaching the corresponding PDF receipt is now fully implemented and working correctly. + +## [2025-09-18 11:39] - Update Item Quantity to Support Double Values + +- **Feature Enhancement:** Modified the `ReceiptItem` model to support double values for quantities instead of only integers. +- **Changes Made:** + - Updated `quantity` property in `ReceiptItem` model from `int` to `double` + - Modified the quantity input validation in `AddItemScreen` to accept decimal values using `double.tryParse()` instead of `int.tryParse()` + - Updated the quantity display and calculation logic to handle decimal quantities properly +- **Impact:** This allows for more flexible item management, supporting scenarios like 0.5 kg of vegetables, 1.25 liters of liquid, etc. +- **Co-authored-by:** Qwen-Coder + +## [2025-11-08 12:15] - Implement Receipt Caching and Offline Submission + +- **New Feature:** Added offline capability to cache receipts locally and submit them when the FireFly III server becomes available. +- **Key Changes:** + - Enhanced `LocalReceiptService` to store receipts with submission status tracking + - Added `fireflyTransactionId` and `fireflyTransactionUrl` properties to `LocalReceipt` model to store transaction references + - Implemented automatic retry mechanism for failed submissions when network connectivity is restored + - Added server availability checking before attempting to submit transactions + - Modified `ReceiptService` to handle both online and offline submission scenarios +- **Benefits:** Users can continue working even when the FireFly III server is temporarily unavailable, with transactions being queued and submitted automatically when connectivity is restored. + +## [2025-11-08 13:38] - Add Swipe-to-Delete and WebView Transaction Features + +- **Enhanced Local Receipts Screen:** + - **Swipe-to-Delete:** Implemented `Dismissible` widget in `LocalReceiptsScreen` to allow users to swipe right-to-left to delete receipts + - **Visual Feedback:** Added red background with delete icon during swipe action for clear user feedback + - **Confirmation:** Integrated with existing delete confirmation logic for safety + +- **FireFly III Transaction WebView Integration:** + - **New Model Property:** Added `fireflyTransactionUrl` to `LocalReceipt` model to store the URL of the transaction in FireFly III + - **WebView Screen:** Created `WebViewScreen` widget to display FireFly III transactions within the app + - **Navigation:** Added tap functionality on receipt items in `LocalReceiptsScreen` to open the corresponding FireFly III transaction in WebView + - **URL Construction:** Implemented proper URL generation for FireFly III transaction viewing: `'$baseUrl/transactions/show/$transactionId'` + +- **Improved Currency Formatting:** + - Enhanced currency formatting in `LocalReceiptsScreen` to properly handle Rupiah formatting without removing decimal places when necessary + - Maintained `.00` suffix only when required for proper currency display + +- **Enhanced ReceiptService:** + - Updated `submitReceiptToFirefly` method to save the transaction ID and URL back to the local receipt after successful submission + - Added proper error handling and transaction reference updates during the submission process