X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FCsvImport%2FBase.pm;h=7f4326a07141f644e0821f6aba5d72aae1f29036;hb=be776964b83340e69fa2f02eae59b703c0c95b88;hp=fa3e4f43e0c848989296fd011f4775524dcf5d30;hpb=6e1582b8d7511735d585d22680e94f7c1963105b;p=kivitendo-erp.git 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;