From: Moritz Bunkus Date: Mon, 7 Nov 2016 13:59:25 +0000 (+0100) Subject: CSV-Import Kunden: Verkäufer über Login setzen können X-Git-Tag: release-3.5.4~985 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=edb23acf85cfc3780950660d5e2cf82ddb0f82d1;p=kivitendo-erp.git CSV-Import Kunden: Verkäufer über Login setzen können Bei Verkäufernamen und -logins (Spalten »salesman« und »salesman_login«) wird absichtlich nicht zwischen Groß- und Kleinschreibung unterschieden. Technisch betrachtet unterscheidet kivitendo zwar bei Loginnamen zwischen Groß- und Kleinschreibung, aber in der Praxis legt niemand zwei Benutzer*innen an, deren Login sich nur in der Groß-/Kleinschreibung unterscheidet. Sie zu ignorieren macht die Interaktion mit anderen Systemen leichter und erspart einen Zwischenschritt an Bearbeitung. --- diff --git a/SL/Controller/CsvImport/CustomerVendor.pm b/SL/Controller/CsvImport/CustomerVendor.pm index af2e5c864..0f2b5294d 100644 --- a/SL/Controller/CsvImport/CustomerVendor.pm +++ b/SL/Controller/CsvImport/CustomerVendor.pm @@ -7,6 +7,7 @@ use SL::Controller::CsvImport::Helper::Consistency; use SL::DB::Business; use SL::DB::CustomVariable; use SL::DB::CustomVariableConfig; +use SL::DB::Employee; use SL::DB::PaymentTerm; use SL::TransNumber; @@ -53,7 +54,7 @@ sub init_languages_by { sub init_salesmen_by { my ($self) = @_; - return { map { my $col = $_; ( $col => { map { ( $_->$col => $_ ) } @{ SL::DB::Manager::Employee->get_all } } ) } qw(id name) }; + return { map { my $col = $_; ( $col => { map { ( lc($_->$col) => $_ ) } @{ SL::DB::Manager::Employee->get_all } } ) } qw(id name login) }; } sub check_objects { @@ -218,8 +219,9 @@ sub check_salesman { } # Map name to ID if given. - if (!$object->salesman_id && $entry->{raw_data}->{salesman}) { - my $salesman = $self->salesmen_by->{name}->{ $entry->{raw_data}->{salesman} }; + if (!$object->salesman_id && ($entry->{raw_data}->{salesman} || $entry->{raw_data}->{salesman_login})) { + my $salesman = $self->salesmen_by->{name} ->{ lc($entry->{raw_data}->{salesman}) } + // $self->salesmen_by->{login}->{ lc($entry->{raw_data}->{salesman_login}) }; if (!$salesman) { push @{ $entry->{errors} }, $::locale->text('Error: Invalid salesman'); @@ -264,7 +266,7 @@ sub init_profile { my $profile = $self->SUPER::init_profile; delete @{$profile}{qw(business datevexport language payment delivery_term taxincluded terms)}; - delete @{$profile}{qw(salesman salesman_id)} if $::instance_conf->get_vertreter; + delete @{$profile}{qw(salesman salesman_id salesman_login)} if $::instance_conf->get_vertreter; return $profile; } @@ -323,10 +325,10 @@ sub setup_displayable_columns { ); if (!$::instance_conf->get_vertreter) { - $self->add_displayable_columns({ name => 'salesman_id', description => $::locale->text('Salesman (database ID)') }); - $self->add_displayable_columns({ name => 'salesman', description => $::locale->text('Salesman') }); + $self->add_displayable_columns({ name => 'salesman', description => $::locale->text('Salesman') }, + { name => 'salesman_id', description => $::locale->text('Salesman (database ID)') }, + { name => 'salesman_login', description => $::locale->text('Salesman (login)') }); } - } # TODO: diff --git a/locale/de/all b/locale/de/all index 2f22d9616..889ce2689 100755 --- a/locale/de/all +++ b/locale/de/all @@ -1219,7 +1219,7 @@ $self->{texts} = { 'Error: Invalid price factor' => 'Fehler: Preisfaktor ungültig', 'Error: Invalid price group' => 'Fehler: Preisgruppe ungültig', 'Error: Invalid project' => 'Fehler: Projekt ungültig', - 'Error: Invalid salesman' => 'Fehler: Ungültiger Verkäufer', + 'Error: Invalid salesman' => 'Fehler: ungültige Verkäufer/in', 'Error: Invalid shipto' => 'Fehler: Lieferadresse ungültig', 'Error: Invalid tax zone' => 'Fehler: Steuerzone ungültig', 'Error: Invalid unit' => 'Fehler: Einheit ungültig', @@ -2526,7 +2526,9 @@ $self->{texts} = { 'Sales quotation #1 has been deleted.' => 'Angebot #1 wurde gelöscht.', 'Sales quotation #1 has been updated.' => 'Angebot #1 wurde aktualisiert.', 'Salesman' => 'Verkäufer/in', - 'Salesman (database ID)' => 'Verkäufer (Datenbank-ID)', + 'Salesman (ID)' => 'Verkäufer/in (ID)', + 'Salesman (database ID)' => 'Verkäufer/in (Datenbank-ID)', + 'Salesman (login)' => 'Verkäufer/in (Login)', 'Salesperson' => 'Verkäufer', 'Same Filename !' => 'unveränderter Dateiname !', 'Same as the quote character' => 'Wie Anführungszeichen',