Erstellt vor 6 Jahren
Zuletzt geändert vor 3 Jahren
#965 closed Fehler (duplicate)
Nicht gerungedete Steuern
| Erstellt von: | roman.biliz@… | Verantwortlicher: | p.reetz@… |
|---|---|---|---|
| Priorität: | sehr hoch | Meilenstein: | |
| Komponente: | kivitendo ERP | Version: | 2.6.2 unstable |
| Schweregrad: | kritisch | Stichworte: | Finanzbuchhaltung |
| Beobachter: | roman.karuschka@… |
Beschreibung
Durch die Prüfung der Buchungsätze in der Datenbank ist aufgefallen, dass es Buchungen mit fünf Nachkommastellen gibt. Perl rundet die Zahlen nicht selbst, er schneidet den Rest einfach ab.
Die meisten Sachen werden von Hand eingegeben, die Steuern werden vom System errechnet. Vor der Weitergabe müssen diese gerundet werden.
Genaue Beschreibung des Problems: http://forum.lx-office.org/index.php?id=7557
Habe in der Datei gl.pl probiert die Steuern zu runden, es scheint zu klappen.
Originaltext:
Perl rundet die Zahlen nicht alleine, und beim Addieren schneidet den unnötigen Rest einfach ab. Beim Erstellen einer Buchung werden Steuern ausgerechnet und verbucht. Diese waren nicht gerundet. In der Datenbank gab es Buchungen mit fünf Nachkommastellen. Einige haben schon berichtet, dass sie einen Bilanzfehler von 3 Cent haben. Das summiert sich dann. Man kann sich auf den Kopf stellen, den Fehler kriegt man aus der Buchführung nur schwer raus. Es stimmt alles außer Bilanzsumme.
Dem Problem auf den Grund gegangen, gl.pl angepasst. Jetzt scheint es zu funktionieren.
Ich kenne mich mit den Programm noch nicht besonders gut aus, nach dem ich die Steuern in der gl.pl gerundet habe scheint es jetzt richtig zu buchen. Vorher hatte ich unbegründete Buchungen in der Datenbank. Habe ca. zwanzig Testbuchungen in allen Variationen verbucht, alle waren richtig.
Stelle 1:
if ($form->{taxincluded}) {
$taxnotroundet = $amount / ($rate + 1) * $rate;
$form->{"tax_$i"} = sprintf("%.2f" , $taxnotroundet);
# $form->{"tax_$i"} = $amount / ($rate + 1) * $rate;
if ($debitcredit) {
$form->{"debit_$i"} = $form->{"debit_$i"} - $form->{"tax_$i"};
} else {
$form->{"credit_$i"} = $form->{"credit_$i"} - $form->{"tax_$i"};
}
} else {
$taxnotroundet = $amount * $rate;
$form->{"tax_$i"} = sprintf("%.2f" , $taxnotroundet);
# $form->{"tax_$i"} = $amount * $rate;
}
Stelle 2:
if ($form->{taxincluded}) {
# $form->{"tax_$i"} = $amount / ($rate + 1) * $rate;
$taxnotroundet = $amount / ($rate + 1) * $rate;
$form->{"tax_$i"} = sprintf("%.2f" , $taxnotroundet);
} else {
# $form->{"tax_$i"} = $amount * $rate;
$taxnotroundet = $amount * $rate;
$form->{"tax_$i"} = sprintf("%.2f" , $taxnotroundet);
}
Änderungshistorie (2)
comment:1 Geändert vor 6 Jahren durch roman.biliz@…
- Priorität von Normal nach Kritisch geändert
comment:2 Geändert vor 3 Jahren durch roman.karuschka@…
- Lösung auf duplicate gesetzt
- Status von new nach closed, roman.karuschka@ok-it-services.de geändert

Verweise auf #1671 und #1691, Rundungsprobleme sind ein komplexes und vielseitige Thema in LXO-Office.
Schliesse diesen Bug hier um die Bearbeitung unter einem der o.g. Bugs zusammenzufuehren