Merge branch 'requirement-specs-custom-variables'
[kivitendo-erp.git] / SL / Controller / CsvImport / Order.pm
index c72f3e2..246438c 100644 (file)
@@ -426,7 +426,7 @@ sub check_part {
 
   my $object = $entry->{object};
 
-  # Check wether or non part ID is valid.
+  # Check wether or not part ID is valid.
   if ($object->parts_id && !$self->parts_by->{id}->{ $object->parts_id }) {
     push @{ $entry->{errors} }, $::locale->text('Error: Invalid part');
     return 0;
@@ -443,6 +443,17 @@ sub check_part {
     $object->parts_id($part->id);
   }
 
+  # Map description to ID if given.
+  if (!$object->parts_id && $entry->{raw_data}->{description}) {
+    my $part = $self->parts_by->{description}->{ $entry->{raw_data}->{description} };
+    if (!$part) {
+      push @{ $entry->{errors} }, $::locale->text('Error: Invalid part');
+      return 0;
+    }
+
+    $object->parts_id($part->id);
+  }
+
   if ($object->parts_id) {
     $entry->{info_data}->{partnumber} = $self->parts_by->{id}->{ $object->parts_id }->partnumber;
   } else {
@@ -624,10 +635,10 @@ sub add_items_to_order {
   my $order_entry;
   my @orderitems;
   foreach my $entry (@{ $self->controller->data }) {
-    # search first order
+    # search first/next order
     if ($entry->{raw_data}->{datatype} eq $self->_order_column) {
 
-      # new order entry: add collected orderitems to the previous one
+      # next order entry: add collected orderitems to the previous one
       if (defined $order_entry) {
         $order_entry->{object}->orderitems(@orderitems);
         @orderitems = ();