X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FHelper%2FCsv.pm;h=0d471eb09b740865de3d848a7db96770d6768275;hb=549f187d3a2b1d15f96c4556714666ed954447bb;hp=2444225ca370d59ea4f18b8f5f42ce0e97817860;hpb=3c90e4c5f6a94d7486a0617d1bd77c417da12677;p=kivitendo-erp.git diff --git a/SL/Helper/Csv.pm b/SL/Helper/Csv.pm index 2444225ca..0d471eb09 100644 --- a/SL/Helper/Csv.pm +++ b/SL/Helper/Csv.pm @@ -114,6 +114,7 @@ sub _check_multiplexed { # Each profile needs a class and a row_ident my $info_ok = all { defined $_->{class} && defined $_->{row_ident} } @profile; $self->_push_error([ + undef, 0, "missing class or row_ident in one of the profiles for multiplexed data", 0, @@ -125,6 +126,7 @@ sub _check_multiplexed { my @header = @{ $self->header }; my $t_ok = scalar @profile == scalar @header; $self->_push_error([ + undef, 0, "number of headers and number of profiles must be the same for multiplexed data", 0, @@ -133,6 +135,7 @@ sub _check_multiplexed { $t_ok = all { scalar @$_ > 0} @header; $self->_push_error([ + undef, 0, "no empty headers are allowed for multiplexed data", 0, @@ -231,7 +234,8 @@ sub _check_multiplex_datatype_position { $self->_multiplex_datatype_position($first_pos); return 1; } else { - $self->_push_error([0, + $self->_push_error([undef, + 0, "datatype field must be at the same position for all datatypes for multiplexed data", 0, 0]); @@ -239,6 +243,10 @@ sub _check_multiplex_datatype_position { } } +sub _is_empty_row { + return !!all { !$_ } @{$_[0]}; +} + sub _parse_data { my ($self, %params) = @_; my (@data, @errors); @@ -246,9 +254,11 @@ sub _parse_data { while (1) { my $row = $self->_csv->getline($self->_io); if ($row) { + next if _is_empty_row($row); my $header = $self->_header_by_row($row); if (!$header) { push @errors, [ + undef, 0, "Cannot get header for row. Maybe row name and datatype field not matching.", 0, @@ -497,7 +507,7 @@ See section L for information on this topic. =item C -If set, the import will ignore unkown header columns. Useful for lazy imports, +If set, the import will ignore unknown header columns. Useful for lazy imports, but deactivated by default. =item C