Created attachment 13612 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price
Test plan: 1) Apply patch 2) Run updatedatabase.pl 3) Enable MaxFineIsReplacementPrice 4) Pick an item, set it's replacementprice to some amount ( e.g. $6.50 ) 5) Check it out to a patron, back date the due date by an amount such that the fine should exceed the replacement price ( a year ago should be good ). 6) Run fines.pl 7) Verify the fine for the item is not exceeded the replacement price.
Created attachment 13614 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price
Created attachment 13615 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price
Created attachment 13616 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price
I wanted to be a on the CC list for this bug, but had to set a patch complexity to do so - update if I was wrong in my assumptions. Nicole
Created attachment 14553 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Original test plan Test plan: 1) Apply patch 2) Run updatedatabase.pl 3) Enable MaxFineIsReplacementPrice 4) Pick an item, set it's replacementprice to some amount ( e.g. $6.50 ) 5) Check it out to a patron, back date the due date by an amount such that the fine should exceed the replacement price ( a year ago should be good ). 6) Run fines.pl 7) Verify the fine for the item is not exceeded the replacement price. Added: Max sure you have maximum fine amount to be higher than the replacement price you set, otherwise it will stop at that amount
Created attachment 16197 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price Test plan: 1) Apply patch 2) Run updatedatabase.pl 3) Enable MaxFineIsReplacementPrice 4) Pick an item, set it's replacementprice to some amount ( e.g. $6.50 ) 5) Check it out to a patron, back date the due date by an amount such that the fine should exceed the replacement price ( a year ago should be good ). 6) Run fines.pl 7) Verify the fine for the item is not exceeded the replacement price. Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Make sure that you also have maximum fine amount to be higher than the replacement price you set, otherwise it will stop at that amount. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
QA Comment: Code looks fine to me. One remark. IMO this pref and MaxFine should really be at the Circulation tab under Fines policy. All other Patron prefs have no direct connection to Circulation as well as Fines. If you agree, please send a followup. Passed QA
The logic on this syspref is backwards. When set to "Don't allow," the fine assessed will be equal to the maximum fine allowed by the circ rules, and when set to "Allow" the fine assessed will be equal to the replacement price of the item.
Created attachment 17989 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price Test plan: 1) Apply patch 2) Run updatedatabase.pl 3) Enable MaxFineIsReplacementPrice 4) Pick an item, set it's replacementprice to some amount ( e.g. $6.50 ) 5) Check it out to a patron, back date the due date by an amount such that the fine should exceed the replacement price ( a year ago should be good ). 6) Run fines.pl 7) Verify the fine for the item is not exceeded the replacement price. Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Make sure that you also have maximum fine amount to be higher than the replacement price you set, otherwise it will stop at that amount. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Created attachment 17990 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price - QA Followup
Created attachment 17991 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price Test plan: 1) Apply patch 2) Run updatedatabase.pl 3) Enable MaxFineIsReplacementPrice 4) Pick an item, set it's replacementprice to some amount ( e.g. $6.50 ) 5) Check it out to a patron, back date the due date by an amount such that the fine should exceed the replacement price ( a year ago should be good ). 6) Run fines.pl 7) Verify the fine for the item is not exceeded the replacement price. Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Make sure that you also have maximum fine amount to be higher than the replacement price you set, otherwise it will stop at that amount. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Created attachment 17992 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price - QA Followup
(In reply to comment #10) > The logic on this syspref is backwards. When set to "Don't allow," the fine > assessed will be equal to the maximum fine allowed by the circ rules, and > when set to "Allow" the fine assessed will be equal to the replacement price > of the item. I've attached a trivial followup to fix this issue. I've set "Passed QA" under the assumption that this is the only issue you found. If I am mistaken, please reset the status.
(In reply to comment #9) > One remark. IMO this pref and MaxFine should really be at the Circulation > tab under Fines policy. All other Patron prefs have no direct connection to > Circulation as well as Fines. To agree with and intensify what Marcel said ... IMO this *really* needs to be an attribute of issuingrules, not a system preference. Different libraries sharing a Koha database might have different preferences on setting the max fine, and I can imagine cases where a library might want this to vary by item type.
Hm, I think Marcel meant the the Patrons tab in the system preference editor is not the right place, but that it should be in Circulation. With 3.12 we have MaxFine in the circulation matrix - not sure how the best way would be to indicate that it should be using the replacement price there. It's an input field, so maybe a checkbox that implies 'replacement price' and deactivates the maxfine input field?
(In reply to comment #17) > Hm, I think Marcel meant the the Patrons tab in the system preference editor > is not the right place, but that it should be in Circulation. That is actually what I meant to write, taking one step at a time. But Galen is two steps further and I agree with him too :) It is confusing to configure circulation on two platforms: prefs and rules, not even talking about making it itemtype dependent.
(In reply to comment #17) > Hm, I think Marcel meant the the Patrons tab in the system preference editor > is not the right place, but that it should be in Circulation. Indeed, I had in fact misread what Marcel meant, although I see that he also agrees with where I ended up after my misreading. :) > With 3.12 we have MaxFine in the circulation matrix - not sure how the best > way would be to indicate that it should be using the replacement price > there. It's an input field, so maybe a checkbox that implies 'replacement > price' and deactivates the maxfine input field? That makes sense to me -- a checkbox for "cap overdue fine at replacement price" that then disables the maxfine input field.
One nice feature of this patch as it stands is that you can specify both MaxFine and MaxFineIsReplacementPrice at once. If the replacement price is over the MaxFine, it will be reduced. To move it to the circulation matrix would require a full re-write. The overduefinescap functions within CalcFine, rather than UpdateFine. Perhaps we have fines logic in too many places. Maybe MaxFines logic needs to be moved to CalcFine as well. (In reply to comment #19) > (In reply to comment #17) > > Hm, I think Marcel meant the the Patrons tab in the system preference editor > > is not the right place, but that it should be in Circulation. > > Indeed, I had in fact misread what Marcel meant, although I see that he also > agrees with where I ended up after my misreading. :) > > > With 3.12 we have MaxFine in the circulation matrix - not sure how the best > > way would be to indicate that it should be using the replacement price > > there. It's an input field, so maybe a checkbox that implies 'replacement > > price' and deactivates the maxfine input field? > > That makes sense to me -- a checkbox for "cap overdue fine at replacement > price" that then disables the maxfine input field.
Created attachment 18366 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price - QA Followup
Created attachment 18367 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price Test plan: 1) Apply patch 2) Run updatedatabase.pl 3) Enable MaxFineIsReplacementPrice 4) Pick an item, set it's replacementprice to some amount ( e.g. $6.50 ) 5) Check it out to a patron, back date the due date by an amount such that the fine should exceed the replacement price ( a year ago should be good ). 6) Run fines.pl 7) Verify the fine for the item is not exceeded the replacement price. Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Make sure that you also have maximum fine amount to be higher than the replacement price you set, otherwise it will stop at that amount. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Created attachment 18368 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price - QA Followup
Resolved small merge conflicts.
Created attachment 18370 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price - QA Followup Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Attaching a followup too.
Created attachment 18371 [details] [review] Bug 9129: Followup for moving two maxfine prefs to Circulation Moving two fines prefs from Patrons to Circulation/Fines Policy. Rewording no=Allow to exceed to no=Do not use for more clarity :) Test plan: Check if you can still find them.. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Had some problems understanding No=Allow to exceed ... I think that No=Do not use replacement price as max is easier? Attached a QA followup that also moves the two prefs to Circulation tab, as noted before.
(In reply to comment #20) > One nice feature of this patch as it stands is that you can specify both > MaxFine and MaxFineIsReplacementPrice at once. If the replacement price is > over the MaxFine, it will be reduced. > > To move it to the circulation matrix would require a full re-write. The > overduefinescap functions within CalcFine, rather than UpdateFine. > > Perhaps we have fines logic in too many places. Maybe MaxFines logic needs > to be moved to CalcFine as well. I agree with Galen that moving them both out of the prefs would be great. But adjusting a lot of troublesome circulation code would be great too. All together, I do no think that we should block this patch for that reason. BTW Kyle should be the ideal candidate to get the code in CalcFine and UpdateFine on a higher level as followup :) Moving the status back to Passed QA for final RM comment.
(In reply to comment #28) > > Perhaps we have fines logic in too many places. Maybe MaxFines logic needs > > to be moved to CalcFine as well. > > I agree with Galen that moving them both out of the prefs would be great. > But adjusting a lot of troublesome circulation code would be great too. The thing is, not taking the time to set a new circ policy switch at the right level of specificity just adds to the refactoring work that has to be done later. Setting back to in discussion to ask the question of Kyle directly: are you willing to prepare a version of this patch that adds this limit as a issuingrules policy, not a system preference?
Galen, if you feel strongly this is the way to go, I will do it that way. I'm fully invested in making Koha the best ILS it can be! Also, as far as the fines logic goes, for this I will do whatever is necessary to make it function, but I'm still preparing a full-rewrite of the accounts system, so I'll probably just shore this up with the minimum amount of code, as the rewrite will replace it eventually. It really does seem more logical to have CalcFine deal with all fine limiting activities, rather than UpdateFine. However, there may be consequences I'm not seeing. Kyle (In reply to comment #29) > (In reply to comment #28) > > > Perhaps we have fines logic in too many places. Maybe MaxFines logic needs > > > to be moved to CalcFine as well. > > > > I agree with Galen that moving them both out of the prefs would be great. > > But adjusting a lot of troublesome circulation code would be great too. > > The thing is, not taking the time to set a new circ policy switch at the > right level of specificity just adds to the refactoring work that has to be > done later. > > Setting back to in discussion to ask the question of Kyle directly: are you > willing to prepare a version of this patch that adds this limit as a > issuingrules policy, not a system preference?
(In reply to comment #30) > Galen, if you feel strongly this is the way to go, I will do it that way. > I'm fully invested in making Koha the best ILS it can be! Thanks, I will await your revised patch with pleasure. > Also, as far as the fines logic goes, for this I will do whatever is > necessary to make it function, but I'm still preparing a full-rewrite of the > accounts system, so I'll probably just shore this up with the minimum amount > of code, as the rewrite will replace it eventually. That's OK. Speaking of the fines write, have you put together a plan for it?
> That's OK. Speaking of the fines write, have you put together a plan for it? Yes, I submitted an RFC, and have already started development. The new database schema has deviated a bit from the RFC for technical reasons ( I had thought to split fees accruing and fees accrued into two separate tables, but it became unworkable in reality ). The biggest change will be the separation of fees and payments into two tables. Each 'payment' will have subpayments for each fee paid. So, if a patron pays $10 in fines, we'll know that person paid $10 total, $3.00 on Fine A, $5.00 on Fine B, and $2.00 on Fine C! In addition, the biggest under the hood change will be to unify all payment subroutines into a single sub, so we don't have behavioral issues that crop up currently. Also, all tables will have primary keys, so we won't have to update fees based on the description anymore ( which has lead to bugs in the past ). In addition, the account offsets table will function again.
Hi Kyle, I wasn't aware of your RFC until reading about it here on the bug - maybe you could update the wiki page and send a mail to the mailing list about it? People might have good suggestions/comments.
Created attachment 18642 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99
Created attachment 18643 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99
Applying: Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price Using index info to reconstruct a base tree... M C4/Overdues.pm M installer/data/mysql/kohastructure.sql M installer/data/mysql/updatedatabase.pl Falling back to patching base and 3-way merge... Auto-merging installer/data/mysql/updatedatabase.pl Auto-merging installer/data/mysql/kohastructure.sql CONFLICT (content): Merge conflict in installer/data/mysql/kohastructure.sql Auto-merging C4/Overdues.pm Patch failed at 0001 Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price The copy of the patch that failed is found in: /home/christopher/git/koha/.git/rebase-apply/patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".
Created attachment 23305 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99
Just tested this with an item's replacement price set to 7,95 and overdue fines cap set to 1000. Directly after the checkout (backdated a few years) the fine was displayed to be 0. I guess that's ok, since you usually don't backdate except for testing. Then I ran misc/cronjobs/fines.pl and the fine was updated to 1000. Finally I returned the item and the fine was set to 7,95. So apparently and confusingly fines are calculated in different places.
Hi Holger, thx for testing! Reading your comment I think this is a failed QA.
Created attachment 43252 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99
Created attachment 43253 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price
Created attachment 43298 [details] [review] [SIGNED OFF] [patch] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price Patch applied without error and test plan produced expected result of a fine equalling the replacement cost price.
There are some conflicts, due to recent changes in master (I suspect for the on-site quotas), please fix: Apply? [(y)es, (n)o, (i)nteractive] y Applying: Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price Using index info to reconstruct a base tree... M Koha/Schema/Result/Issuingrule.pm M admin/smart-rules.pl M installer/data/mysql/kohastructure.sql M koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt Falling back to patching base and 3-way merge... Auto-merging koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt CONFLICT (content): Merge conflict in koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt Auto-merging installer/data/mysql/kohastructure.sql Auto-merging admin/smart-rules.pl CONFLICT (content): Merge conflict in admin/smart-rules.pl Auto-merging Koha/Schema/Result/Issuingrule.pm CONFLICT (content): Merge conflict in Koha/Schema/Result/Issuingrule.pm Failed to merge in the changes. Patch failed at 0001 Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price The copy of the patch that failed is found in: /home/katrin/kohaclone/.git/rebase-apply/patch When you have resolved this problem run "git bz apply --continue". If you would prefer to skip this patch, instead run "git bz apply --skip". To restore the original branch and stop patching run "git bz apply --abort". Patch left in /tmp/SIGNED-OFF-patch-Bug-9129---Add-the-ability-to-set-G3gYvN.patch
Created attachment 43592 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99 Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org>
Kyle, I have tested this and am almost ready to pass QA on this, but please add some tests highlighting the change in CalcFines.
Created attachment 43685 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99 Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org>
Created attachment 43686 [details] [review] Bug 9129 [QA Followup] - Add unit tests
Created attachment 43688 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99 Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org>
Created attachment 43689 [details] [review] Bug 9129 [QA Followup] - Add unit tests
Is this something to worry about? $ perl t/db_dependent/Circulation/CalcFine.t 1..2 DBD::mysql::db begin_work failed: Already in a transaction at /usr/share/perl5/DBIx/Class/Storage/DBI.pm line 1489. # Subtest: Test basic functionality 1..1 ok 1 - Amount is calculated correctly ok 1 - Test basic functionality # Subtest: Test cap_fine_to_replacement_price 1..1 ok 1 - Amount is calculated correctly ok 2 - Test cap_fine_to_replacement_price DBIx::Class::Storage::DBI::txn_rollback(): Storage transaction_depth 0 does not match false AutoCommit of DBI::db=HASH(0x432c8c0), attempting ROLLBACK anyway at /home/katrin/kohaclone/t/lib/TestBuilder.pm line 363
I thought it was problems with the Schema first and tried to regenerate, but this shows a problem: Dumping manual schema for Koha::Schema to directory ./ ... DBIx::Class::Schema::Loader::make_schema_at(): Checksum mismatch in './/Koha/Schema/Result/Issuingrule.pm', the auto-generated part of the file has been modified outside of this loader. Aborting. If you want to overwrite these modifications, set the 'overwrite_modifications' loader option. Can you please put the Schema changes into a separate patch? I think it didn't like the merging when fixing the conflicts with the other bug.
Created attachment 43745 [details] [review] Bug 9129 - Update database Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org>
Created attachment 43746 [details] [review] Bug 9129 - Update schema Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org>
Created attachment 43747 [details] [review] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99 Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org>
Created attachment 43781 [details] [review] [PASSED QA] Bug 9129 - Update database Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Created attachment 43782 [details] [review] [PASSED QA] Bug 9129 - Update database Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Created attachment 43783 [details] [review] [PASSED QA] Bug 9129 - Update schema Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Created attachment 43784 [details] [review] [PASSED QA] Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price This patch adds the ability to set the maximum fine for a given item to its replacement price ( assuming the replacement price is set ). If overduefinescap is also set, the fine will be the lesser of the two, if both apply to the given overdue checkout. To enable this new limit, create or edit your circulation rules and check the checkbox for "Cap fines at replacement price" Test Plan: 1) Apply this patch 2) Run updatedatabase.pl 3) Pick an item, and set it's replacement price to 3.99 4) Edit the circulation rule that would apply to this item and the patron you will check it out to. 5) Check out the item to the patron, and backdate the due date such that the fine generated would be more than 3.99 6) Enable CalculateFinesOnReturn 7) Return the item, and view the fine generated, it should be 3.99 Signed-off-by: Cindy Murdock Ames <cmurdock@ccfls.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Created attachment 46157 [details] [review] Bug 9129 [QA Followup] - Make unit test file conform to PBP Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Pushed to master!