Erstellt vor 4 Jahren
Zuletzt geändert vor 2 Jahren
#1691 new Fehler
Rundung bei Berichten bei Buchungen mit MwSt inkl.
| Erstellt von: | grichardson@… | Verantwortlicher: | m.bunkus@… |
|---|---|---|---|
| Priorität: | normal | Meilenstein: | |
| Komponente: | kivitendo ERP | Version: | 2.7.0 unstable |
| Schweregrad: | schwerwiegend | Stichworte: | Finanzbuchhaltung |
| Beobachter: | hli@…, s.schoeling@…, roman.karuschka@… |
Beschreibung
Beispiel: 5x per Dialogbuchung eine Stromrechnung zu 172,71 mit MwSt?. inklusive gebucht, ergibt an Oberfläche 27,58€ Steuer. (Siehe Screenshot)
Gespeichert wird in der DB ungerundet auf 5 Stellen genau:
172.71 / 1.19 = 145.13445
und 27.57555 Steuer
Ziehe ich einen Kontenbericht werden die Einzelbuchungen auf 2 Stellen gerundet angezeigt (5 * 145.13 = 725.65), die Summe der ungerundeten Zahlen ergibt aber 725.67, was auch im Bericht so angezeigt wird (siehe Screenshot).
Die dargestellten/berechneten Zahlen sind innerhalb on Lx-Office also inkonsistent.
Nutzt man den DATEV-Export wird auch 145.13 exportiert, dann Stimmen die Summen auch nicht mehr mit dem Ergebnis von Lx-Office überein.
Was könnte man machen:
Ohne Daten zu verändern könnte man beim Kontenbericht entweder direkt schon die Zahlen gerundet aus der Datenbank auslesen, was an mehreren Stellen passieren müßte
round(amount,2)
oder im Falle des Kontenberichts könnte man einfach das Ergebnisarray nachträglich durchgehen:
$ca->{amount} = $form->round_amount($ca->{amount}, 2);
round_amount klappt allerdings nicht, wenn die Werte schon aufsummiert aus der Datenbank kommen, da hilft nur ein
SUM(round(a.amount,2))
direkt im SQL.
Ändert man den Kontenbericht müßte man dann aber, um Lx-Office konsistent zu halten, auch die anderen Berichte (SuSa?, GuV, Bilanz, ...) entsprechend anpassen.
Insgesamt einfacher wäre es für diesen Fall, wenn man die Daten immer nur mit zwei Nachkommastellen und schon korrekt gerundet in der DB speichert.
Ein ähnliche Problematik gab es ja schon an anderer Stelle, aber soweit erst mal hierzu.
Anhänge (2)
Änderungshistorie (10)
Geändert vor 4 Jahren durch grichardson@…
comment:1 Geändert vor 4 Jahren durch grichardson@…
siehe auch Bugs 1671 und 1666.
comment:2 Geändert vor 3 Jahren durch roman.karuschka@…
- Beobachter hli@… hinzugefügt
comment:3 Geändert vor 3 Jahren durch roman.karuschka@…
- Beobachter roman.karuschka@… hinzugefügt
Ich versuche gerade mal alle Bugs die mit diesem Thema zusammenhaengen auf einen zu konzentrieren damit uebersichtlicher wird wo das Problem eigentlich herkommt, naemlich aus verschiedenen kaufmaennischen, mathematischen und programmiertechnischen Ansaetzen
Der Kaufmann sagt:
- "Ich runde nicht, ich schneide ab 2,9 + 2,9 ist bei mir eben 4"
Der Mathematiker sagt:
- "Ich runde alles unter ",5" ab, alles ab ",5" auf. Wenn ich 2,5 + 2,5 habe ist das Ergebnis bei mir eben 6"
Der Programmierer sagt:
- Das ist mir alles zu kompliziert, ich mache einfach irgendwas was mir gefaellt und logisch scheint.
Die ersten beiden produzieren zusammen zwei Loesungen, fuer jeden weiteren ueber die Jahre in LXO involvierten Programmierer gibt es gefuehlte 1,3 Loesungen. Und die DATEV macht eh was wie will.
comment:4 Geändert vor 3 Jahren durch roman.karuschka@…
Auch Verweis auf lesenswerten 1671 fuer diese Diskussion und die Rundungsthematik
comment:5 Geändert vor 3 Jahren durch roman.karuschka@…
#1671 meine ich, na komm', gib mir schon einen Hyperlink...
comment:6 Geändert vor 3 Jahren durch s.schoeling@…
- Beobachter s.schoeling@… hinzugefügt
- Meilenstein auf 2.7.0 gesetzt
comment:7 Geändert vor 3 Jahren durch s.schoeling@…
- Meilenstein 2.7.0 gelöscht
comment:8 Geändert vor 2 Jahren durch m.bunkus@…
- Typ von defect nach Fehler geändert

Strombuchung