X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/39d85854d0a01b19522366dc22e784b28a85f336..b16b33c220a567bf8a8b998ff69d44d380b0a181:/SL/Controller/CsvImport/Base.pm diff --git a/SL/Controller/CsvImport/Base.pm b/SL/Controller/CsvImport/Base.pm index fa3e4f43e..7f4326a07 100644 --- a/SL/Controller/CsvImport/Base.pm +++ b/SL/Controller/CsvImport/Base.pm @@ -153,6 +153,10 @@ sub init_all_vc { vendors => SL::DB::Manager::Vendor->get_all }; } +sub force_allow_columns { + return (); +} + sub init_vc_by { my ($self) = @_; @@ -222,6 +226,8 @@ sub init_profile { eval "require " . $self->class; my %unwanted = map { ( $_ => 1 ) } (qw(itime mtime), map { $_->name } @{ $self->class->meta->primary_key_columns }); + delete $unwanted{$_} for ($self->force_allow_columns); + my %profile; for my $col ($self->class->meta->columns) { next if $unwanted{$col}; @@ -422,5 +428,20 @@ sub fix_field_lengths { } } -1; +sub clean_fields { + my ($self, $illegal_chars, $object, @fields) = @_; + + my @cleaned_fields; + foreach my $field (grep { $object->can($_) } @fields) { + my $value = $object->$field; + next unless defined($value) && ($value =~ s/$illegal_chars/ /g); + + $object->$field($value); + push @cleaned_fields, $field; + } + + return @cleaned_fields; +} + +1;