X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/f74b0dac7a8e55cc7a67c4a03a3ee229415b3fbd..15b2640059:/SL/Helper/Csv.pm diff --git a/SL/Helper/Csv.pm b/SL/Helper/Csv.pm index fc9ff2002..c58575afe 100644 --- a/SL/Helper/Csv.pm +++ b/SL/Helper/Csv.pm @@ -202,13 +202,13 @@ sub _check_header { my $h_aref = ($self->is_multiplexed)? $header : [ $header ]; my $p_num = 0; foreach my $h (@{ $h_aref }) { - my @names = ( - keys %{ $self->profile->[$p_num]->{profile} || {} }, - keys %{ $self->profile->[$p_num]->{mapping} || {} }, + my %names = ( + (map { $_ => $_ } keys %{ $self->profile->[$p_num]->{profile} || {} }), + (map { $_ => $self->profile->[$p_num]{mapping}{$_} } keys %{ $self->profile->[$p_num]->{mapping} || {} }), ); - for my $name (@names) { + for my $name (keys %names) { for my $i (0..$#$h) { - $h->[$i] = $name if lc $h->[$i] eq lc $name; + $h->[$i] = $names{$name} if lc $h->[$i] eq lc $name; } } $p_num++; @@ -341,6 +341,9 @@ sub _push_error { $self->_errors(\@new_errors); } +sub specs { + $_[0]->dispatcher->_specs +} 1; @@ -581,6 +584,9 @@ comply with the expected header identities. Without strict profiles, mappings can also directly map header fields that should end up in the same accessor. +With case insensitive headings, mappings will also modify the headers, to fit +the expected profile. + Mappings can be identical to known fields and will be prefered during lookup, but will not replace the field, meaning that: