From fc61bd30186b0305579c5dee0a14f9d2733cd5db Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Tue, 30 Apr 2013 08:56:22 +1200 Subject: [PATCH] Bug 10120: Adding a syspref to control if overdue charges are updated on return On by default. To Test 1/ Create an overdue item, that should get fines 2/ Return the item 3/ Check the borrowers record to see if the fine has been added/updated Apply patch 1/ Make sure preference is set to do Repeat steps 1-3 above 2/ Switch the preference to don't Repeat stes 1-2 3/ Check the fine hasn't been added/updated Signed-off-by: David Cook Signed-off-by: Katrin Fischer All tests and QA script pass, works as described. I would categorize this a bug fix for libraries that don't want the new changed behaviour that was introduced by recalculating fines on return. Signed-off-by: Galen Charlton --- C4/Circulation.pm | 4 +++- installer/data/mysql/sysprefs.sql | 1 + installer/data/mysql/updatedatabase.pl | 13 +++++++++++++ .../en/modules/admin/preferences/circulation.pref | 7 +++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 78cbeab3da..93bf8e1610 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -1785,7 +1785,9 @@ sub AddReturn { } if ($borrowernumber) { - if($issue->{'overdue'}){ + if( C4::Context->preference('CalculateFinesOnReturn') && $issue->{'overdue'}){ + # we only need to calculate and change the fines if we want to do that on return + # Should be on for hourly loans my ( $amount, $type, $unitcounttotal ) = C4::Overdues::CalcFine( $item, $borrower->{categorycode},$branch, $datedue, $today ); $type ||= q{}; if ( $amount > 0 && ( C4::Context->preference('finesMode') eq 'production' )) { diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 9aabdb14f0..31485bc68d 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -426,3 +426,4 @@ INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ( INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UniqueItemFields', 'barcode', 'Space-separated list of fields that should be unique (used in acquisition module for item creation). Fields must be valid SQL column names of items table', '', 'Free'); INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('UseCourseReserves', '0', 'Enable the course reserves feature.', NULL, 'YesNo'); INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowHoldNotes',0,'Show hold notes on OPAC','','YesNo'); +INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('CalculateFinesOnReturn','1','Switch to control if overdue fines are calculated on return or not', '', 'YesNo'); diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 3134261567..e227796b46 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -6971,6 +6971,19 @@ if(CheckVersion($DBversion)) { SetVersion ($DBversion); } +$DBversion = "XXX"; +if ( CheckVersion($DBversion) ) { + $dbh->do( + q{ +INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('CalculateFinesOnReturn','1','Switch to control if overdue fines are calculated on return or not', '', 'YesNo'); +} + ); + print +"Upgrade to $DBversion done (Bug 10120 - Fines on item return controlled by a systempreference)\n"; + SetVersion($DBversion); +} + + =head1 FUNCTIONS =head2 TableExists($table) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 243b8e4da0..64cf338eb8 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -319,6 +319,13 @@ Circulation: yes: Block no: "Don't block" - returning of items that have been withdrawn. + - + - pref: CalculateFinesOnReturn + choices: + yes: Do + no: "Don't" + - calculate and update overdue charges when an item is returned. + -
NOTE If you are doing hourly loans then you should have this on. Holds Policy: - - pref: AllowHoldPolicyOverride -- 2.39.2