From: Jesse Weaver <[email protected]>

This introduces a new system preference, OPACFineNoRenewals, that sets a
limit on the total fines a patron can have before they can no longer
renew their own books. opac-user.pl has been updated to obey this limit.

This work sponsered by East Brunswick Public Library, East Brunswick, NJ USA

Signed-off-by: Colin Campbell <[email protected]>
---
 admin/systempreferences.pl                         |    1 +
 installer/data/mysql/en/mandatory/sysprefs.sql     |    1 +
 .../1-Obligatoire/unimarc_standard_systemprefs.sql |    1 +
 installer/data/mysql/updatedatabase.pl             |    6 ++++++
 koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl |    3 +++
 opac/opac-user.pl                                  |    8 ++++++++
 6 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/admin/systempreferences.pl b/admin/systempreferences.pl
index 4a84b13..1635b54 100755
--- a/admin/systempreferences.pl
+++ b/admin/systempreferences.pl
@@ -162,6 +162,7 @@ $tabsysprefs{BranchTransferLimitsType}       = 
"Circulation";
 $tabsysprefs{AllowNotForLoanOverride}        = "Circulation";
 $tabsysprefs{RenewalPeriodBase}              = "Circulation";
 $tabsysprefs{FilterBeforeOverdueReport}      = "Circulation";
+$tabsysprefs{OPACFineNoRenewals}             = "Circulation";
 
 # Staff Client
 $tabsysprefs{TemplateEncoding}        = "StaffClient";
diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql 
b/installer/data/mysql/en/mandatory/sysprefs.sql
index a978fad..9650ed2 100644
--- a/installer/data/mysql/en/mandatory/sysprefs.sql
+++ b/installer/data/mysql/en/mandatory/sysprefs.sql
@@ -245,3 +245,4 @@ INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('v
 INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('viewLabeledMARC','0','Allow 
display of labeled MARC view of bibiographic records','','YesNo');
 INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('viewMARC','1','Allow display 
of MARC view of bibiographic records','','YesNo');
 INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('FilterBeforeOverdueReport','0','Do
 not run overdue report until filter selected','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACFineNoRenewals','100','Fine Limit above which user canmot renew 
books via OPAC','','Integer');
diff --git 
a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql 
b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
index 424b716..1a256fc 100644
--- a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
+++ b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
@@ -247,3 +247,4 @@ INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('v
 INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('viewLabeledMARC','0','Autoriser
 l''affichage MARC labellis des notices bibliographiques','','YesNo');
 INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('viewMARC','1','Autoriser 
l''affichage de la vue MARC des notices bibliographiques','','YesNo');
 INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('FilterBeforeOverdueReport','0','Ne
 pas lancer le rapport sur les retards tant qu''il n''y a pas de 
filtre','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACFineNoRenewals','100','amende limite ci-dessus le lecteur ne peut 
pas renouveler par l\'OPAC','','Integer');
diff --git a/installer/data/mysql/updatedatabase.pl 
b/installer/data/mysql/updatedatabase.pl
index 58497c8..8c13d3b 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -2467,6 +2467,12 @@ if (C4::Context->preference("Version") < 
TransformToNum($DBversion)) {
     print "Upgrade to $DBversion done (added FilterBeforeOverdueReport syspref 
and new index on authorised_values)\n";
 }
 
+$DBversion = '3.01.00.042';
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("INSERT INTO `systempreferences` 
(variable,value,explanation,options,type) 
VALUES('OPACFineNoRenewals','100','Fine Limit above which user canmot renew 
books via OPAC','','Integer')");
+    SetVersion ($DBversion);
+    print "Upgrade to $DBversion done (added OPACFineNoRenewals syspref)\n";
+}
 =item DropAllForeignKeys($table)
 
   Drop all foreign keys of the table $table
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl 
b/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl
index 06f3c69..5a21ac3 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl
@@ -98,6 +98,9 @@ $.tablesorter.addParser({
             <!-- TMPL_IF NAME="lost" -->
                 <li><strong>Please note: </strong> Your library card has been 
marked as lost or stolen. If this is an error, please take your card to the 
circulation desk at your local library and the error will be corrected.</li>
             <!-- /TMPL_IF -->
+            <!-- TMPL_IF NAME="renewal_blocked_fines" -->
+                <li><strong>Please note: </strong> Since you have <a 
href="/cgi-bin/koha/opac-account.pl">more than <!-- TMPL_VAR 
NAME="renewal_blocked_fines" --></a> in fines, you cannot renew your books 
online. Please pay your fines if you wish to renew your books.</li>
+            <!-- /TMPL_IF -->
         </ul></div>
         <!-- /TMPL_IF -->
         
diff --git a/opac/opac-user.pl b/opac/opac-user.pl
index 708ba7f..600fcf6 100755
--- a/opac/opac-user.pl
+++ b/opac/opac-user.pl
@@ -74,6 +74,14 @@ if ( $borr->{'amountoutstanding'} > 5 ) {
 if ( 5 >= $borr->{'amountoutstanding'} && $borr->{'amountoutstanding'} > 0 ) {
     $borr->{'amountoverzero'} = 1;
 }
+
+if ( $borr->{'amountoutstanding'} > C4::Context->preference( 
'OPACFineNoRenewals' ) ) {
+    $borr->{'flagged'} = 1;
+    $template->param(
+        renewal_blocked_fines => sprintf( "%.02f", C4::Context->preference( 
'OPACFineNoRenewals' ) ),
+    );
+}
+
 if ( $borr->{'amountoutstanding'} < 0 ) {
     $borr->{'amountlessthanzero'} = 1;
     $borr->{'amountoutstanding'} = -1 * ( $borr->{'amountoutstanding'} );
-- 
1.6.2.5

_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches

Reply via email to