The Cash Register Statistics wizard in Koha is currently sorting payments based on the "manager_id" branchcode rather than the "accountlines.branchcode". This means that if staff switch to a different branch while working, Koha will unfortunately record all transactions under the branchcode associated with the staff account, not the branch they are currently logged into. I'm wondering if the SQL query behind the Cash Register Statistics wizard is using the recently added "accountlines.branchcode". See the test plan in the following comment and
I've left this query to highlight the behaviour after running your tests. SELECT debit.accountlines_id, debit.borrowernumber, debit.itemnumber, debit.date AS "Invoice date", debit.amount, debit.description, debit.debit_type_code, credit.amountoutstanding, debit.timestamp, credit.manager_id , borrowers.branchcode AS "manager branchcode", credit.register_id, credit.branchcode AS "accountlines branchcode" FROM account_offsets JOIN accountlines AS debit ON (debit.accountlines_id = account_offsets.debit_id) JOIN accountlines AS credit ON (credit.accountlines_id = account_offsets.credit_id) JOIN account_debit_types ON (debit.debit_type_code = account_debit_types.code) LEFT JOIN borrowers ON (credit.manager_id = borrowers.borrowernumber) WHERE type IN ("APPLY") AND account_offsets.debit_id IS NOT NULL AND credit.credit_type_code ="PAYMENT" AND debit.debit_type_code NOT IN ('VOID') AND DATE(created_on)='yyyy-mm-dd';
Setup - before test Staff accounts - have a superlibrarian account - create 2 limited access staff accounts, one by branches: e.g. - staff 1 - attached to branch A - staff 2 - attached to branch B Both restricted staff accounts should have the following permissions: - (circulate) , - (borrowers), - in the patron fines: (manual_invoice), and (remaining_permissions) - ***ability to switch login library (loggedinlibrary) Debit type - Add few debit types in your Koha (administration > debit types) to ease transactions search. e.g: "printing cost", "new card", "lost item" ***Ensure that each debit type is configured to "can be manually invoiced" Test plan 1. Login with "staff 1" in the intranet --> Koha should connect to branch A 2. Find a "branch A" patron 3. Add a manual invoice (e.g printing -- 2.50$ ) 4. Pay this invoice 5. Log out of the intranet 6. Login with "staff2" --> Koha should connect to branch B 7. Find a "branch B" patron 8. Add a manual invoice with a unique debit type and amount (e.g. lost item - 12.80$ ) 9. Pay this invoice 10. Stay connect with "staff2" account, and switch to "branch A" at the top right corner of the screen 11. Find another "branch A" patron 12. Add a manual invoice with a unique debit type and amount (e.g. new card - 5.00$ ) 13. Pay this invoice 14. Log out 15. Login with a "superlibrarian" account 16. Run the "Cash register" statistics wizards for "branch A" - Go to (Reports > Statistics wizards > Cash Registers ) - dates: select the current date - transactions types: select "all payments to the library" in the - transaction library: select "branch A" 18. Submit the search 19. Check transactions for "branch A" ---> Unfortunately, Koha is not listing the payment of step 13 in the "branch A report", even if the "staff 2" was logged to "branch A" while processing the payment. 20. Run the "Cash register" statistics wizard for "branch B" - Redo steps 16 to 19, but select "branch B" 21. Check transactions for "branch B": --> Koha is displaying the step 13 payment by mistake, this payment should be in "branch A report"
Created attachment 168297 [details] [review] Bug 37108 - cash register statistics wizard is wrongly sorting payment by manager_id branchcode With this patch, it displays now the accountlines branchcode and not the manager's branchcode. (cr: Marie-Luce test plan) Setup - before test Staff accounts - have a superlibrarian account - create 2 limited access staff accounts, one by branches: e.g. - staff 1 - attached to branch A - staff 2 - attached to branch B Both restricted staff accounts should have the following permissions: - (circulate) , - (borrowers), - in the patron fines: (manual_invoice), and (remaining_permissions) - ***ability to switch login library (loggedinlibrary) Debit type - Add few debit types in your Koha (administration > debit types) to ease transactions search. e.g: "printing cost", "new card", "lost item" ***Ensure that each debit type is configured to "can be manually invoiced" Test plan 1. Login with "staff 1" in the intranet --> Koha should connect to branch A 2. Find a "branch A" patron 3. Add a manual invoice (e.g printing -- 2.50$ ) 4. Pay this invoice 5. Log out of the intranet 6. Login with "staff2" --> Koha should connect to branch B 7. Find a "branch B" patron 8. Add a manual invoice with a unique debit type and amount (e.g. lost item - 12.80$ ) 9. Pay this invoice 10. Stay connect with "staff2" account, and switch to "branch A" at the top right corner of the screen 11. Find another "branch A" patron 12. Add a manual invoice with a unique debit type and amount (e.g. new card - 5.00$ ) 13. Pay this invoice 14. Log out 15. Login with a "superlibrarian" account 16. Run the "Cash register" statistics wizards for "branch A" - Go to (Reports > Statistics wizards > Cash Registers ) - dates: select the current date
Created attachment 168516 [details] [review] Bug 37108: cash register statistics wizard is wrongly sorting payment by manager_id branchcode With this patch, it displays now the accountlines branchcode and not the manager's branchcode. (cr: Marie-Luce test plan) Setup - before test Staff accounts - have a superlibrarian account - create 2 limited access staff accounts, one by branches: e.g. - staff 1 - attached to branch A - staff 2 - attached to branch B Both restricted staff accounts should have the following permissions: - (circulate) , - (borrowers), - in the patron fines: (manual_invoice), and (remaining_permissions) - ***ability to switch login library (loggedinlibrary) Debit type - Add few debit types in your Koha (administration > debit types) to ease transactions search. e.g: "printing cost", "new card", "lost item" ***Ensure that each debit type is configured to "can be manually invoiced" Test plan 1. Login with "staff 1" in the intranet --> Koha should connect to branch A 2. Find a "branch A" patron 3. Add a manual invoice (e.g printing -- 2.50$ ) 4. Pay this invoice 5. Log out of the intranet 6. Login with "staff2" --> Koha should connect to branch B 7. Find a "branch B" patron 8. Add a manual invoice with a unique debit type and amount (e.g. lost item - 12.80$ ) 9. Pay this invoice 10. Stay connect with "staff2" account, and switch to "branch A" at the top right corner of the screen 11. Find another "branch A" patron 12. Add a manual invoice with a unique debit type and amount (e.g. new card - 5.00$ ) 13. Pay this invoice 14. Log out 15. Login with a "superlibrarian" account 16. Run the "Cash register" statistics wizards for "branch A" - Go to (Reports > Statistics wizards > Cash Registers ) - dates: select the current date Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Picking this out of the QA queue - thanks for the patch Noel!
Pushed for 24.11! Well done everyone, thank you!