Bug 36506

Summary: Processing Fee should be configurable by branch
Product: Koha Reporter: Lisette Scheer <lisette>
Component: Fines and feesAssignee: Nick Clemens (kidclamp) <nick>
Status: Signed Off --- QA Contact: Testopia <testopia>
Severity: enhancement    
Priority: P5 - low CC: andrew
Version: Main   
Hardware: All   
OS: All   
See Also: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=25990
GIT URL: Initiative type: ---
Sponsorship status: --- Crowdfunding goal: 0
Patch complexity: Small patch Documentation contact:
Documentation submission: Text to go in the release notes:
Version(s) released in:
Circulation function:
Bug Depends on: 39802    
Bug Blocks: 35612    
Attachments: Bug 36506: Add lost_item_processing_fee rule and CRUD
Bug 36506: Database update
Bug 36506: Remove API mapping
Bug 36506: Remove process fee from itemtype administration
Bug 36506: DO NOT PUSH - SCHEMA UPDATES
Bug 36506: Use new rules in C4::Accounts
Bug 36506: Adjust existing tests and test builder
Bug 36506: Unit tests
Bug 36506: Add lost_item_processing_fee rule and CRUD
Bug 36506: Database update
Bug 36506: Remove API mapping
Bug 36506: Remove process fee from itemtype administration
Bug 36506: DO NOT PUSH - SCHEMA UPDATES
Bug 36506: Use new rules in C4::Accounts
Bug 36506: Adjust existing tests and test builder
Bug 36506: Unit tests

Description Lisette Scheer 2024-04-03 18:06:30 UTC
In a consortia environment, some branches might want a process fee and others might not. This could be worked around with multiple item types, but that can cause other issues.
Comment 1 Andrew Fuerste-Henry 2025-05-01 16:01:58 UTC
This enhancement will need to include a system preference to determine which branch's processing fees should be used. Further, that system preference should cover branch selection for lost item behavior generally. I've filed bug 39802.
Comment 2 Nick Clemens (kidclamp) 2025-10-03 16:28:42 UTC
Created attachment 187411 [details] [review]
Bug 36506: Add lost_item_processing_fee rule and CRUD

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>
Comment 3 Nick Clemens (kidclamp) 2025-10-03 16:28:44 UTC
Created attachment 187412 [details] [review]
Bug 36506: Database update

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>
Comment 4 Nick Clemens (kidclamp) 2025-10-03 16:28:47 UTC
Created attachment 187413 [details] [review]
Bug 36506: Remove API mapping

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>
Comment 5 Nick Clemens (kidclamp) 2025-10-03 16:28:49 UTC
Created attachment 187414 [details] [review]
Bug 36506: Remove process fee from itemtype administration

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>
Comment 6 Nick Clemens (kidclamp) 2025-10-03 16:28:52 UTC
Created attachment 187415 [details] [review]
Bug 36506: DO NOT PUSH - SCHEMA UPDATES

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>
Comment 7 Nick Clemens (kidclamp) 2025-10-03 16:28:54 UTC
Created attachment 187416 [details] [review]
Bug 36506: Use new rules in C4::Accounts

This seems to be the only place processing fee is used, in chargelostitem

This patch uses get_effective_rule_value, falling back to 0 if no rule.

We also respect the new system preference, LostChargesControl, introduced in bug 39802

To test:
 1 - Apply patch, updatedatabase, restart all
 2 - Set a default/all branches  processing rule for Books itemtype to 5
 3 - Set a rule for branch 1 to 1
 4 - Set a rule for branch 2 to 2
 5 - Set a rule for branch 3 to 3
 6 - Set a rule for branch 4 to 4
 7 - Set LostChargesControl to 'library the patron is from'
 8 - Check out a Books item from a different branch to a patron from branch 1
 9 - Mark item lost, confirm processing fee is charged as 1
