Auf alle Fehler auf einmal testen und nicht beim ersten abbrechen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 3 Mar 2011 08:43:47 +0000 (09:43 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 16 Jun 2011 07:30:04 +0000 (09:30 +0200)
SL/Controller/CsvImport/CustomerVendor.pm
SL/Controller/CsvImport/Part.pm

index e8cfc36..66a0f1b 100644 (file)
@@ -52,12 +52,14 @@ sub check_objects {
   foreach my $entry (@{ $self->controller->data }) {
     my $object = $entry->{object};
 
-    next unless $self->check_name($entry);
-    next unless $self->check_language($entry);
-    next unless $self->check_business($entry);
-    next unless $self->check_payment($entry);
+    $self->check_name($entry);
+    $self->check_language($entry);
+    $self->check_business($entry);
+    $self->check_payment($entry);
     $self->handle_cvars($entry);
 
+    next if @{ $entry->{errors} };
+
     if ($vcs_by_number{ $object->$numbercolumn }) {
       $entry->{object}->$numbercolumn('####');
     } else {
index 6de1a07..4f1278a 100644 (file)
@@ -103,14 +103,14 @@ sub check_objects {
   return unless @{ $self->controller->data };
 
   foreach my $entry (@{ $self->controller->data }) {
-    next unless $self->check_buchungsgruppe($entry);
-    next unless $self->check_type($entry);
-    next unless $self->check_unit($entry);
-    next unless $self->check_price_factor($entry);
-    next unless $self->check_payment($entry);
-    next unless $self->check_packing_type($entry);
-    next unless $self->check_partsgroup($entry);
-    $self->check_existing($entry);
+    $self->check_buchungsgruppe($entry);
+    $self->check_type($entry);
+    $self->check_unit($entry);
+    $self->check_price_factor($entry);
+    $self->check_payment($entry);
+    $self->check_packing_type($entry);
+    $self->check_partsgroup($entry);
+    $self->check_existing($entry) unless @{ $entry->{errors} };
     $self->handle_prices($entry) if $self->settings->{sellprice_adjustment};
     $self->handle_shoparticle($entry);
     $self->handle_translations($entry);
@@ -226,7 +226,7 @@ sub check_type {
   my ($self, $entry) = @_;
 
   my $bg = $self->bg_by->{id}->{ $entry->{object}->buchungsgruppen_id };
-  die "Program logic error" if !$bg;
+  $bg  ||= SL::DB::Buchungsgruppe->new(inventory_accno_id => 1, income_accno_id_0 => 1, expense_accno_id_0 => 1);
 
   my $type = $self->settings->{parts_type};
   if ($type eq 'mixed') {