X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=reserve%2Frenewscript.pl;h=dbdced9c809712b0cf52207d6a9e45c7b7b77c4d;hb=040eb4016f4b01d44f87ab6aca515c6917f73479;hp=f4b2a6523c30ff446062cbf5a25f5677d05280ab;hpb=03d8521cbf76ade2f52a2986b56ba23389b52322;p=koha.git diff --git a/reserve/renewscript.pl b/reserve/renewscript.pl index f4b2a6523c..dbdced9c80 100755 --- a/reserve/renewscript.pl +++ b/reserve/renewscript.pl @@ -1,10 +1,8 @@ #!/usr/bin/perl - #written 18/1/2000 by chris@katipo.co.nz #script to renew items from the web - # Copyright 2000-2002 Katipo Communications # # This file is part of Koha. @@ -18,15 +16,18 @@ # 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., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA - +# 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::Context; +use C4::Items; use C4::Auth; -use C4::Dates qw/format_date_in_iso/; -use strict; +use URI::Escape; +use Koha::DateUtils; my $input = new CGI; #Set Up User_env @@ -38,8 +39,8 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { borrowers => 1 }, - debug => 1, + flagsrequired => { circulate => 'circulate_remaining_permissions' }, + debug => 0, } ); @@ -48,7 +49,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( # my @data; -if ($input->param('renew_all')) { +if ( $input->param('renew_all') ) { @data = $input->param('all_items[]'); } else { @@ -56,55 +57,86 @@ else { } my @barcodes; -if ($input->param('return_all')) { +if ( $input->param('return_all') ) { @barcodes = $input->param('all_barcodes[]'); -} else { +} +else { @barcodes = $input->param('barcodes[]'); } -my $branch=$input->param('branch'); +my $branch = $input->param('branch'); my $datedue; -if ($input->param('newduedate')){ - $datedue=C4::Dates->new($input->param('newduedate')); +if ( $input->param('newduedate') ) { + $datedue = dt_from_string( $input->param('newduedate') ); + $datedue->set_hour(23); + $datedue->set_minute(59); } # warn "barcodes : @barcodes"; # # renew items # -my $cardnumber = $input->param("cardnumber"); +my $cardnumber = $input->param("cardnumber"); my $borrowernumber = $input->param("borrowernumber"); -my $exemptfine = $input->param("exemptfine") || 0; +my $exemptfine = $input->param("exemptfine") || 0; my $override_limit = $input->param("override_limit") || 0; -my $failedrenews; +my $failedrenews = q{}; foreach my $itemno (@data) { + # check status before renewing issue - my ($renewokay,$error) = CanBookBeRenewed($borrowernumber,$itemno,$override_limit); - if ($renewokay){ - AddRenewal($borrowernumber,$itemno,$branch,$datedue); + my ( $renewokay, $error ) = + CanBookBeRenewed( $borrowernumber, $itemno, $override_limit ); + if ($renewokay) { + AddRenewal( $borrowernumber, $itemno, $branch, $datedue ); + } + else { + $failedrenews .= "&failedrenew=$itemno"; } - else { - $failedrenews.="&failedrenew=$itemno"; - } } -my $failedreturn; +my $failedreturn = q{}; foreach my $barcode (@barcodes) { + # check status before renewing issue - my ( $returned, $messages, $issueinformation, $borrower ) = - AddReturn($barcode, $branch, $exemptfine); - $failedreturn.="&failedreturn=$barcode" unless ($returned); + + #System Preference Handling During Check-in In Patron Module + my $itemnumber; + $itemnumber = GetItemnumberFromBarcode($barcode); + if ($itemnumber) { + if ( C4::Context->preference("InProcessingToShelvingCart") ) { + my $item = GetItem($itemnumber); + if ( $item->{'location'} eq 'PROC' ) { + $item->{'location'} = 'CART'; + ModItem( $item, $item->{'biblionumber'}, + $item->{'itemnumber'} ); + } + } + + if ( C4::Context->preference("ReturnToShelvingCart") ) { + my $item = GetItem($itemnumber); + $item->{'location'} = 'CART'; + ModItem( $item, $item->{'biblionumber'}, $item->{'itemnumber'} ); + } + } + + my ( $returned, $messages, $issueinformation, $borrower ) = + AddReturn( $barcode, $branch, $exemptfine ); + $failedreturn .= "&failedreturn=$barcode" unless ($returned); } # # redirection to the referrer page # -if ($input->param('destination') eq "circ"){ - print $input->redirect( - '/cgi-bin/koha/circ/circulation.pl?findborrower='.$cardnumber.$failedrenews.$failedreturn - ); +if ( $input->param('destination') eq "circ" ) { + $cardnumber = uri_escape($cardnumber); + print $input->redirect( '/cgi-bin/koha/circ/circulation.pl?findborrower=' + . $cardnumber + . $failedrenews + . $failedreturn ); } else { print $input->redirect( - '/cgi-bin/koha/members/moremember.pl?borrowernumber='.$borrowernumber.$failedrenews.$failedreturn - ); + '/cgi-bin/koha/members/moremember.pl?borrowernumber=' + . $borrowernumber + . $failedrenews + . $failedreturn ); }