X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/0ac8d01cb66f67974aea2a00cbccfa59d682752a..00bad502b1a95bafb98353c027bbd0baefc93e0c:/SL/DATEV/CSV.pm diff --git a/SL/DATEV/CSV.pm b/SL/DATEV/CSV.pm index c613267a7..ac1401a87 100644 --- a/SL/DATEV/CSV.pm +++ b/SL/DATEV/CSV.pm @@ -10,6 +10,7 @@ use SL::DB::Datev; use SL::DB::Chart; use SL::Helper::DateTime; use SL::Locale::String qw(t8); +use SL::Util qw(trim); use Rose::Object::MakeMethods::Generic ( scalar => [ qw(datev_lines from to locked warnings) ], @@ -102,7 +103,10 @@ my @kivitendo_to_datev = ( max_length => 12, type => 'Text', default => '', - input_check => sub { my ($text) = @_; check_encoding($text); }, + input_check => sub { return 1 unless $::instance_conf->get_datev_export_format eq 'cp1252'; + my ($text) = @_; check_encoding($text); }, + valid_check => sub { return 1 if $::instance_conf->get_datev_export_format eq 'cp1252'; + my ($text) = @_; check_encoding($text); }, formatter => sub { my ($input) = @_; return substr($input, 0, 12) }, }, { @@ -112,8 +116,8 @@ my @kivitendo_to_datev = ( type => 'Text', default => '', input_check => sub { my ($check) = @_; return 1 unless $check; return (ref (DateTime->from_kivitendo($check)) eq 'DateTime') }, - formatter => sub { my ($input) = @_; return DateTime->from_kivitendo($input)->strftime('%d%m%y') }, - valid_check => sub { my ($check) = @_; return ($check =~ m/^[0-9]{6}$/) }, + formatter => sub { my ($input) = @_; return '' unless $input; return trim(DateTime->from_kivitendo($input)->strftime('%e%m%y')) }, + valid_check => sub { my ($check) = @_; return 1 unless $check; return ($check =~ m/^[0-9]{5,6}$/) }, }, { kivi_datev_name => 'not yet implemented', @@ -126,8 +130,10 @@ my @kivitendo_to_datev = ( max_length => 60, type => 'Text', default => '', - input_check => sub { my ($text) = @_; return 1 unless $text; check_encoding($text); }, - formatter => sub { my ($input) = @_; return substr($input, 0, 60) }, + input_check => sub { return 1 unless $::instance_conf->get_datev_export_format eq 'cp1252'; + my ($text) = @_; check_encoding($text); }, + valid_check => sub { return 1 if $::instance_conf->get_datev_export_format eq 'cp1252'; + my ($text) = @_; check_encoding($text); }, }, # pos 14 { kivi_datev_name => 'not yet implemented', @@ -243,6 +249,252 @@ my @kivitendo_to_datev = ( return ($ustid =~ m/^CH|^[A-Z]{2}\w{5,13}$/); }, }, # pos 40 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, # pos 50 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, # pos 60 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, # pos 70 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, # pos 80 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, # pos 90 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, # pos 100 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, # pos 110 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'locked', + csv_header_name => t8('Lock'), + max_length => 1, + type => 'Number', + default => 1, + valid_check => sub { my ($check) = @_; return ($check =~ m/^(0|1)$/) }, + }, # pos 114 + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, + { + kivi_datev_name => 'not yet implemented', + }, # pos 120 ); sub new { @@ -548,4 +800,3 @@ becaus warnings are generated after the call to lines: my $lines = $datev_csv->lines; die if @{ $datev_csv->warnings }; somethin_with($lines); -