Bug 37108 - Cash register statistics wizard is wrongly sorting payment by home library of the manager
Summary: Cash register statistics wizard is wrongly sorting payment by home library of...
Status: Pushed to main
Alias: None
Product: Koha
Classification: Unclassified
Component: Reports (show other bugs)
Version: Main
Hardware: All All
: P5 - low minor (vote)
Assignee: Alexandre Noel
QA Contact: Testopia
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-06-17 23:47 UTC by Marie-Luce Laflamme
Modified: 2024-07-12 08:22 UTC (History)
2 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:
24.11.00


Attachments
Bug 37108 - cash register statistics wizard is wrongly sorting payment by manager_id branchcode (2.54 KB, patch)
2024-06-28 20:20 UTC, Alexandre Noel
Details | Diff | Splinter Review
Bug 37108: cash register statistics wizard is wrongly sorting payment by manager_id branchcode (2.59 KB, patch)
2024-07-04 21:24 UTC, Chris Cormack
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Marie-Luce Laflamme 2024-06-17 23:47:14 UTC
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
Comment 1 Marie-Luce Laflamme 2024-06-17 23:47:32 UTC
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';
Comment 2 Marie-Luce Laflamme 2024-06-17 23:50:22 UTC
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"
Comment 3 Alexandre Noel 2024-06-28 20:20:39 UTC
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
Comment 4 Chris Cormack 2024-07-04 21:24:50 UTC
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>
Comment 5 Katrin Fischer 2024-07-12 07:54:00 UTC
Picking this out of the QA queue - thanks for the patch Noel!
Comment 6 Katrin Fischer 2024-07-12 08:22:11 UTC
Pushed for 24.11!

Well done everyone, thank you!