X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=circ%2Fbranchtransfers.pl;h=c1d30cb55d07ff368eaa146e535e11754ab697ef;hb=e0e063a85b654af623ea1da068d6fd23e8ec3833;hp=eb0a4f7e6a45f8e5614062e0fab83f6eb93ac5ac;hpb=df97814f3034a3d5015546c4eca21f08ae951e37;p=koha.git diff --git a/circ/branchtransfers.pl b/circ/branchtransfers.pl index eb0a4f7e6a..c1d30cb55d 100755 --- a/circ/branchtransfers.pl +++ b/circ/branchtransfers.pl @@ -31,6 +31,11 @@ use C4::Items; use C4::Auth qw/:DEFAULT get_session/; use C4::Koha; use C4::Members; +use Koha::BiblioFrameworks; +use Koha::AuthorisedValues; +use Koha::Holds; +use Koha::Items; +use Koha::Patrons; ############################################### # Getting state @@ -50,7 +55,7 @@ if (!C4::Context->userenv){ ####################################################################################### # Make the page ..... -my ($template, $user, $cookie) = get_template_and_user( +my ($template, $user, $cookie, $flags ) = get_template_and_user( { template_name => "circ/branchtransfers.tt", query => $query, @@ -77,12 +82,15 @@ my $ignoreRs = 0; # Deal with the requests.... if ( $request eq "KillWaiting" ) { my $item = $query->param('itemnumber'); - CancelReserve({ + my $holds = Koha::Holds->search({ itemnumber => $item, borrowernumber => $borrowernumber }); - $cancelled = 1; - $reqmessage = 1; + if ( $holds->count ) { + $holds->next->cancel; + $cancelled = 1; + $reqmessage = 1; + } # FIXME else? } elsif ( $request eq "SetWaiting" ) { my $item = $query->param('itemnumber'); @@ -92,13 +100,16 @@ elsif ( $request eq "SetWaiting" ) { $reqmessage = 1; } elsif ( $request eq 'KillReserved' ) { - my $biblio = $query->param('biblionumber'); - CancelReserve({ - biblionumber => $biblio, + my $biblionumber = $query->param('biblionumber'); + my $holds = Koha::Holds->search({ + biblionumber => $biblionumber, borrowernumber => $borrowernumber }); - $cancelled = 1; - $reqmessage = 1; + if ( $holds->count ) { + $holds->next->cancel; + $cancelled = 1; + $reqmessage = 1; + } # FIXME else? } # collect the stack of books already transfered so they can printed... @@ -110,32 +121,28 @@ defined $barcode and $barcode =~ s/^\s*|\s*$//g; # FIXME: barcodeInputFilter # warn "barcode : $barcode"; if ($barcode) { - my $iteminformation; - ( $transfered, $messages, $iteminformation ) = + ( $transfered, $messages ) = transferbook( $tobranchcd, $barcode, $ignoreRs ); -# use Data::Dumper; -# warn "Transfered : $transfered / ".Dumper($messages); + my $item = Koha::Items->find({ barcode => $barcode }); $found = $messages->{'ResFound'}; if ($transfered) { my %item; + my $biblio = $item->biblio; my $frbranchcd = C4::Context->userenv->{'branch'}; -# if ( not($found) ) { - $item{'biblionumber'} = $iteminformation->{'biblionumber'}; - $item{'itemnumber'} = $iteminformation->{'itemnumber'}; - $item{'title'} = $iteminformation->{'title'}; - $item{'author'} = $iteminformation->{'author'}; - $item{'itemtype'} = $iteminformation->{'itemtype'}; - $item{'ccode'} = $iteminformation->{'ccode'}; - $item{'itemcallnumber'} = $iteminformation->{'itemcallnumber'}; - $item{'location'} = GetKohaAuthorisedValueLib("LOC",$iteminformation->{'location'}); - $item{'tobrname'} = $tobranchcd; -# } + $item{'biblionumber'} = $item->biblionumber; + $item{'itemnumber'} = $item->itemnumber; + $item{'title'} = $biblio->title; + $item{'author'} = $biblio->author; + $item{'itemtype'} = $biblio->biblioitem->itemtype; + $item{'ccode'} = $item->ccode; + $item{'itemcallnumber'} = $item->itemcallnumber; + my $av = Koha::AuthorisedValues->search({ category => 'LOC', authorised_value => $item->location }); + $item{'location'} = $av->count ? $av->next->lib : ''; $item{counter} = 0; $item{barcode} = $barcode; $item{frombrcd} = $frbranchcd; $item{tobrcd} = $tobranchcd; push( @trsfitemloop, \%item ); -# warn Dumper(@trsfitemloop); } } @@ -151,16 +158,17 @@ foreach ( $query->param ) { $item{barcode} = $bc; $item{frombrcd} = $frbcd; $item{tobrcd} = $tobcd; - my ($iteminformation) = GetBiblioFromItemNumber( GetItemnumberFromBarcode($bc) ); - $item{'biblionumber'} = $iteminformation->{'biblionumber'}; - $item{'itemnumber'} = $iteminformation->{'itemnumber'}; - $item{'title'} = $iteminformation->{'title'}; - $item{'author'} = $iteminformation->{'author'}; - $item{'itemtype'} = $iteminformation->{'itemtype'}; - $item{'ccode'} = $iteminformation->{'ccode'}; - $item{'itemcallnumber'} = $iteminformation->{'itemcallnumber'}; - $item{'location'} = GetKohaAuthorisedValueLib("LOC",$iteminformation->{'location'}); - $item{'tobrname'} = $tobcd; + my $item = Koha::Items->find({ barcode => $bc }); + my $biblio = $item->biblio; + $item{'biblionumber'} = $item->biblionumber; + $item{'itemnumber'} = $item->itemnumber; + $item{'title'} = $biblio->title; + $item{'author'} = $biblio->author; + $item{'itemtype'} = $biblio->biblioitem->itemtype; + $item{'ccode'} = $item->ccode; + $item{'itemcallnumber'} = $item->itemcallnumber; + my $av = Koha::AuthorisedValues->search({ category => 'LOC', authorised_value => $item->location }); + $item{'location'} = $av->count ? $av->next->lib : ''; push( @trsfitemloop, \%item ); } @@ -205,11 +213,13 @@ foreach my $code ( keys %$messages ) { elsif ( $code eq 'WasReturned' ) { $err{errwasreturned} = 1; $err{borrowernumber} = $messages->{'WasReturned'}; - my $borrower = GetMember('borrowernumber'=>$messages->{'WasReturned'}); - $err{title} = $borrower->{'title'}; - $err{firstname} = $borrower->{'firstname'}; - $err{surname} = $borrower->{'surname'}; - $err{cardnumber} = $borrower->{'cardnumber'}; + my $patron = Koha::Patrons->find( $messages->{'WasReturned'} ); + if ( $patron ) { # Just in case... + $err{title} = $patron->title; + $err{firstname} = $patron->firstname; + $err{surname} = $patron->surname; + $err{cardnumber} = $patron->cardnumber; + } } $err{errdesteqholding} = ( $code eq 'DestinationEqualsHolding' ); push( @errmsgloop, \%err ); @@ -234,5 +244,9 @@ $template->param( errmsgloop => \@errmsgloop, CircAutocompl => C4::Context->preference("CircAutocompl") ); + +# Checking if there is a Fast Cataloging Framework +$template->param( fast_cataloging => 1 ) if Koha::BiblioFrameworks->find( 'FA' ); + output_html_with_http_headers $query, $cookie, $template->output;