Bug 23293: Apply OPACFineNoRenewalsIncludeCredit preference
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 10 Jul 2019 13:50:06 +0000 (14:50 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Thu, 7 Nov 2019 13:13:24 +0000 (13:13 +0000)
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
C4/Circulation.pm
opac/opac-user.pl

index 2ef62f2..ad617c8 100644 (file)
@@ -2788,7 +2788,10 @@ sub CanBookBeRenewed {
 
         if ( C4::Context->preference('OPACFineNoRenewalsBlockAutoRenew') ) {
             my $fine_no_renewals = C4::Context->preference("OPACFineNoRenewals");
-            my $amountoutstanding = $patron->account->balance;
+            my $amountoutstanding =
+              C4::Context->preference("OPACFineNoRenewalsIncludeCredit")
+              ? $patron->account->balance
+              : $patron->account->outstanding_debits->total_outstanding;
             if ( $amountoutstanding and $amountoutstanding > $fine_no_renewals ) {
                 return ( 0, "auto_too_much_oweing" );
             }
index 451b7f9..6c55ad2 100755 (executable)
@@ -124,16 +124,20 @@ if ( $userdebarred || $borr->{'gonenoaddress'} || $borr->{'lost'} ) {
 my $amountoutstanding = $patron->account->balance;
 my $no_renewal_amt = C4::Context->preference( 'OPACFineNoRenewals' );
 $no_renewal_amt = undef unless looks_like_number( $no_renewal_amt );
+my $amountoutstandingfornewal =
+  C4::Context->preference("OPACFineNoRenewalsIncludeCredit")
+  ? $amountoutstanding
+  : $patron->account->outstanding_debits->total_outstanding;
 
 if (   C4::Context->preference('OpacRenewalAllowed')
     && defined($no_renewal_amt)
-    && $amountoutstanding > $no_renewal_amt )
+    && $amountoutstandingfornewal > $no_renewal_amt )
 {
     $borr->{'flagged'} = 1;
     $canrenew = 0;
     $template->param(
         renewal_blocked_fines => $no_renewal_amt,
-        renewal_blocked_fines_amountoutstanding => $amountoutstanding,
+        renewal_blocked_fines_amountoutstanding => $amountoutstandingfornewal,
     );
 }