X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Fneworderempty.pl;h=9fdf03287b76a48ad16f69c3d456db59260d7a09;hb=23e05042357a9c4fbceb15f0e07c3316b7ff6d86;hp=4a3eb49ce6137d30a60370c940e0557491618833;hpb=53e08d9811fa3802f4a759501fba684c96cf2561;p=koha_fer diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl index 4a3eb49ce6..9fdf03287b 100755 --- a/acqui/neworderempty.pl +++ b/acqui/neworderempty.pl @@ -91,26 +91,26 @@ use C4::Search qw/FindDuplicate/; #needed for z3950 import: use C4::ImportBatch qw/GetImportRecordMarc SetImportRecordStatus/; -my $input = new CGI; +our $input = new CGI; my $booksellerid = $input->param('booksellerid'); # FIXME: else ERROR! my $budget_id = $input->param('budget_id') || 0; my $title = $input->param('title'); my $author = $input->param('author'); my $publicationyear = $input->param('publicationyear'); -my $bookseller = GetBookSellerFromId($booksellerid); # FIXME: else ERROR! my $ordernumber = $input->param('ordernumber') || ''; -my $biblionumber = $input->param('biblionumber'); -my $basketno = $input->param('basketno'); +our $biblionumber = $input->param('biblionumber'); +our $basketno = $input->param('basketno'); my $suggestionid = $input->param('suggestionid'); my $close = $input->param('close'); my $uncertainprice = $input->param('uncertainprice'); my $import_batch_id = $input->param('import_batch_id'); # if this is filled, we come from a staged file, and we will return here after saving the order ! +my $subscriptionid = $input->param('subscriptionid'); my $data; my $new = 'no'; my $budget_name; -my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user( +our ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user( { template_name => "acqui/neworderempty.tmpl", query => $input, @@ -121,18 +121,21 @@ my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user( } ); -my $marcflavour = C4::Context->preference('marcflavour'); +our $marcflavour = C4::Context->preference('marcflavour'); if(!$basketno) { my $order = GetOrder($ordernumber); $basketno = $order->{'basketno'}; } -my $basket = GetBasket($basketno); +our $basket = GetBasket($basketno); +$booksellerid = $basket->{booksellerid} unless $booksellerid; +my $bookseller = GetBookSellerFromId($booksellerid); + my $contract = &GetContract($basket->{contractnumber}); #simple parameters reading (all in one :-) -my $params = $input->Vars; +our $params = $input->Vars; my $listprice=0; # the price, that can be in MARC record if we have one if ( $ordernumber eq '' and defined $params->{'breedingid'}){ #we want to import from the breeding reservoir (from a z3950 search) @@ -186,10 +189,8 @@ else { #modify order $biblionumber = $data->{'biblionumber'}; $budget_id = $data->{'budget_id'}; - #get basketno and supplierno. too! - my $data2 = GetBasket( $data->{'basketno'} ); - $basketno = $data2->{'basketno'}; - $booksellerid = $data2->{'booksellerid'}; + $basket = GetBasket( $data->{'basketno'} ); + $basketno = $basket->{'basketno'}; } my $suggestion; @@ -228,10 +229,11 @@ for my $curr ( @rates ) { } # build branches list -my $onlymine=C4::Context->preference('IndependantBranches') && - C4::Context->userenv && - C4::Context->userenv->{flags}!=1 && - C4::Context->userenv->{branch}; +my $onlymine = + C4::Context->preference('IndependentBranches') + && C4::Context->userenv + && !C4::Context->IsSuperLibrarian() + && C4::Context->userenv->{branch}; my $branches = GetBranches($onlymine); my @branchloop; foreach my $thisbranch ( sort {$branches->{$a}->{'branchname'} cmp $branches->{$b}->{'branchname'}} keys %$branches ) { @@ -321,6 +323,26 @@ if (C4::Context->preference('AcqCreateItem') eq 'ordering' && !$ordernumber) { my @itemtypes; @itemtypes = C4::ItemType->all unless C4::Context->preference('item-level_itypes'); +if ( defined $subscriptionid ) { + my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid; + if ( defined $lastOrderReceived ) { + $budget_id = $lastOrderReceived->{budgetid}; + $data->{listprice} = $lastOrderReceived->{listprice}; + $data->{uncertainprice} = $lastOrderReceived->{uncertainprice}; + $data->{gstrate} = $lastOrderReceived->{gstrate}; + $data->{discount} = $lastOrderReceived->{discount}; + $data->{rrp} = $lastOrderReceived->{rrp}; + $data->{ecost} = $lastOrderReceived->{ecost}; + $data->{quantity} = $lastOrderReceived->{quantity}; + $data->{unitprice} = $lastOrderReceived->{unitprice}; + $data->{notes} = $lastOrderReceived->{notes}; + $data->{sort1} = $lastOrderReceived->{sort1}; + $data->{sort2} = $lastOrderReceived->{sort2}; + + $basket = GetBasket( $input->param('basketno') ); + } +} + # Find the items.barcode subfield for barcode validations my (undef, $barcode_subfield) = GetMarcFromKohaField('items.barcode', ''); @@ -331,6 +353,11 @@ $template->param( budget_name => $budget_name ) if ($close); +# get option values for gist syspref +my @gst_values = map { + option => $_ +}, split( '\|', C4::Context->preference("gist") ); + $template->param( existing => $biblionumber, ordernumber => $ordernumber, @@ -350,12 +377,13 @@ $template->param( suggestionid => $suggestion->{suggestionid}, surnamesuggestedby => $suggestion->{surnamesuggestedby}, firstnamesuggestedby => $suggestion->{firstnamesuggestedby}, - biblionumber => $biblionumber, - uncertainprice => $data->{'uncertainprice'}, - authorisedbyname => $borrower->{'firstname'} . " " . $borrower->{'surname'}, - biblioitemnumber => $data->{'biblioitemnumber'}, - discount_2dp => sprintf( "%.2f", $bookseller->{'discount'}) , # for display - discount => $bookseller->{'discount'}, + biblionumber => $biblionumber, + uncertainprice => $data->{'uncertainprice'}, + authorisedbyname => $borrower->{'firstname'} . " " . $borrower->{'surname'}, + discount_2dp => sprintf( "%.2f", $bookseller->{'discount'} ) , # for display + discount => $bookseller->{'discount'}, + orderdiscount_2dp => sprintf( "%.2f", $data->{'discount'} || 0 ), + orderdiscount => $data->{'discount'}, listincgst => $bookseller->{'listincgst'}, invoiceincgst => $bookseller->{'invoiceincgst'}, name => $bookseller->{'name'}, @@ -375,22 +403,23 @@ $template->param( quantity => $data->{'quantity'}, quantityrec => $data->{'quantity'}, rrp => $data->{'rrp'}, - listprice => sprintf("%.2f", $data->{'listprice'}||$data->{'price'}||$listprice), - total => sprintf("%.2f", ($data->{'ecost'}||0)*($data->{'quantity'}||0) ), - ecost => $data->{'ecost'}, - unitprice => sprintf("%.2f", $data->{'unitprice'}||0), - notes => $data->{'notes'}, + gst_values => \@gst_values, + gstrate => $data->{gstrate} ? $data->{gstrate}+0.0 : $bookseller->{gstrate} ? $bookseller->{gstrate}+0.0 : 0, + gstreg => $bookseller->{'gstreg'}, + listprice => sprintf( "%.2f", $data->{listprice} || $data->{price} || $listprice), + total => sprintf( "%.2f", ($data->{ecost} || 0) * ($data->{'quantity'} || 0) ), + ecost => sprintf( "%.2f", $data->{ecost} || 0), + unitprice => sprintf( "%.2f", $data->{unitprice} || 0), publishercode => $data->{'publishercode'}, barcode_subfield => $barcode_subfield, - import_batch_id => $import_batch_id, - -# CHECKME: gst-stuff needs verifing, mason. - gstrate => $bookseller->{'gstrate'} // C4::Context->preference("gist") // 0, - gstreg => $bookseller->{'gstreg'}, + subscriptionid => $subscriptionid, + acqcreate => C4::Context->preference("AcqCreateItem") eq "ordering" ? 1 : "", (uc(C4::Context->preference("marcflavour"))) => 1 ); +$template->param ( notes => $data->{'notes'} ) if ( $ordernumber ); + output_html_with_http_headers $input, $cookie, $template->output; @@ -443,7 +472,7 @@ sub MARCfindbreeding { if ( C4::Context->preference("z3950NormalizeAuthor") and C4::Context->preference("z3950AuthorAuthFields") ) { - my ( $tag, $subfield ) = GetMarcFromKohaField("biblio.author"); + my ( $tag, $subfield ) = GetMarcFromKohaField("biblio.author", ''); # my $summary = C4::Context->preference("z3950authortemplate"); my $auth_fields =