]> wagnertech.de Git - kivitendo-erp.git/blobdiff - SL/Controller/Order.pm
Auftrags-Controller: Mehrfach-Artikelauswahl: Suchergebis auf 100 begrenzen.
[kivitendo-erp.git] / SL / Controller / Order.pm
index 3203485fa7d2dcf99d4b0397c2a8411cf9675711..5c8607d6ce8d71a33966e7751d63035450f7fa14 100644 (file)
@@ -295,13 +295,18 @@ sub action_customer_vendor_changed {
                               : $::myconfig{taxincluded_checked});
   }
 
+  $self->order->payment_id($self->order->$cv_method->payment_id);
+  $self->order->delivery_term_id($self->order->$cv_method->delivery_term_id);
+
   $self->_recalc();
 
   $self->js
-    ->replaceWith('#order_cp_id',       $self->build_contact_select)
-    ->replaceWith('#order_shipto_id',   $self->build_shipto_select)
-    ->val(        '#order_taxzone_id',  $self->order->taxzone_id)
-    ->val(        '#order_taxincluded', $self->order->taxincluded)
+    ->replaceWith('#order_cp_id',            $self->build_contact_select)
+    ->replaceWith('#order_shipto_id',        $self->build_shipto_select)
+    ->val(        '#order_taxzone_id',       $self->order->taxzone_id)
+    ->val(        '#order_taxincluded',      $self->order->taxincluded)
+    ->val(        '#order_payment_id',       $self->order->payment_id)
+    ->val(        '#order_delivery_term_id', $self->order->delivery_term_id)
     ->focus(      '#order_' . $self->cv . '_id');
 
   $self->_js_redisplay_amounts_and_taxes;
@@ -348,15 +353,27 @@ sub action_show_multi_items_dialog {
 }
 
 sub action_multi_items_update_result {
-  $_[0]->render('order/tabs/_multi_items_result', { layout => 0 },
-                multi_items => $_[0]->multi_items_models->get);
+  my $max_count = 100;
+  my $count = $_[0]->multi_items_models->count;
+
+  if ($count == 0) {
+    my $text = SL::Presenter::EscapedText->new(text => $::locale->text('No results.'));
+    $_[0]->render($text, { layout => 0 });
+  } elsif ($count > $max_count) {
+    my $text = SL::Presenter::EscapedText->new(text => $::locale->text('Too much results (#1 from #2).', $count, $max_count));
+    $_[0]->render($text, { layout => 0 });
+  } else {
+    my $multi_items = $_[0]->multi_items_models->get;
+    $_[0]->render('order/tabs/_multi_items_result', { layout => 0 },
+                  multi_items => $multi_items);
+  }
 }
 
 sub action_add_multi_items {
   my ($self) = @_;
 
-  my @form_attr = grep { $_->{qty} } @{ $::form->{add_multi_items} };
-  return unless scalar @form_attr;
+  my @form_attr = grep { $_->{qty_as_number} } @{ $::form->{add_multi_items} };
+  return $self->js->render() unless scalar @form_attr;
 
   my @items;
   foreach my $attr (@form_attr) {