80b7a8153d
Test Plan: 1) Apply patch 2) Run updatedatabase.pl 3) Pick a patron, note the patron's category 5) Issue an item to this patron 4) Edit that category, set "Block expired patrons" to "Block" 5) Verify the patron cannot renew or place holds in the OPAC 6) Edit the category again, set "Block expired patrons" to "Don't block" 7) Verify the patron *can* renew and place holds in the OPAC 8) Edit the category again, set "Block expired patrons" to "Follow system preference BlockExpiredPatronOpacActions" 9) Set the system preference BlockExpiredPatronOpacActions to "Block" 10) Verify the patron cannot renew or place holds in the OPAC 11) Set the system preference BlockExpiredPatronOpacActions to "Don't block" 12) Verify the patron *can* renew and place holds in the OPAC Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Melia Meggs <melia@bywatersolutions.com> Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Testing notes on last patch in series. Signed-off-by: Galen Charlton <gmc@esilibrary.com>
88 lines
3.2 KiB
Perl
Executable file
88 lines
3.2 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
#written 18/1/2000 by chris@katipo.co.nz
|
|
# adapted for use in the hlt opac by finlay@katipo.co.nz 29/11/2002
|
|
# script to renew items from the web
|
|
# Parts Copyright 2010,2011 Catalyst IT
|
|
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it under the
|
|
# terms of the GNU General Public License as published by the Free Software
|
|
# Foundation; either version 2 of the License, or (at your option) any later
|
|
# version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along
|
|
# with Koha; if not, write to the Free Software Foundation, Inc.,
|
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use CGI;
|
|
use C4::Circulation;
|
|
use C4::Auth;
|
|
use C4::Items;
|
|
use C4::Members;
|
|
use Date::Calc qw( Today Date_to_Days );
|
|
my $query = new CGI;
|
|
|
|
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
|
|
{
|
|
template_name => "opac-user.tmpl",
|
|
query => $query,
|
|
type => "opac",
|
|
authnotrequired => 0,
|
|
flagsrequired => { borrow => 1 },
|
|
debug => 1,
|
|
}
|
|
);
|
|
my @items = $query->param('item');
|
|
|
|
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='unable to renew as your card has 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'){
|
|
my $item = GetItem($itemnumber);
|
|
$branchcode=$item->{'homebranch'};
|
|
}
|
|
elsif ($renewalbranch eq 'patronhomebranch'){
|
|
my $borrower = GetMemberDetails($borrowernumber);
|
|
$branchcode = $borrower->{'branchcode'};
|
|
}
|
|
elsif ($renewalbranch eq 'checkoutbranch'){
|
|
my $issue = GetOpenIssue($itemnumber);
|
|
$branchcode = $issue->{'branchcode'};
|
|
}
|
|
elsif ($renewalbranch eq 'NULL'){
|
|
$branchcode='';
|
|
}
|
|
else {
|
|
$branchcode='OPACRenew'
|
|
}
|
|
AddRenewal( $borrowernumber, $itemnumber, $branchcode);
|
|
}
|
|
else {
|
|
$errorstring .= $error ."|";
|
|
}
|
|
}
|
|
}
|
|
|
|
print $query->redirect("/cgi-bin/koha/opac-user.pl?renew_error=$errorstring");
|
|
|