From 4249eeff3d68e15d74cbba40529a73f6b06e971e Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Mon, 15 Apr 2013 15:06:16 +0200 Subject: [PATCH] =?utf8?q?CSV-Import=20Kunden/Lieferanten:=20Ung=C3=BCltig?= =?utf8?q?e=20Zeichen=20(\r\n)=20durch=20Leerzeichen=20ersetzen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- SL/Controller/CsvImport/Base.pm | 17 +++++++++++++++++ SL/Controller/CsvImport/CustomerVendor.pm | 6 ++++++ locale/de/all | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/SL/Controller/CsvImport/Base.pm b/SL/Controller/CsvImport/Base.pm index 68d35d89d..eb46b26d5 100644 --- a/SL/Controller/CsvImport/Base.pm +++ b/SL/Controller/CsvImport/Base.pm @@ -422,4 +422,21 @@ sub fix_field_lengths { } } +sub clean_fields { + my ($self, $illegal_chars, $object, @fields) = @_; + + my @cleaned_fields; + foreach my $field (grep { $object->can($_) } @fields) { + my $value = $object->$field; + $::lxdebug->message(0, "field $field value $value ill $illegal_chars"); + + next unless defined($value) && ($value =~ s/$illegal_chars/ /g); + + $object->$field($value); + push @cleaned_fields, $field; + } + + return @cleaned_fields; +} + 1; diff --git a/SL/Controller/CsvImport/CustomerVendor.pm b/SL/Controller/CsvImport/CustomerVendor.pm index 0d6db32c5..f8774dcfc 100644 --- a/SL/Controller/CsvImport/CustomerVendor.pm +++ b/SL/Controller/CsvImport/CustomerVendor.pm @@ -69,6 +69,12 @@ sub check_objects { next if @{ $entry->{errors} }; + my @cleaned_fields = $self->clean_fields(qr{[\r\n]}, $object, qw(name department_1 department_2 street zipcode city country contact phone fax homepage email cc bcc + taxnumber account_number bank_code bank username greeting)); + + push @{ $entry->{information} }, $::locale->text('Illegal characters have been removed from the following fields: #1', join(', ', @cleaned_fields)) + if @cleaned_fields; + my $existing_vc = $vcs_by_number{ $object->$numbercolumn }; if (!$existing_vc) { $vcs_by_number{ $object->$numbercolumn } = $object; diff --git a/locale/de/all b/locale/de/all index e4596339d..fc4697814 100644 --- a/locale/de/all +++ b/locale/de/all @@ -993,7 +993,7 @@ $self->{texts} = { 'If you want to change any of these parameters then press the "Back" button, edit the file "config/kivitendo.conf" and login into the admin module again.' => 'Wenn Sie einen der Parameter ändern wollen, so drücken Sie auf den "Zurück"-Button, bearbeiten Sie die Datei "config/kivitendo.conf", und melden Sie sich erneut im Administrationsbereich an.', 'If you want to delete such a dataset you have to edit the user(s) that are using the dataset in question and have them use another dataset.' => 'Wenn Sie eine solche Datenbank löschen wollen, so müssen Sie zuerst die Benutzer bearbeiten, die die fragliche Datenbank benutzen, und sie so ändern, dass sie eine andere Datenbank benutzen.', 'If you want to set up the authentication database yourself then log in to the administration panel. kivitendo will then create the database and tables for you.' => 'Wenn Sie die Authentifizierungs-Datenbank selber einrichten wollen, so melden Sie sich im Administrationsbereich an. kivitendo wird dann die Datenbank und die erforderlichen Tabellen für Sie anlegen.', - 'Illegal characters have been removed from the following fields: #1' => '', + 'Illegal characters have been removed from the following fields: #1' => 'Ungültige Zeichen wurden aus den folgenden Feldern entfernt: #1', 'Image' => 'Grafik', 'Import' => 'Import', 'Import CSV' => 'CSV-Import', -- 2.20.1