From 26783ad1628b6587743d8871cca627c9a84aad0a Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Mon, 15 Apr 2013 12:26:00 -0400 Subject: [PATCH] Bug 6739 - expired patrons not blocked from opac actions - Followup 2 --- C4/Members.pm | 5 +++++ opac/opac-renew.pl | 37 +++++++++++++++++++++---------------- opac/opac-reserve.pl | 2 +- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/C4/Members.pm b/C4/Members.pm index 481028a..c6f967d 100644 --- a/C4/Members.pm +++ b/C4/Members.pm @@ -381,6 +381,11 @@ sub GetMemberDetails { $borrower->{'showname'} = $borrower->{'firstname'}; } + # Handle setting the true behavior for BlockExpiredPatronOpacActions + $borrower->{'BlockExpiredPatronOpacActions'} = + C4::Context->preference('BlockExpiredPatronOpacActions') + if ( $borrower->{'BlockExpiredPatronOpacActions'} == -1 ); + return ($borrower); #, $flags, $accessflagshash); } diff --git a/opac/opac-renew.pl b/opac/opac-renew.pl index 7d1a851..d579c0e 100755 --- a/opac/opac-renew.pl +++ b/opac/opac-renew.pl @@ -27,6 +27,7 @@ use warnings; use CGI; use C4::Circulation; use C4::Auth; +use C4::Context; use C4::Items; use C4::Members; use Date::Calc qw( Today Date_to_Days ); @@ -48,38 +49,42 @@ my $opacrenew = C4::Context->preference("OpacRenewalAllowed"); my $errorstring=''; my $member_details = GetMemberDetails($borrowernumber); -# BlockExpiredPatronOpacActions syspref 0 is false, 1 is true. BlockExpiredPatronOpacActions for categories (from GetMemberDetails) -1 means use syspref, 0 is false, 1 is true (where false means dont block, true means block) -if( ($member_details->{'BlockExpiredPatronOpacActions'} == -1 ? C4::Conext->preference('BlockExpiredPatronOpacActions') : $member_details->{'BlockExpiredPatronOpacActions'}) - && Date_to_Days( Today() ) > Date_to_Days( split /-/, $member_details->{'dateexpiry'} ) ){ - $errorstring = 'card_expired'; -} else { - for my $itemnumber ( @items ) { - my ($status,$error) = CanBookBeRenewed( $borrowernumber, $itemnumber ); + +if ( $member_details->{'BlockExpiredPatronOpacActions'} + && Date_to_Days( Today() ) > + Date_to_Days( split( /-/, $member_details->{'dateexpiry'} ) ) ) +{ + $errorstring = 'card_expired'; +} +else { + for my $itemnumber (@items) { + my ( $status, $error ) = + CanBookBeRenewed( $borrowernumber, $itemnumber ); if ( $status == 1 && $opacrenew == 1 ) { my $renewalbranch = C4::Context->preference('OpacRenewalBranch'); my $branchcode; - if ($renewalbranch eq 'itemhomebranch'){ + if ( $renewalbranch eq 'itemhomebranch' ) { my $item = GetItem($itemnumber); - $branchcode=$item->{'homebranch'}; + $branchcode = $item->{'homebranch'}; } - elsif ($renewalbranch eq 'patronhomebranch'){ + elsif ( $renewalbranch eq 'patronhomebranch' ) { my $borrower = GetMemberDetails($borrowernumber); $branchcode = $borrower->{'branchcode'}; } - elsif ($renewalbranch eq 'checkoutbranch'){ + elsif ( $renewalbranch eq 'checkoutbranch' ) { my $issue = GetOpenIssue($itemnumber); $branchcode = $issue->{'branchcode'}; } - elsif ($renewalbranch eq 'NULL'){ - $branchcode=''; + elsif ( $renewalbranch eq 'NULL' ) { + $branchcode = ''; } else { - $branchcode='OPACRenew' + $branchcode = 'OPACRenew'; } - AddRenewal( $borrowernumber, $itemnumber, $branchcode); + AddRenewal( $borrowernumber, $itemnumber, $branchcode ); } else { - $errorstring .= $error ."|"; + $errorstring .= $error . "|"; } } } diff --git a/opac/opac-reserve.pl b/opac/opac-reserve.pl index 42bebc2..fac27b5 100755 --- a/opac/opac-reserve.pl +++ b/opac/opac-reserve.pl @@ -67,7 +67,7 @@ sub get_out { my ( $borr ) = GetMemberDetails( $borrowernumber ); # check if this user can place a reserve, -1 means use sys pref, 0 means dont block, 1 means block -if( $borr->{'BlockExpiredPatronOpacActions'} == -1 ? C4::Context->preference("BlockExpiredPatronOpacActions") : $borr->{'BlockExpiredPatronOpacActions'} ) { +if( $borr->{'BlockExpiredPatronOpacActions'} ) { if( Date_to_Days( Today() ) > Date_to_Days( split /-/, $borr->{'dateexpiry'} ) ){ # cannot reserve, their card has expired and the rules set mean this is not allowed -- 1.7.2.5