Bug 32858: Fix cataloguing/value_builder/unimarc_field_128a.pl
[koha-ffzg.git] / acqui / addorder.pl
index ad1dd97..25fd4b3 100755 (executable)
@@ -137,6 +137,7 @@ use Koha::Acquisition::Currencies qw( get_active );
 use Koha::Acquisition::Orders;
 use Koha::Acquisition::Baskets;
 use C4::Barcodes;
+use Koha::DateUtils qw( dt_from_string );
 
 ### "-------------------- addorder.pl ----------"
 
@@ -154,6 +155,14 @@ unless($confirm_budget_exceeding) {
     my $budget = GetBudget($budget_id);
     my $budget_spent = GetBudgetSpent($budget_id);
     my $budget_ordered = GetBudgetOrdered($budget_id);
+
+    my $ordernumber = $input->param('ordernumber');
+    if ( $ordernumber ) {
+        # modifying an existing order so remove order price from $budget_ordered
+        my $order = Koha::Acquisition::Orders->find($ordernumber);
+        $budget_ordered = $budget_ordered - ( $order->ecost_tax_included * $order->quantity );
+    }
+
     my $budget_used = $budget_spent + $budget_ordered;
     my $budget_remaining = $budget->{budget_amount} - $budget_used;
     my $budget_encumbrance = $budget->{budget_amount} * $budget->{budget_encumb} / 100;
@@ -181,7 +190,7 @@ unless($confirm_budget_exceeding) {
         foreach (keys %$vars) {
             push @vars_loop, {
                 name => $_,
-                values => [$input->param($_)],
+                values => [ $input->multi_param($_) ],
             };
         }
 
@@ -249,6 +258,7 @@ my $orderinfo = {
     sort1                => scalar $input->param('sort1'),
     sort2                => scalar $input->param('sort2'),
     subscriptionid       => scalar $input->param('subscriptionid'),
+    estimated_delivery_date => scalar $input->param('estimated_delivery_date'),
 };
 
 $orderinfo->{uncertainprice} ||= 0;
@@ -329,6 +339,7 @@ if ( $basket->{is_standing} || $orderinfo->{quantity} ne '0' ) {
 
     my $order;
     my $log_action_name;
+
     if ( $orderinfo->{ordernumber} ) {
         $order = Koha::Acquisition::Orders->find($orderinfo->{ordernumber});
         $order->set($orderinfo);