X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/98f37c1019ea0e80d5a45a5633a0a182a43cbf9a..b2930e37cd4bfd276be6c785e1cd7fff0f503aef:/SL/Controller/CsvImport.pm?ds=inline diff --git a/SL/Controller/CsvImport.pm b/SL/Controller/CsvImport.pm index 29947a19b..681ebdd47 100644 --- a/SL/Controller/CsvImport.pm +++ b/SL/Controller/CsvImport.pm @@ -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;