]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Controller/CsvImport.pm
Fehler korrekt weiterleiten
[mfinanz.git] / SL / Controller / CsvImport.pm
index 29947a19b42e1afb66a6d3031367e8ee393ea4e5..681ebdd4714f00f90ba896d482107d07509ca0fc 100644 (file)
@@ -93,10 +93,10 @@ sub action_result {
     flash('error', $::locale->text('There was an error parsing the csv file: #1 in line #2.', $first_error->[2], $first_error->[0]));
   }
 
-  if (!$data->{progress}{finished}) {
-    $self->render('csv_import/_deferred_results', { no_layout => 1 });
-  } else {
+  if ($data->{progress}{finished} || $data->{errors}) {
     $self->action_report(report_id => $data->{report_id}, no_layout => 1);
+  } else {
+    $self->render('csv_import/_deferred_results', { no_layout => 1 });
   }
 }
 
@@ -342,14 +342,29 @@ sub save_report {
   my $sth2 = $dbh->prepare($query2);
 
   # save headers
-  my @headers = (
-    grep({ $self->info_headers->{used}->{$_}     } @{ $self->info_headers->{headers} }),
-    grep({ $self->headers->{used}->{$_}          } @{ $self->headers->{headers} }),
-    grep({ $self->raw_data_headers->{used}->{$_} } @{ $self->raw_data_headers->{headers} }),
+  my (@headers, @info_methods, @raw_methods, @methods);
+
+  for my $i (0 .. $#{ $self->info_headers->{headers} }) {
+    next unless         $self->info_headers->{used}->{ $self->info_headers->{headers}->[$i] };
+    push @headers,      $self->info_headers->{headers}->[$i];
+    push @info_methods, $self->info_headers->{methods}->[$i];
+  }
+  for my $i (0 .. $#{ $self->headers->{headers} }) {
+    next unless         $self->headers->{used}->{ $self->headers->{headers}->[$i] };
+    push @headers,      $self->headers->{headers}->[$i];
+    push @methods,      $self->headers->{methods}->[$i];
+  }
+  for my $i (0 .. $#{ $self->raw_data_headers->{headers} }) {
+    next unless         $self->raw_data_headers->{used}->{ $self->raw_data_headers->{headers}->[$i] };
+    push @headers,      $self->raw_data_headers->{headers}->[$i];
+    push @raw_methods,  $self->raw_data_headers->{headers}->[$i];
+  }
+
+  $::lxdebug->dump(0,  "methods",
+    [ \@info_methods,
+     \@methods,
+     \@raw_methods  ]
   );
-  my @info_methods = grep { $self->info_headers->{used}->{$_}     } @{ $self->info_headers->{headers} };
-  my @methods      = grep { $self->headers->{used}->{$_}          } @{ $self->headers->{methods} };
-  my @raw_methods  = grep { $self->raw_data_headers->{used}->{$_} } @{ $self->raw_data_headers->{headers} };
 
   $sth->execute($report->id, $_, 0, $headers[$_]) for 0 .. $#headers;