From f8f1c7160739cddac44a1671a6d235fe2228f4af Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Mon, 11 Feb 2013 08:27:05 -0500 Subject: [PATCH] Bug 9576 - Enable or disable issue limit confirmation Adds a new system preference AllowTooManyOverride to control whether a librarian can override the 'Too many checked out' message which is currently always overridable. Test Plan: 1) Apply patch 2) Run updatedatabase.pl 3) Attempt to check out 1 more item to a patron than the max issues 4) You should be allowed to override by default ( current behavior ) 5) Set AllowTooManyOverride to "Don't allow" 6) Repeat step 3 7) You should be blocked from being able to issue the item --- C4/Circulation.pm | 12 +++++++++--- installer/data/mysql/sysprefs.sql | 1 + installer/data/mysql/updatedatabase.pl | 6 ++++++ .../en/modules/admin/preferences/circulation.pref | 6 ++++++ .../prog/en/modules/circ/circulation.tt | 4 ++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index f1c8662..91c2f19 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -822,9 +822,15 @@ sub CanBookBeIssued { $needsconfirmation{PATRON_CANT} = 1; } else { if($max_loans_allowed){ - $needsconfirmation{TOO_MANY} = 1; - $needsconfirmation{current_loan_count} = $current_loan_count; - $needsconfirmation{max_loans_allowed} = $max_loans_allowed; + if ( C4::Context->preference("AllowTooManyOverride") ) { + $needsconfirmation{TOO_MANY} = 1; + $needsconfirmation{current_loan_count} = $current_loan_count; + $needsconfirmation{max_loans_allowed} = $max_loans_allowed; + } else { + $issuingimpossible{TOO_MANY} = 1; + $issuingimpossible{current_loan_count} = $current_loan_count; + $issuingimpossible{max_loans_allowed} = $max_loans_allowed; + } } } diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 9032bfa..a2387b8 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -411,3 +411,4 @@ INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ( INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('IDreamBooksReviews','0','Display book review snippets from IDreamBooks.com','','YesNo'); INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('IDreamBooksReadometer','0','Display Readometer from IDreamBooks.com','','YesNo'); INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('IDreamBooksResults','0','Display IDreamBooks.com rating in search results','','YesNo'); +INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowTooManyOverride', '1', 'If on, allow staff to override and check out items when the patron has reached the maximum number of allowed checkouts', '', 'YesNo'); \ No newline at end of file diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index ed922b8..e00ef76 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -6399,6 +6399,12 @@ if ( CheckVersion($DBversion) ) { SetVersion($DBversion); } +$DBversion ="3.11.00.XXX"; +if ( CheckVersion($DBversion) ) { + $dbh->do("INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowTooManyOverride', '1', 'If on, allow staff to override and check out items when the patron has reached the maximum number of allowed checkouts', '', 'YesNo');"); + print "Upgrade to $DBversion done (Bug 9576 - Enable or disable issue limit confirmation)\n"; + SetVersion($DBversion); +} =head1 FUNCTIONS 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 82c1c02..2a7bd3d 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 @@ -126,6 +126,12 @@ Circulation: Checkout Policy: - + - pref: AllowTooManyOverride + choices: + yes: Allow + no: "Don't allow" + - staff to override and check out items when the patron has reached the maximum number of allowed checkouts. + - - pref: AllowNotForLoanOverride choices: yes: Allow diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt index cb5a548..b3eb05c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -489,6 +489,10 @@ function validate1(date) {
  • Patron's card is expired
  • [% END %] + [% IF ( TOO_MANY ) %] +
  • Too many checked out. [% current_loan_count %] checked out, only [% max_loans_allowed %] are allowed.
  • + [% END %] + [% IF ( ITEMNOTSAMEBRANCH ) %]
  • This item belongs to [% itemhomebranch %] and cannot be issued from this location.
  • [% END %] -- 1.7.2.5