Revision e428a414
Von Jan Büren vor etwa 7 Jahren hinzugefügt
t/datev/datev_format_2018.t | ||
---|---|---|
68 | 68 |
# check conversion to csv |
69 | 69 |
$datev1->from($startdate); |
70 | 70 |
$datev1->to($enddate); |
71 |
my ($datev_ref, $warnings_ref) = SL::DATEV::CSV->new(datev_lines => $datev1->generate_datev_lines, |
|
71 |
my ($datev_ref, $warnings_ref, $die_message); |
|
72 |
eval { |
|
73 |
($datev_ref, $warnings_ref) = SL::DATEV::CSV->new(datev_lines => $datev1->generate_datev_lines, |
|
72 | 74 |
from => $startdate, |
73 | 75 |
to => $enddate, |
74 | 76 |
locked => $datev1->locked, |
75 | 77 |
); |
76 |
my @warnings = $warnings_ref; |
|
77 |
is($warnings[0]->[0]->{untranslated}, |
|
78 |
'Wrong field value \'#1\' for field \'#2\' for the transaction with amount \'#3\'', 'wrong_encoding'); |
|
78 |
1; |
|
79 |
} or do { |
|
80 |
$die_message = $@; |
|
81 |
}; |
|
82 |
|
|
83 |
ok($die_message =~ m/Falscher Feldwert 'ݗݘݰݶ' für Feld 'belegfeld1' bei der Transaktion mit dem Umsatz von/, 'wrong_encoding'); |
|
79 | 84 |
|
80 | 85 |
|
81 |
# redefine invnumber, we have mixed encodings, should still generate a warning |
|
82 | 86 |
$invoice->invnumber('ݗݘݰݶmuh'); |
83 | 87 |
$invoice->save(); |
84 | 88 |
|
... | ... | |
91 | 95 |
$datev3->to($enddate); |
92 | 96 |
$datev3->generate_datev_data; |
93 | 97 |
$datev3->generate_datev_lines; |
94 |
my ($datev_ref2, $warnings_ref2) = SL::DATEV::CSV->new(datev_lines => $datev3->generate_datev_lines, |
|
98 |
my ($datev_ref2, $warnings_ref2, $die_message2); |
|
99 |
eval { |
|
100 |
($datev_ref2, $warnings_ref2) = SL::DATEV::CSV->new(datev_lines => $datev3->generate_datev_lines, |
|
95 | 101 |
from => $startdate, |
96 | 102 |
to => $enddate, |
97 | 103 |
locked => $datev3->locked, |
98 | 104 |
); |
105 |
1; |
|
106 |
} or do { |
|
107 |
$die_message2 = $@; |
|
108 |
}; |
|
99 | 109 |
|
100 |
|
|
101 |
|
|
102 |
@warnings = []; |
|
103 |
@warnings = $warnings_ref2; |
|
104 |
is($warnings[0]->[0]->{untranslated}, |
|
105 |
'Wrong field value \'#1\' for field \'#2\' for the transaction with amount \'#3\'', 'mixed_wrong_encoding'); |
|
106 |
|
|
107 |
|
|
110 |
# redefine invnumber, we have mixed encodings, should still fail |
|
111 |
ok($die_message2 =~ m/Falscher Feldwert 'ݗݘݰݶmuh' für Feld 'belegfeld1' bei der Transaktion mit dem Umsatz von/, 'mixed_wrong_encoding'); |
|
108 | 112 |
|
109 | 113 |
# create one haben buchung with GLTransaction today |
110 | 114 |
|
... | ... | |
145 | 149 |
)); |
146 | 150 |
|
147 | 151 |
my $gl_transaction = SL::DB::GLTransaction->new( |
148 |
reference => "Reisekosten März 2018",
|
|
152 |
reference => "Reise März 2018", |
|
149 | 153 |
description => "Reisekonsten März 2018 / Ma Schmidt", |
150 | 154 |
transdate => $today, |
151 | 155 |
gldate => $today, |
... | ... | |
176 | 180 |
|
177 | 181 |
my @data_csv = splice @{ $datev_ref3 }, 2, 5; |
178 | 182 |
@data_csv = sort { $a->[0] cmp $b->[0] } @data_csv; |
179 |
|
|
180 |
my $cp1252_posting_text = SL::Iconv::convert("UTF-8", "CP1252", 'Reisekosten März 2018'); |
|
181 |
cmp_bag($data_csv[0], [ 100, 'H', 'EUR', undef, undef, undef, '4660', '1000', 9, '1703', 'Reisekosten ', |
|
182 |
undef, undef, $cp1252_posting_text, undef, undef, undef, undef, undef, undef, undef, undef, |
|
183 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
184 |
undef, undef, '', undef, undef, undef, undef, undef, undef, undef, undef, |
|
185 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
186 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
187 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
188 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
189 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
190 |
undef, undef, undef, undef, undef ] |
|
183 |
cmp_bag($data_csv[0], [ 100, 'H', 'EUR', '', '', '', '4660', '1000', 9, '1703', 'Reise März 2', |
|
184 |
'', '', '', '', '', '', '', '', '', '', '', |
|
185 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
186 |
'', '', '', '', '', '', '', '', '', '', '', |
|
187 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
188 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
189 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
190 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
191 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
192 |
'', '', '', '', '' ] |
|
191 | 193 |
); |
192 | 194 |
|
193 | 195 |
done_testing(); |
t/datev/invoices.t | ||
---|---|---|
172 | 172 |
my @data_csv = splice @{ $datev_ref }, 2, 5; |
173 | 173 |
@data_csv = sort { $a->[0] cmp $b->[0] } @data_csv; |
174 | 174 |
|
175 |
my $cp1252_belegfeld1 = SL::Iconv::convert("UTF-8", "CP1252", 'Þ sales ¥& i'); |
|
176 |
my $cp1252_buchungstext = SL::Iconv::convert("UTF-8", "CP1252", 'Þ sales ¥& invöice'); |
|
177 |
|
|
178 |
cmp_bag($data_csv[1], [ 535, 'S', 'EUR', undef, undef, undef, '1400', '8300', undef, '0101', $cp1252_belegfeld1, |
|
179 |
undef, undef, $cp1252_buchungstext, undef, undef, undef, undef, undef, undef, undef, undef, |
|
180 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
181 |
undef, 'Crowd-Fu', 'Kostenst', undef, undef, undef, undef, undef, undef, undef, undef, |
|
182 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
183 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
184 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
185 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
186 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, |
|
187 |
undef, undef, undef, undef, undef ] |
|
175 |
cmp_bag($data_csv[1], [ 535, 'S', 'EUR', '', '', '', '1400', '8300', '', '0101', "\x{de} sales \x{a5}& i", |
|
176 |
'', '', '', '', '', '', '', '', '', '', '', |
|
177 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
178 |
'', 'Crowd-Fu', 'Kostenst', '', '', '', '', '', '', '', '', |
|
179 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
180 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
181 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
182 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
183 |
'', '', '', '', '', '', '', '', '', '', '', '', '', |
|
184 |
'', '', '', '', '' ] |
|
188 | 185 |
); |
189 | 186 |
|
190 |
cmp_bag($data_csv[0], [ '249,9', 'S', 'EUR', undef, undef, undef, '1400', '8400', undef, '0101', $cp1252_belegfeld1,
|
|
191 |
undef, undef, $cp1252_buchungstext, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
192 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
193 |
undef, 'Crowd-Fu', 'Kostenst', undef, undef, undef, undef, undef, undef, undef, undef,
|
|
194 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
195 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
196 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
197 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
198 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
199 |
undef, undef, undef, undef, undef ]
|
|
187 |
cmp_bag($data_csv[0], [ '249,9', 'S', 'EUR', '', '', '', '1400', '8400', '', '0101', "\x{de} sales \x{a5}& i",
|
|
188 |
'', '', '', '', '', '', '', '', '', '', '',
|
|
189 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
190 |
'', 'Crowd-Fu', 'Kostenst', '', '', '', '', '', '', '', '',
|
|
191 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
192 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
193 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
194 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
195 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
196 |
'', '', '', '', '' ]
|
|
200 | 197 |
); |
201 |
cmp_bag($data_csv[2], [ '784,9', 'S', 'EUR', undef, undef, undef, '1200', '1400', undef, '0501', $cp1252_belegfeld1,
|
|
202 |
undef, undef, $cp1252_buchungstext, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
203 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
204 |
undef, 'Crowd-Fu', 'Kostenst', undef, undef, undef, undef, undef, undef, undef, undef,
|
|
205 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
206 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
207 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
208 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
209 |
undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
|
|
210 |
undef, undef, undef, undef, undef ]
|
|
198 |
cmp_bag($data_csv[2], [ '784,9', 'S', 'EUR', '', '', '', '1200', '1400', '', '0501', "\x{de} sales \x{a5}& i",
|
|
199 |
'', '', '', '', '', '', '', '', '', '', '',
|
|
200 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
201 |
'', 'Crowd-Fu', 'Kostenst', '', '', '', '', '', '', '', '',
|
|
202 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
203 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
204 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
205 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
206 |
'', '', '', '', '', '', '', '', '', '', '', '', '',
|
|
207 |
'', '', '', '', '' ]
|
|
211 | 208 |
); |
212 | 209 |
my $march_9 = DateTime->new(year => 2017, month => 3, day => 9); |
213 | 210 |
my $invoice2 = create_sales_invoice( |
Auch abrufbar als: Unified diff
DATEV/CSV.pm Testfälle für aktuelle Überarbeitung angepasst
Ungültiges Encoding wirft jetzt hart einen Fehler
Keine undef-Werte mehr in der Datenstruktur
Unsinninge Iconvs und Encodes erstmal entfernt