X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=circ%2Freturns.pl;h=167bc5ff20f4494b66d57130d74b7da92f56373f;hb=a9a6524ca3bd1dcd20384b299f95f8d24b89e05d;hp=e954a3b736db8e9e1d87289b7ee90f13be657fec;hpb=f098258e8cf2d616c6bbc35e44c6a1df47be8517;p=koha.git diff --git a/circ/returns.pl b/circ/returns.pl index e954a3b736..167bc5ff20 100755 --- a/circ/returns.pl +++ b/circ/returns.pl @@ -3,6 +3,7 @@ # Copyright 2000-2002 Katipo Communications # 2006 SAN-OP # 2007-2010 BibLibre, Paul POULAIN +# 2010 Catalyst IT # # This file is part of Koha. # @@ -171,6 +172,8 @@ my $barcode = $query->param('barcode'); my $exemptfine = $query->param('exemptfine'); my $dropboxmode = $query->param('dropboxmode'); my $dotransfer = $query->param('dotransfer'); +my $canceltransfer = $query->param('canceltransfer'); +my $dest = $query->param('dest'); my $calendar = C4::Calendar->new( branchcode => $userenv_branch ); #dropbox: get last open day (today - 1) my $today = C4::Dates->new(); @@ -183,6 +186,17 @@ if ($dotransfer){ ModItemTransfer($transferitem, $userenv_branch, $tobranch); } +if ($canceltransfer){ + $itemnumber=$query->param('itemnumber'); + DeleteTransfer($itemnumber); + if($dest eq "ttr"){ + print $query->redirect("/cgi-bin/koha/circ/transferstoreceive.pl"); + exit; + } else { + $template->param( transfercancelled => 1); + } +} + # actually return book and prepare item table..... if ($barcode) { $barcode =~ s/^\s*|\s*$//g; # remove leading/trailing whitespace @@ -224,6 +238,7 @@ if ($barcode) { itemtype => $biblio->{'itemtype'}, ccode => $biblio->{'ccode'}, itembiblionumber => $biblio->{'biblionumber'}, + additional_materials => $biblio->{'materials'} ); my %input = ( @@ -249,7 +264,25 @@ if ($barcode) { $template->param( fineborrowernumber => $borrower->{'borrowernumber'} ); } } - + + if (C4::Context->preference("WaitingNotifyAtCheckin") ) { + #Check for waiting holds + my @reserves = GetReservesFromBorrowernumber($borrower->{'borrowernumber'}); + my $waiting_holds; + foreach my $num_res (@reserves) { + if ( $num_res->{'found'} eq 'W' && $num_res->{'branchcode'} eq $userenv_branch) { + $waiting_holds++; + } + } + if ($waiting_holds > 0) { + $template->param( + waiting_holds => $waiting_holds, + holdsborrowernumber => $borrower->{'borrowernumber'}, + holdsfirstname => $borrower->{'firstname'}, + holdssurname => $borrower->{'surname'}, + ); + } + } } elsif ( !$messages->{'BadBarcode'} ) { $input{duedate} = 0; @@ -305,6 +338,7 @@ if ( $messages->{'WrongTransfer'} and not $messages->{'WasTransfered'}) { WrongTransfer => 1, TransferWaitingAt => $messages->{'WrongTransfer'}, WrongTransferItem => $messages->{'WrongTransferItem'}, + itemnumber => $itemnumber, ); my $reserve = $messages->{'ResFound'}; @@ -390,6 +424,9 @@ foreach my $code ( keys %$messages ) { $err{notissued} = 1; $err{msg} = $branches->{ $messages->{'IsPermanent'} }->{'branchname'}; } + elsif ( $code eq 'LocalUse' ) { + $err{localuse} = 1; + } elsif ( $code eq 'WasLost' ) { $err{waslost} = 1; } @@ -423,7 +460,12 @@ foreach my $code ( keys %$messages ) { } elsif ( $code eq 'Wrongbranch' ) { } - + elsif ( $code eq 'Debarred' ) { + $err{debarred} = format_date( $messages->{'Debarred'} ); + $err{debarcardnumber} = $borrower->{cardnumber}; + $err{debarborrowernumber} = $borrower->{borrowernumber}; + $err{debarname} = "$borrower->{firstname} $borrower->{surname}"; + } else { die "Unknown error code $code"; # note we need all the (empty) elsif's above, or we die. # This forces the issue of staying in sync w/ Circulation.pm @@ -506,6 +548,7 @@ if ($borrower) { my $returned_counter = ( C4::Context->preference('numReturnedItemsToShow') ) ? C4::Context->preference('numReturnedItemsToShow') : 8; my $count = 0; my @riloop; +my $shelflocations = GetKohaAuthorisedValues('items.location',''); foreach ( sort { $a <=> $b } keys %returneditems ) { my %ri; if ( $count++ < $returned_counter ) { @@ -544,6 +587,11 @@ foreach ( sort { $a <=> $b } keys %returneditems ) { $ri{ccode} = $biblio->{'ccode'}; $ri{itemnumber} = $biblio->{'itemnumber'}; $ri{barcode} = $bar_code; + + $ri{location} = $biblio->{'location'}; + my $shelfcode = $ri{'location'}; + $ri{'location'} = $shelflocations->{$shelfcode} if ( defined( $shelfcode ) && defined($shelflocations) && exists( $shelflocations->{$shelfcode} ) ); + } else { last;