From: Moritz Bunkus Date: Fri, 15 Dec 2017 08:50:44 +0000 (+0100) Subject: DATEV: `input_check` für UStID an `formatter`+`valid_check` angepasst X-Git-Tag: release-3.5.4~580 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=4be32a52cae7fbdb06ea0b8c2d3d03f42f90730e;p=kivitendo-erp.git DATEV: `input_check` für UStID an `formatter`+`valid_check` angepasst Die Kombination aus `formatter`+`valid_check` kann UStIDs richtig behandeln, die Leerzeichen enthalten. Daher muss der vorher laufende `input_check` Leerzeichen ebenfalls ignorieren. Weiterhin muss der `input_check` auch das gleiche Format erlauben, das `valid_check` später auch erlaubt — bezogen auf verschiedene Formate in verschiedenen Ländern. So enhält z.B. der `valid_check` eine Ausnahme für die Schweiz, für die nur erforderlich ist, dass die UStID mit `CH` beginnt. Der `input_check` hingegen hat weiterhin darauf bestanden, dass dahinter zwischen fünf und 13 Wortzeichen kommen. --- diff --git a/SL/DATEV/CSV.pm b/SL/DATEV/CSV.pm index bc8f1bd01..c06ee7040 100644 --- a/SL/DATEV/CSV.pm +++ b/SL/DATEV/CSV.pm @@ -228,7 +228,12 @@ my @kivitendo_to_datev = ( max_length => 15, type => 'Text', default => '', - input_check => sub { my ($check) = @_; return ($check eq '' || $check =~ m/[A-Z]{2}\w{5,13}/) }, + input_check => sub { + my ($ustid) = @_; + return 1 if ('' eq $ustid); + $ustid =~ s{\s+}{}g; + return ($ustid =~ m/^CH|^[A-Z]{2}\w{5,13}$/); + }, formatter => sub { my ($input) = @_; $input =~ s/\s//g; return $input }, valid_check => sub { my ($ustid) = @_;