From: Sven Schöling Date: Mon, 2 May 2011 10:30:19 +0000 (+0200) Subject: Bugfix: Subcent Buchungen führten zu unbalanced ledger in DATEV Export. X-Git-Tag: release-2.6.3~28^2~6 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=0802cc15e703f9fec7d531a37827003e026c1667;p=kivitendo-erp.git Bugfix: Subcent Buchungen führten zu unbalanced ledger in DATEV Export. Wenn eine 1 cent Buchung auf ein normal versteuertes Konto gebucht wurde tauchten die Buchungen in der folgenden Reihenfolge in der Datenbank auf: -0.00840 -0.00160 +0.01000 Der Algorithmus, der die Buchungen aufsummiert, ist aus historischen Gründen recht nachgiebig und bricht das aufsummieren ab, sobald die Summe der bisherigen Buchungen kleiner ist als ein Cent. In diesem Fall ist das schon nach der ersten Buchung der Fall, und bei der dritten Buchung wird dann ein unbalanced ledger Fehler geworfen. Der Fix prüft auf solche kleinen Werte und wechselt dafür in einen subcent Modus, in dem auf zehntel Cent geprüft wird. --- diff --git a/SL/DATEV.pm b/SL/DATEV.pm index 60eb97f90..775d4dff7 100644 --- a/SL/DATEV.pm +++ b/SL/DATEV.pm @@ -399,8 +399,9 @@ sub _get_transactions { my $count = $ref->{amount}; my $firstrun = 1; + my $subcent = abs($count) < 0.02; - while (abs($count) > 0.01 || $firstrun) { + while (abs($count) > 0.01 || $firstrun || ($subcent && abs($count) > 0.001)) { my $ref2 = $sth->fetchrow_hashref("NAME_lc"); last unless ($ref2);