CsvImport: Kunden/Lieferanten auch nach GLN suchen können.
[kivitendo-erp.git] / SL / Controller / CsvImport / Order.pm
index 2127334..0d54944 100644 (file)
@@ -133,9 +133,11 @@ sub setup_displayable_columns {
                                  { name => 'taxincluded',             description => $::locale->text('Tax Included')                          },
                                  { name => 'customer',                description => $::locale->text('Customer (name)')                       },
                                  { name => 'customernumber',          description => $::locale->text('Customer Number')                       },
+                                 { name => 'customer_gln',            description => $::locale->text('Customer GLN')                          },
                                  { name => 'customer_id',             description => $::locale->text('Customer (database ID)')                },
                                  { name => 'vendor',                  description => $::locale->text('Vendor (name)')                         },
                                  { name => 'vendornumber',            description => $::locale->text('Vendor Number')                         },
+                                 { name => 'vendor_gln',              description => $::locale->text('Vendor GLN')                            },
                                  { name => 'vendor_id',               description => $::locale->text('Vendor (database ID)')                  },
                                  { name => 'language_id',             description => $::locale->text('Language (database ID)')                },
                                  { name => 'language',                description => $::locale->text('Language (name)')                       },
@@ -255,6 +257,8 @@ sub check_objects {
   foreach my $entry (@{ $self->controller->data }) {
     $self->controller->track_progress(progress => $i/$num_data * 100) if $i % 100 == 0;
 
+    $entry->{info_data}->{datatype} = $entry->{raw_data}->{datatype};
+
     if ($entry->{raw_data}->{datatype} eq $self->_order_column) {
       $self->handle_order($entry);
     } elsif ($entry->{raw_data}->{datatype} eq $self->_item_column && $entry->{object}->can('part')) {
@@ -266,6 +270,11 @@ sub check_objects {
     $i++;
   }
 
+  $self->add_info_columns($self->_order_column,
+                          { header => $::locale->text('Data type'), method => 'datatype' });
+  $self->add_info_columns($self->_item_column,
+                          { header => $::locale->text('Data type'), method => 'datatype' });
+
   $self->add_info_columns($self->_order_column,
                           { header => $::locale->text('Customer/Vendor'), method => 'vc_name' });
   # Todo: access via ->[0] ok? Better: search first order column and use this
@@ -293,10 +302,10 @@ sub handle_order {
   my $object = $entry->{object};
 
   my $vc_obj;
-  if (any { $entry->{raw_data}->{$_} } qw(customer customernumber customer_id)) {
+  if (any { $entry->{raw_data}->{$_} } qw(customer customernumber customer_gln customer_id)) {
     $self->check_vc($entry, 'customer_id');
     $vc_obj = SL::DB::Customer->new(id => $object->customer_id)->load if $object->customer_id;
-  } elsif (any { $entry->{raw_data}->{$_} } qw(vendor vendornumber vendor_id)) {
+  } elsif (any { $entry->{raw_data}->{$_} } qw(vendor vendornumber vendor_gln vendor_id)) {
     $self->check_vc($entry, 'vendor_id');
     $vc_obj = SL::DB::Vendor->new(id => $object->vendor_id)->load if $object->vendor_id;
   } else {