Bug 12134: ensure that patrons are not restricted even when the last restriction...
authorKyle M Hall <kyle@bywatersolutions.com>
Thu, 24 Apr 2014 15:23:05 +0000 (11:23 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Mon, 28 Apr 2014 17:12:04 +0000 (17:12 +0000)
Test Plan:
1) Add a manual restriction to a patron and wait until the
   expiration date of the restriction has passed.  This can be
   simulated by modifying borrowers.debarred for a borrower and
   setting the date in the past.
2) Try to check out an item to that patron
3) Note you cannot
4) Apply this patch
5) Repeat step 2
6) Note you can now check out items the patron

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Koha/Borrower/Debarments.pm
circ/circulation.pl

index 0febc20..5990208 100644 (file)
@@ -183,7 +183,7 @@ sub IsDebarred {
 
     return unless ($borrowernumber);
 
-    my $sql = "SELECT debarred FROM borrowers WHERE borrowernumber = ?";
+    my $sql = "SELECT debarred FROM borrowers WHERE borrowernumber = ? AND debarred > CURRENT_DATE()";
     my $sth = C4::Context->dbh->prepare($sql);
     $sth->execute($borrowernumber);
     my ($debarred) = $sth->fetchrow_array();
index e02b569..216bfc3 100755 (executable)
@@ -40,7 +40,7 @@ use C4::Reserves;
 use C4::Context;
 use CGI::Session;
 use C4::Members::Attributes qw(GetBorrowerAttributes);
-use Koha::Borrower::Debarments qw(GetDebarments);
+use Koha::Borrower::Debarments qw(GetDebarments IsDebarred);
 use Koha::DateUtils;
 
 use Date::Calc qw(
@@ -265,12 +265,16 @@ if ($borrowernumber) {
         finetotal    => $fines
     );
 
-    $template->param(
-        'userdebarred'    => $borrower->{debarred},
-        'debarredcomment' => $borrower->{debarredcomment},
-    );
-    if ( $borrower->{debarred} ne "9999-12-31" ) {
-        $template->param( 'userdebarreddate' => C4::Dates::format_date( $borrower->{debarred} ) );
+    if ( IsDebarred($borrowernumber) ) {
+        $template->param(
+            'userdebarred'    => $borrower->{debarred},
+            'debarredcomment' => $borrower->{debarredcomment},
+        );
+
+        if ( $borrower->{debarred} ne "9999-12-31" ) {
+            $template->param( 'userdebarreddate' =>
+                  C4::Dates::format_date( $borrower->{debarred} ) );
+        }
     }
 
 }