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

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.