max_length => 13,
type => 'Value',
required => 1,
- input_check => sub { my ($input) = @_; return (looks_like_number($input) && length($input) <= 13 && $input > 0) },
+ input_check => sub { my ($input) = @_; return (looks_like_number($input) && length($input) <= 13 && $input >= 0) },
formatter => \&_format_amount,
valid_check => sub { my ($check) = @_; return ($check =~ m/^\d{1,10}(\,\d{1,2})?$/) },
},
formatter => sub { my ($input) = @_; return substr($input, 0, 12) },
},
{
- kivi_datev_name => 'belegfeld2',
+ kivi_datev_name => 'not yet implemented',
csv_header_name => t8('Invoice Field 2'),
max_length => 12,
type => 'Text',
default => '',
- input_check => sub { my ($check) = @_; return (ref (DateTime->from_kivitendo($check)) eq 'DateTime') },
- formatter => sub { my ($input) = @_; return DateTime->from_kivitendo($input)->strftime('%d%m') },
- valid_check => sub { my ($check) = @_; return ($check =~ m/^[0-9]{4}$/) },
+ valid_check => sub { my ($check) = @_; return ($check =~ m/[ -~]{1,12}/) },
},
{
kivi_datev_name => 'not yet implemented',
max_length => 15,
type => 'Text',
default => '',
- input_check => sub { my ($check) = @_; return ($check eq '' || $check =~ m/[A-Z]{2}\w{5,13}/) },
- formatter => sub { my ($input) = @_; $input =~ s/\s//g; return $input },
+ 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) = @_;
return 1 if ('' eq $ustid);
}
my @header_row_1 = (
- "EXTF", "300", 21, "Buchungsstapel", 7, $created_on, "", "ki",
+ "EXTF", "510", 21, "Buchungsstapel", 7, $created_on, "", "ki",
"kivitendo-datev", "", $meta_datev{beraternr}, $meta_datev{mandantennr},
$self->first_day_of_fiscal_year->ymd(''), $length_of_accounts,
$self->from->ymd(''), $self->to->ymd(''), "", "", 1, "", $self->locked,