https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=40445
--- Comment #131 from Martin Renvoize (ashimema) <[email protected]> --- Created attachment 193182 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=193182&action=edit Bug 40445: Implement optional two-phase cashup workflow This patch implements an optional two-phase cashup workflow for point of sale operations, along with improved error handling and validation. Two-Phase Cashup Workflow: - Staff can initiate cashup (CASHUP_START) and complete later - Prevents new transactions on registers with cashups in progress - Tracks cashup sessions with start/end timestamps - Supports both quick cashup (immediate) and staged cashup workflows - Updates batch cashup workflow operations across multiple registers Error Handling & Validation: - Centralized exception handling for cashup operations - Clear validation messages for missing parameters - Prevents cashup when no cash transactions exist - Improved handling of zero/negative amounts - Informative error messages for user guidance Negative Amount Support: - Supports negative cashup amounts for cashup deficits - Automatic detection when actual cash is less than expected amount - Creates appropriate CASHUP_DEFICIT records - UI handles both positive and negative reconciliation amounts - Updated calculations and display logic throughout Modal Refactoring: - Eliminates code duplication between register.tt and registers.tt - Centralized cashup modal functionality in cashup_modals.js - Shared confirm_cashup.inc and trigger_cashup.inc templates - Consistent user experience across all cashup workflows - Improved maintainability and code organization Backend changes (Koha::Cash::Register): - start_cashup(): Creates CASHUP_START action to begin session - cashup_in_progress(): Detects active cashup sessions - add_cashup(): Enhanced with two-phase completion support - outstanding_accountlines(): Respects cashup session boundaries Frontend changes: - Interactive modals for starting and completing cashups - Real-time calculation displays - Support for reconciliation with actual amounts - Batch operations UI for multiple registers - Responsive error messaging and validation feedback Test plan: 1. Apply patches and restart services 2. Run prove t/db_dependent/Koha/Cash/Register.t 3. Run prove t/db_dependent/Koha/Cash/Register/Cashup.t 4. Test single register workflows: - Start cashup, add transactions, verify blocked - Complete cashup with reconciliation amounts - Test with positive, negative, and zero amounts 5. Test multi-register workflows: - Select multiple registers on registers page - Perform batch cashup operations - Verify each register processes correctly 6. Test error conditions: - Attempt cashup with no transactions - Attempt cashup with invalid amounts - Verify clear error messages displayed Sponsored-by: OpenFifth <https://openfifth.co.uk/> Signed-off-by: Jackie Usher <[email protected]> -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list [email protected] https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
