use SL::Helper::DateTime;
use SL::Locale::String qw(t8);
use SL::Util qw(trim);
+use SL::VATIDNr;
use Rose::Object::MakeMethods::Generic (
scalar => [ qw(datev_lines from to locked warnings) ],
input_check => sub {
my ($ustid) = @_;
return 1 if ('' eq $ustid);
- $ustid =~ s{\s+}{}g;
- return ($ustid =~ m/^CH|^[A-Z]{2}\w{5,13}$/);
+ return SL::VATIDNr->validate($ustid);
},
formatter => sub { my ($input) = @_; $input =~ s/\s//g; return $input },
valid_check => sub {
my ($ustid) = @_;
return 1 if ('' eq $ustid);
- return ($ustid =~ m/^CH|^[A-Z]{2}\w{5,13}$/);
+ return SL::VATIDNr->validate($ustid);
},
}, # pos 40
{
valid_check => sub { my ($check) = @_; return ($check =~ m/^(0|1)$/) },
}, # pos 114
{
- kivi_datev_name => 'not yet implemented',
- },
+ kivi_datev_name => 'leistungsdatum',
+ csv_header_name => t8('Payment Date'),
+ max_length => 8,
+ type => 'Date',
+ default => '',
+ input_check => sub { my ($check) = @_; return 1 if ('' eq $check); return (ref (DateTime->from_kivitendo($check)) eq 'DateTime') },
+ formatter => sub { my ($input) = @_; return '' if ('' eq $input); return DateTime->from_kivitendo($input)->strftime('%d%m%Y') },
+ valid_check => sub { my ($check) = @_; return 1 if ('' eq $check); return ($check =~ m/^[0-9]{8}$/) },
+ }, # pos 115
{
kivi_datev_name => 'not yet implemented',
},