From 1d2b0ff2834ba6bc236042b9479642f5f8fd2cf4 Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Wed, 7 May 2014 10:15:20 +1200 Subject: [PATCH] Bug 12205 : Add a system preference allowing hold charges to block circ Currently, if you have holds charges, they are not taken into consideration when circulating items. Manual Invoices, and rental charges are governed by a systempreference Holds are never counted And all other charges (overdues, lost items etc) are counted This patch adds a systempreference to allow Hold charges to be counted as well. To test 1/ Set a borrower category to have holds charges 2/ Place a hold for a borrower in that category 3/ Go to checkout, notice that charge is not showing or blocking on that screen 4/ apply patch 5/ notice that charge now shows on checkout --- C4/Members.pm | 3 ++- installer/data/mysql/updatedatabase.pl | 8 ++++++++ .../prog/en/modules/admin/preferences/circulation.pref | 6 ++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/C4/Members.pm b/C4/Members.pm index f832495..362bbd9 100644 --- a/C4/Members.pm +++ b/C4/Members.pm @@ -1256,7 +1256,8 @@ sub GetMemberAccountBalance { my $ACCOUNT_TYPE_LENGTH = 5; # this is plain ridiculous... - my @not_fines = ('Res'); + my @not_fines; + push @not_fines, 'Res' unless C4::Context->preference('HoldsInNoissuesCharge'); push @not_fines, 'Rent' unless C4::Context->preference('RentalsInNoissuesCharge'); unless ( C4::Context->preference('ManInvInNoissuesCharge') ) { my $dbh = C4::Context->dbh; diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 3b1718c..536e12a 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -8465,6 +8465,14 @@ if ( CheckVersion($DBversion) ) { SetVersion($DBversion); } +$DBversion = "3.15.00.XXX"; +if ( CheckVersion($DBversion) ) { + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('HoldsInNoissuesCharge', '0', 'Hold charges block checkouts (added to noissuescharge).',NULL,'YesNo');"); + print "Upgrade to $DBversion done (Add HoldsInNoissuesCharge 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 ad0d78b..407edde 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 @@ -308,6 +308,12 @@ Circulation: no: "Don't include" - MANUAL_INV charges when summing up charges for noissuescharge. - + - pref: HoldsInNoissuesCharge + choices: + yes: Include + no: "Don't include" + - hold charges when summing up charges for noissuescharge. + - - pref: ReturnBeforeExpiry choices: yes: Require -- 1.9.1