10 - Check out out a Books item from a different branch to a patron from branch 5
11 - Mark item lost, confirm processing fee is 5
12 - Set LostChargesControl to 'library you are logged in at'
13 - Check out a Books item from a different branch to a patron from branch 1
14 - Ensure you are logged in at branch 2
15 - Mark item lost, confirm processing fee is 2
16 - Set LostChargesControl to 'the library the item is from'
17 - Set HomeOrHoldingBranch to 'homebranch'
18 - Still at branch 2, check out a books item from branch 3 to a patron of branch 1, this ensure holdingbranch is not 3
19 - Mark item lost, confirm processing fee is 3
20 - Set HomeOrHoldingBranch to 'holdingbranch'
21 - Ensure you are logged in at branch 4
22 - Checkout an item from branch 1 to a patron from a different branch
23 - Mark item lost, confirm processing fee is 4
24 - Test other combos as you see fit
25 - Sign off!

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>
Comment 8 Nick Clemens (kidclamp) 2025-10-03 16:28:57 UTC
Created attachment 187417 [details] [review]
Bug 36506: Adjust existing tests and test builder

All the previously written tests should continue to pass.

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>
Comment 9 Nick Clemens (kidclamp) 2025-10-03 16:28:59 UTC
Created attachment 187418 [details] [review]
Bug 36506: Unit tests

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>
Comment 10 Andrew Fuerste-Henry 2025-10-08 13:51:19 UTC
Created attachment 187573 [details] [review]
Bug 36506: Add lost_item_processing_fee rule and CRUD

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>

Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Comment 11 Andrew Fuerste-Henry 2025-10-08 13:51:22 UTC
Created attachment 187574 [details] [review]
Bug 36506: Database update

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>

Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Comment 12 Andrew Fuerste-Henry 2025-10-08 13:51:25 UTC
Created attachment 187575 [details] [review]
Bug 36506: Remove API mapping

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>

Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Comment 13 Andrew Fuerste-Henry 2025-10-08 13:51:28 UTC
Created attachment 187576 [details] [review]
Bug 36506: Remove process fee from itemtype administration

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>

Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Comment 14 Andrew Fuerste-Henry 2025-10-08 13:51:31 UTC
Created attachment 187577 [details] [review]
Bug 36506: DO NOT PUSH - SCHEMA UPDATES

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>

Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Comment 15 Andrew Fuerste-Henry 2025-10-08 13:51:34 UTC
Created attachment 187578 [details] [review]
Bug 36506: Use new rules in C4::Accounts

This seems to be the only place processing fee is used, in chargelostitem

This patch uses get_effective_rule_value, falling back to 0 if no rule.

We also respect the new system preference, LostChargesControl, introduced in bug 39802

To test:
 1 - Apply patch, updatedatabase, restart all
 2 - Set a default/all branches  processing rule for Books itemtype to 5
 3 - Set a rule for branch 1 to 1
 4 - Set a rule for branch 2 to 2
 5 - Set a rule for branch 3 to 3
 6 - Set a rule for branch 4 to 4
 7 - Set LostChargesControl to 'library the patron is from'
 8 - Check out a Books item from a different branch to a patron from branch 1
 9 - Mark item lost, confirm processing fee is charged as 1
10 - Check out out a Books item from a different branch to a patron from branch 5
11 - Mark item lost, confirm processing fee is 5
12 - Set LostChargesControl to 'library you are logged in at'
13 - Check out a Books item from a different branch to a patron from branch 1
14 - Ensure you are logged in at branch 2
15 - Mark item lost, confirm processing fee is 2
16 - Set LostChargesControl to 'the library the item is from'
17 - Set HomeOrHoldingBranch to 'homebranch'
18 - Still at branch 2, check out a books item from branch 3 to a patron of branch 1, this ensure holdingbranch is not 3
19 - Mark item lost, confirm processing fee is 3
20 - Set HomeOrHoldingBranch to 'holdingbranch'
21 - Ensure you are logged in at branch 4
22 - Checkout an item from branch 1 to a patron from a different branch
23 - Mark item lost, confirm processing fee is 4
24 - Test other combos as you see fit
25 - Sign off!

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>

Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Comment 16 Andrew Fuerste-Henry 2025-10-08 13:51:37 UTC
Created attachment 187579 [details] [review]
Bug 36506: Adjust existing tests and test builder

All the previously written tests should continue to pass.

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>

Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Comment 17 Andrew Fuerste-Henry 2025-10-08 13:51:41 UTC
Created attachment 187580 [details] [review]
Bug 36506: Unit tests

Sponsored-by: The Main Library Alliance <https://www.mainlib.org/>

Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>