X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Forderreceive.pl;h=1ea0bd1bca3de045ecf5c4a62b5090fed0e83f18;hb=9bc08e4e4c89718839b0d1039704cae4d0fe8cde;hp=659c10368a8d58902286d809b934d57812e618fa;hpb=7fcff602f5fe294e78e3012fc12d600e43ca2443;p=koha_fer diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl index 659c10368a..1ea0bd1bca 100755 --- a/acqui/orderreceive.pl +++ b/acqui/orderreceive.pl @@ -61,7 +61,8 @@ The biblionumber of this order. =cut use strict; -#use warnings; FIXME - Bug 2505 +use warnings; + use CGI; use C4::Context; use C4::Koha; # GetKohaAuthorisedValues GetItemTypes @@ -81,8 +82,8 @@ use C4::Suggestions; my $input = new CGI; my $dbh = C4::Context->dbh; -my $booksellerid = $input->param('booksellerid'); -my $ordernumber = $input->param('ordernumber'); +my $booksellerid = $input->param('booksellerid'); +my $ordernumber = $input->param('ordernumber'); my $search = $input->param('receive'); my $invoice = $input->param('invoice'); my $freight = $input->param('freight'); @@ -96,13 +97,6 @@ my $input_gst = ($input->param('gst') eq '' ? undef : $input->param('gst')); my $gst= $input_gst // $bookseller->{gstrate} // C4::Context->preference("gist") // 0; my $results = SearchOrder($ordernumber,$search); - -my $count = scalar @$results; -my $order = GetOrder($ordernumber); - - -my $date = @$results[0]->{'entrydate'}; - my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { template_name => "acqui/orderreceive.tmpl", @@ -114,57 +108,91 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); +my $count = scalar @$results; # prepare the form for receiving if ( $count == 1 ) { - if (C4::Context->preference('AcqCreateItem') eq 'receiving') { - # prepare empty item form - my $cell = PrepareItemrecordDisplay('','','','ACQ'); - unless ($cell) { - $cell = PrepareItemrecordDisplay('','','',''); - $template->param('NoACQframework' => 1); - } - my @itemloop; - push @itemloop,$cell; - - $template->param(items => \@itemloop); + my $order = $results->[0]; + + # Check if ACQ framework exists + my $acq_fw = GetMarcStructure(1, 'ACQ'); + unless($acq_fw) { + $template->param('NoACQframework' => 1); } - if ( @$results[0]->{'quantityreceived'} == 0 ) { - @$results[0]->{'quantityreceived'} = ''; + my $AcqCreateItem = C4::Context->preference('AcqCreateItem'); + if ($AcqCreateItem eq 'receiving') { + $template->param( + AcqCreateItemReceiving => 1, + UniqueItemFields => C4::Context->preference('UniqueItemFields'), + ); + } elsif ($AcqCreateItem eq 'ordering') { + my $fw = ($acq_fw) ? 'ACQ' : ''; + my @itemnumbers = GetItemnumbersFromOrder($order->{ordernumber}); + my @items; + foreach (@itemnumbers) { + my $item = GetItem($_); + if($item->{homebranch}) { + $item->{homebranchname} = GetBranchName($item->{homebranch}); + } + if($item->{holdingbranch}) { + $item->{holdingbranchname} = GetBranchName($item->{holdingbranch}); + } + if(my $code = GetAuthValCode("items.notforloan", $fw)) { + $item->{notforloan} = GetKohaAuthorisedValueLib($code, $item->{notforloan}); + } + if(my $code = GetAuthValCode("items.restricted", $fw)) { + $item->{restricted} = GetKohaAuthorisedValueLib($code, $item->{restricted}); + } + if(my $code = GetAuthValCode("items.location", $fw)) { + $item->{location} = GetKohaAuthorisedValueLib($code, $item->{location}); + } + if(my $code = GetAuthValCode("items.ccode", $fw)) { + $item->{collection} = GetKohaAuthorisedValueLib($code, $item->{ccode}); + } + if(my $code = GetAuthValCode("items.materials", $fw)) { + $item->{materials} = GetKohaAuthorisedValueLib($code, $item->{materials}); + } + my $itemtype = getitemtypeinfo($item->{itype}); + $item->{itemtype} = $itemtype->{description}; + push @items, $item; + } + $template->param(items => \@items); } - if ( @$results[0]->{'unitprice'} == 0 ) { - @$results[0]->{'unitprice'} = ''; + + if ( $order->{'unitprice'} == 0 ) { + $order->{'unitprice'} = ''; } - my $suggestion = GetSuggestionInfoFromBiblionumber(@$results[0]->{'biblionumber'}); + my $suggestion = GetSuggestionInfoFromBiblionumber($order->{'biblionumber'}); - my $authorisedby = @$results[0]->{'authorisedby'}; + my $authorisedby = $order->{'authorisedby'}; my $member = GetMember( borrowernumber => $authorisedby ); - my $budget = GetBudget( @$results[0]->{'budget_id'} ); + my $budget = GetBudget( $order->{'budget_id'} ); $template->param( + AcqCreateItem => $AcqCreateItem, count => 1, - biblionumber => @$results[0]->{'biblionumber'}, - ordernumber => @$results[0]->{'ordernumber'}, - biblioitemnumber => @$results[0]->{'biblioitemnumber'}, - booksellerid => @$results[0]->{'booksellerid'}, + biblionumber => $order->{'biblionumber'}, + ordernumber => $order->{'ordernumber'}, + biblioitemnumber => $order->{'biblioitemnumber'}, + booksellerid => $order->{'booksellerid'}, freight => $freight, gst => $gst, name => $bookseller->{'name'}, - date => format_date($date), - title => @$results[0]->{'title'}, - author => @$results[0]->{'author'}, - copyrightdate => @$results[0]->{'copyrightdate'}, - isbn => @$results[0]->{'isbn'}, - seriestitle => @$results[0]->{'seriestitle'}, + date => format_date($order->{entrydate}), + title => $order->{'title'}, + author => $order->{'author'}, + copyrightdate => $order->{'copyrightdate'}, + isbn => $order->{'isbn'}, + seriestitle => $order->{'seriestitle'}, bookfund => $budget->{budget_name}, - quantity => @$results[0]->{'quantity'}, - quantityreceivedplus1 => @$results[0]->{'quantityreceived'} + 1, - quantityreceived => @$results[0]->{'quantityreceived'}, - rrp => @$results[0]->{'rrp'}, - ecost => @$results[0]->{'ecost'}, - unitprice => @$results[0]->{'unitprice'}, + quantity => $order->{'quantity'}, + quantityreceivedplus1 => $order->{'quantityreceived'} + 1, + quantityreceived => $order->{'quantityreceived'}, + rrp => $order->{'rrp'}, + ecost => $order->{'ecost'}, + unitprice => $order->{'unitprice'}, memberfirstname => $member->{firstname} || "", membersurname => $member->{surname} || "", invoice => $invoice, @@ -197,7 +225,7 @@ else { ); } my $op = $input->param('op'); -if ($op eq 'edit'){ +if ($op and $op eq 'edit'){ $template->param(edit => 1); } output_html_with_http_headers $input, $cookie, $template->output;