]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Controller/CsvImport/CustomerVendor.pm
Keine undefinierten Werte als Referenzen nutzen (passiert im Fehlerfall)
[mfinanz.git] / SL / Controller / CsvImport / CustomerVendor.pm
index 5fe15af6e6ce5fae39ca61458b6d82724bd3a167..9cb115745cdee2eb35c8f07f2efa2973ab9fc649 100644 (file)
@@ -8,16 +8,17 @@ use parent qw(SL::Controller::CsvImport::Base);
 
 use Rose::Object::MakeMethods::Generic
 (
scalar => [ qw(table) ],
'scalar --get_set_init' => [ qw(table) ],
 );
 
-sub run {
+sub init_table {
   my ($self) = @_;
-
   $self->table($self->controller->profile->get('table') eq 'customer' ? 'customer' : 'vendor');
-  $self->class('SL::DB::' . ucfirst($self->table));
+}
 
-  $self->SUPER::run;
+sub init_class {
+  my ($self) = @_;
+  $self->class('SL::DB::' . ucfirst($self->table));
 }
 
 sub check_objects {
@@ -52,7 +53,7 @@ sub check_duplicates {
 
   my %by_name;
   if ('check_db' eq $self->controller->profile->get('duplicates')) {
-    %by_name = map { ( $normalizer->($_->name) => 1 ) } @{ $self->existing_objects };
+    %by_name = map { ( $normalizer->($_->name) => 'db' ) } @{ $self->existing_objects };
   }
 
   foreach my $entry (@{ $self->controller->data }) {
@@ -60,10 +61,10 @@ sub check_duplicates {
 
     my $name = $normalizer->($entry->{object}->name);
     if (!$by_name{$name}) {
-      $by_name{$name} = 1;
+      $by_name{$name} = 'csv';
 
     } else {
-      push @{ $entry->{errors} }, $::locale->text('Duplicate');
+      push @{ $entry->{errors} }, $by_name{$name} eq 'db' ? $::locale->text('Duplicate in database') : $::locale->text('Duplicate in CSV file');
     }
   }
 }
@@ -81,4 +82,25 @@ sub save_objects {
   $self->SUPER::save_objects(data => $without_number);
 }
 
+sub field_lengths {
+  return ( name           => 75,
+           department_1   => 75,
+           department_2   => 75,
+           street         => 75,
+           zipcode        => 10,
+           city           => 75,
+           country        => 75,
+           contact        => 75,
+           phone          => 30,
+           fax            => 30,
+           account_number => 15,
+           bank_code      => 10,
+           language       => 5,
+           username       => 50,
+           ustid          => 14,
+           iban           => 100,
+           bic            => 100,
+         );
+}
+
 1;