X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=circ%2Fbranchtransfers.pl;h=32e77f2aa5a05e491ac7bc77224676204e69461a;hb=2b90ea2cb0e5e976de7ddef0151ae83d8ac578e6;hp=da8ecc0534133176a493f6b94403dfea5d9614d9;hpb=1e6ae8e650df15efef77d36033d51d77172ca46c;p=srvgit diff --git a/circ/branchtransfers.pl b/circ/branchtransfers.pl index da8ecc0534..32e77f2aa5 100755 --- a/circ/branchtransfers.pl +++ b/circ/branchtransfers.pl @@ -1,38 +1,40 @@ #!/usr/bin/perl -# WARNING: This file uses 4-character tabs! -#written 11/3/2002 by Finlay #script to execute branch transfers of books # Copyright 2000-2002 Katipo Communications +# copyright 2010 BibLibre # # 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., 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, see . use strict; use warnings; -use CGI; +use CGI qw ( -utf8 ); use C4::Circulation; use C4::Output; use C4::Reserves; use C4::Biblio; use C4::Items; use C4::Auth qw/:DEFAULT get_session/; -use C4::Branch; # GetBranches use C4::Koha; use C4::Members; +use Koha::BiblioFrameworks; +use Koha::AuthorisedValues; +use Koha::Items; +use Koha::Patrons; ############################################### # Getting state @@ -52,9 +54,9 @@ 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.tmpl", + template_name => "circ/branchtransfers.tt", query => $query, type => "intranet", authnotrequired => 0, @@ -62,8 +64,6 @@ my ($template, $user, $cookie) = get_template_and_user( } ); -my $branches = GetBranches; - my $messages; my $found; my $reserved; @@ -81,7 +81,10 @@ my $ignoreRs = 0; # Deal with the requests.... if ( $request eq "KillWaiting" ) { my $item = $query->param('itemnumber'); - CancelReserve( 0, $item, $borrowernumber ); + CancelReserve({ + itemnumber => $item, + borrowernumber => $borrowernumber + }); $cancelled = 1; $reqmessage = 1; } @@ -94,45 +97,45 @@ elsif ( $request eq "SetWaiting" ) { } elsif ( $request eq 'KillReserved' ) { my $biblio = $query->param('biblionumber'); - CancelReserve( $biblio, 0, $borrowernumber ); + CancelReserve({ + biblionumber => $biblio, + borrowernumber => $borrowernumber + }); $cancelled = 1; $reqmessage = 1; } # collect the stack of books already transfered so they can printed... my @trsfitemloop; -my %transfereditems; my $transfered; my $barcode = $query->param('barcode'); -# strip whitespace -defined $barcode and $barcode =~ s/\s*//g; # FIXME: barcodeInputFilter +# remove leading/trailing whitespace +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{'title'} = $iteminformation->{'title'}; - $item{'author'} = $iteminformation->{'author'}; - $item{'itemtype'} = $iteminformation->{'itemtype'}; - $item{'ccode'} = $iteminformation->{'ccode'}; - $item{'frbrname'} = $branches->{$frbranchcd}->{'branchname'}; - $item{'tobrname'} = $branches->{$tobranchcd}->{'branchname'}; -# } + $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); } } @@ -148,14 +151,17 @@ foreach ( $query->param ) { $item{barcode} = $bc; $item{frombrcd} = $frbcd; $item{tobrcd} = $tobcd; - my ($iteminformation) = GetBiblioFromItemNumber( GetItemnumberFromBarcode($bc) ); - $item{'biblionumber'} = $iteminformation->{'biblionumber'}; - $item{'title'} = $iteminformation->{'title'}; - $item{'author'} = $iteminformation->{'author'}; - $item{'itemtype'} = $iteminformation->{'itemtype'}; - $item{'ccode'} = $iteminformation->{'ccode'}; - $item{'frbrname'} = $branches->{$frbcd}->{'branchname'}; - $item{'tobrname'} = $branches->{$tobcd}->{'branchname'}; + 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 ); } @@ -177,46 +183,40 @@ if ($found) { } } -##################### - -# Used for branch transfer limits error messages. -my $codeTypeDescription = 'Collection Code'; -my $codeType = C4::Context->preference("BranchTransferLimitsType"); -if ( $codeType eq 'itemtype' ) { - $codeTypeDescription = 'Item Type'; -} - my @errmsgloop; foreach my $code ( keys %$messages ) { - my %err; - if ( $code eq 'BadBarcode' ) { - $err{msg} = $messages->{'BadBarcode'}; - $err{errbadcode} = 1; + if ( $code ne 'WasTransfered' ) { + my %err; + if ( $code eq 'BadBarcode' ) { + $err{msg} = $messages->{'BadBarcode'}; + $err{errbadcode} = 1; + } + elsif ( $code eq "NotAllowed" ) { + warn "NotAllowed: $messages->{'NotAllowed'} to branchcode " . $messages->{'NotAllowed'}; + # Do we really want a error log message here? --atz + $err{errnotallowed} = 1; + my ( $tbr, $typecode ) = split( /::/, $messages->{'NotAllowed'} ); + $err{tbr} = $tbr; + $err{code} = $typecode; + } + elsif ( $code eq 'IsPermanent' ) { + $err{errispermanent} = 1; + $err{msg} = $messages->{'IsPermanent'}; + } + elsif ( $code eq 'WasReturned' ) { + $err{errwasreturned} = 1; + $err{borrowernumber} = $messages->{'WasReturned'}; + 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 ); } - elsif ( $code eq "NotAllowed" ) { - warn "NotAllowed: $messages->{'NotAllowed'} to " . $branches->{ $messages->{'NotAllowed'} }->{'branchname'}; - # Do we really want a error log message here? --atz - $err{errnotallowed} = 1; - my ( $tbr, $typecode ) = split( /::/, $messages->{'NotAllowed'} ); - $err{tbr} = $branches->{ $tbr }->{'branchname'}; - $err{code} = $typecode; - $err{codeType} = $codeTypeDescription; - } - elsif ( $code eq 'IsPermanent' ) { - $err{errispermanent} = 1; - $err{msg} = $branches->{ $messages->{'IsPermanent'} }->{'branchname'}; - } - elsif ( $code eq 'WasReturned' ) { - $err{errwasreturned} = 1; - $err{borrowernumber} = $messages->{'WasReturned'}; - my $borrower = GetMember($messages->{'WasReturned'},'borrowernumber'); - $err{title} = $borrower->{'title'}; - $err{firstname} = $borrower->{'firstname'}; - $err{surname} = $borrower->{'surname'}; - $err{cardnumber} = $borrower->{'cardnumber'}; - } - $err{errdesteqholding} = ( $code eq 'DestinationEqualsHolding' ); - push( @errmsgloop, \%err ); } # use Data::Dumper; @@ -234,9 +234,12 @@ $template->param( cancelled => $cancelled, setwaiting => $setwaiting, trsfitemloop => \@trsfitemloop, - branchoptionloop => GetBranchesLoop($tobranchcd), 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;