Bug 14850: Funds from inactive budgets appear in 'Funds' dropdown on acqui/invoice.pl
[koha.git] / acqui / neworderempty.pl
index 54feb36..9ca2b5b 100755 (executable)
@@ -94,6 +94,7 @@ use Koha::MarcSubfieldStructures;
 use Koha::ItemTypes;
 use Koha::Patrons;
 use Koha::RecordProcessor;
+use Koha::Subscriptions;
 
 our $input           = new CGI;
 my $booksellerid    = $input->param('booksellerid');   # FIXME: else ERROR!
@@ -108,7 +109,7 @@ 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 $from_subscriptionid  = $input->param('from_subscriptionid');
 my $data;
 my $new = 'no';
 
@@ -164,9 +165,6 @@ if ( $ordernumber eq '' and defined $params->{'breedingid'}){
         exit;
     }
     #from this point: add a new record
-        if (C4::Context->preference("BiblioAddsAuthorities")){
-            my $headings_linked=BiblioAutoLink($marcrecord, $params->{'frameworkcode'});
-        }
         my $bibitemnum;
         $params->{'frameworkcode'} or $params->{'frameworkcode'} = "";
         ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} );
@@ -262,6 +260,10 @@ else {    #modify order
     $biblionumber = $data->{'biblionumber'};
     $budget_id = $data->{'budget_id'};
 
+    $template->param(
+        subscriptionid => $data->{subscriptionid},
+    );
+
     $basket   = GetBasket( $data->{'basketno'} );
     $basketno = $basket->{'basketno'};
 
@@ -358,8 +360,8 @@ if ($basketobj->effective_create_items eq 'ordering' && !$ordernumber) {
 my @itemtypes;
 @itemtypes = Koha::ItemTypes->search unless C4::Context->preference('item-level_itypes');
 
-if ( defined $subscriptionid ) {
-    my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;
+if ( defined $from_subscriptionid ) {
+    my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $from_subscriptionid;
     if ( defined $lastOrderReceived ) {
         $budget_id              = $lastOrderReceived->{budgetid};
         $data->{listprice}      = $lastOrderReceived->{listprice};
@@ -367,9 +369,9 @@ if ( defined $subscriptionid ) {
         $data->{tax_rate}       = $lastOrderReceived->{tax_rate_on_ordering};
         $data->{discount}       = $lastOrderReceived->{discount};
         $data->{rrp}            = $lastOrderReceived->{rrp};
+        $data->{replacementprice} = $lastOrderReceived->{replacementprice};
         $data->{ecost}          = $lastOrderReceived->{ecost};
         $data->{quantity}       = $lastOrderReceived->{quantity};
-        $data->{unitprice}      = $lastOrderReceived->{unitprice};
         $data->{order_internalnote} = $lastOrderReceived->{order_internalnote};
         $data->{order_vendornote}   = $lastOrderReceived->{order_vendornote};
         $data->{sort1}          = $lastOrderReceived->{sort1};
@@ -377,6 +379,12 @@ if ( defined $subscriptionid ) {
 
         $basket = GetBasket( $input->param('basketno') );
     }
+
+    my $subscription = Koha::Subscriptions->find($from_subscriptionid);
+    $template->param(
+        subscriptionid => $from_subscriptionid,
+        subscription   => $subscription,
+    );
 }
 
 # Find the items.barcode subfield for barcode validations
@@ -448,16 +456,15 @@ $template->param(
     quantity         => $quantity,
     quantityrec      => $quantity,
     rrp              => $data->{'rrp'},
+    replacementprice => $data->{'replacementprice'},
     gst_values       => \@gst_values,
     tax_rate         => $data->{tax_rate_on_ordering} ? $data->{tax_rate_on_ordering}+0.0 : $bookseller->tax_rate ? $bookseller->tax_rate+0.0 : 0,
     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,
-    subscriptionid   => $subscriptionid,
     acqcreate        => $basketobj->effective_create_items eq "ordering" ? 1 : "",
     users_ids        => join(':', @order_user_ids),
     users            => \@order_users,