X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=opac%2Fopac-renew.pl;h=03c4a714a4a411bd2cf18a2e922a0a795fb4956c;hb=0a0fcd31e039a01c0d7693b58a4d787109161954;hp=43fc99dcd09432f806dd350aeeadf7a59ec7e04d;hpb=fc1342f73df868410e0ab670981f25ba2e1acd74;p=koha.git diff --git a/opac/opac-renew.pl b/opac/opac-renew.pl index 43fc99dcd0..03c4a714a4 100755 --- a/opac/opac-renew.pl +++ b/opac/opac-renew.pl @@ -2,22 +2,96 @@ #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 +# script to renew items from the web +# Parts Copyright 2010,2011 Catalyst IT -use CGI; -use C4::Circulation::Circ2; +# 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 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. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use strict; +use warnings; + +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 $itemnumber = $query->param('item'); -my $borrowernumber = $query->param("borrowernumber"); +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-user.tt", + query => $query, + type => "opac", + authnotrequired => 0, + debug => 1, + } +); +my @items = $query->multi_param('item'); -my %env; -my $status = renewstatus( \%env, $borrowernumber, $itemnumber ); -if ( $status == 1 ) { - renewbook( \%env, $borrowernumber, $itemnumber ); -} +my $opacrenew = C4::Context->preference("OpacRenewalAllowed"); + +my $errorstring = q{}; +my $renewed = q{}; -if ( $query->param('from') eq 'opac_user' ) { - print $query->redirect("/cgi-bin/koha/opac-user.pl"); +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' ) { + my $borrower = GetMember( borrowernumber => $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 ); + push( @renewed, $itemnumber ); + } + else { + $errorstring .= $error . "|"; + } + } + $renewed = join( ':', @renewed ); } + +print $query->redirect("/cgi-bin/koha/opac-user.pl?renew_error=$errorstring&renewed=$renewed"); +