X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-renew.pl;h=73606b0649aa9cc3539f996420049110f3d4988a;hb=e762bdb9b2243070fd33e9aeb1bdfb88f2af2193;hp=c699b359dfd225e188881d6489cf6f341feea522;hpb=b93e6df3a1b7051bc92220cf6bd829c2229bfa70;p=koha.git diff --git a/opac/opac-renew.pl b/opac/opac-renew.pl index c699b359df..73606b0649 100755 --- a/opac/opac-renew.pl +++ b/opac/opac-renew.pl @@ -7,74 +7,89 @@ # 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 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 3 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. +# 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. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; -use CGI; +use CGI qw ( -utf8 ); use C4::Circulation; use C4::Auth; +use C4::Context; use C4::Items; use C4::Members; +use Koha::Patrons; +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, + template_name => "opac-user.tt", + query => $query, + type => "opac", + authnotrequired => 0, + debug => 1, } ); -my @items = $query->param('item'); +my @items = $query->multi_param('item'); my $opacrenew = C4::Context->preference("OpacRenewalAllowed"); -my $errorstring=''; -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 ."|"; +my $errorstring = q{}; +my $renewed = q{}; + +my $patron = Koha::Patrons->find( $borrowernumber ); + +if ( $patron->category->effective_BlockExpiredPatronOpacActions + && $patron->is_expired ) +{ + $errorstring = 'card_expired'; +} +else { + my @renewed; + 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' ) { + $branchcode = Koha::Patrons->find( $borrowernumber )->branchcode; + } + elsif ( $renewalbranch eq 'checkoutbranch' ) { + my $issue = GetOpenIssue($itemnumber); + $branchcode = $issue->{'branchcode'}; + } + elsif ( $renewalbranch eq 'NULL' ) { + $branchcode = ''; + } + else { + $branchcode = 'OPACRenew'; + } + AddRenewal( $borrowernumber, $itemnumber, $branchcode, undef, undef ); + push( @renewed, $itemnumber ); + } + else { + $errorstring .= $error . "|"; + } } + $renewed = join( ':', @renewed ); } -print $query->redirect("/cgi-bin/koha/opac-user.pl?renew_error=$errorstring"); +print $query->redirect("/cgi-bin/koha/opac-user.pl?renew_error=$errorstring&renewed=$renewed");