X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/f74b0dac7a8e55cc7a67c4a03a3ee229415b3fbd..fdebfd5d0c558cb156849b01c9c9268b29dc443b:/SL/Helper/Csv/Dispatcher.pm diff --git a/SL/Helper/Csv/Dispatcher.pm b/SL/Helper/Csv/Dispatcher.pm index a063103ba..801e8229f 100644 --- a/SL/Helper/Csv/Dispatcher.pm +++ b/SL/Helper/Csv/Dispatcher.pm @@ -99,8 +99,8 @@ sub apply { } sub is_known { - my ($self, $col) = @_; - return grep { $col eq $_->{key} } $self->_specs; + my ($self, $col, $row) = @_; + return grep { $col eq $_->{key} } @{ $self->_specs->[$row // 0] }; } sub parse_profile { @@ -130,7 +130,7 @@ sub parse_profile { sub _parse_profile { my ($self, %params) = @_; - my $profile = $params{profile}; + my $profile = $params{profile} // {}; my $class = $params{class}; my $header = $params{header}; my $mapping = $params{mapping}; @@ -141,7 +141,7 @@ sub _parse_profile { next unless $col; if (exists $mapping->{$col} && $profile->{$mapping->{$col}}) { push @specs, $self->make_spec($col, $profile->{$mapping->{$col}}, $class); - } elsif (exists $mapping->{$col}) { + } elsif (exists $mapping->{$col} && !%{ $profile }) { push @specs, $self->make_spec($col, $mapping->{$col}, $class); } elsif (exists $profile->{$col}) { push @specs, $self->make_spec($col, $profile->{$col}, $class); @@ -160,7 +160,7 @@ sub _parse_profile { sub make_spec { my ($self, $col, $path, $cur_class) = @_; - my $spec = { key => $col, steps => [] }; + my $spec = { key => $col, path => $path, steps => [] }; return unless $path;