Registriert seit: 27. Nov 2017
2.508 Beiträge
Delphi 7 Professional
|
AW: MwSt. wird falsch berechnet. (Einige nutzen eine falsche Formel!)
2. Jul 2024, 13:52
Das Problem liegt nicht in den Rechenverfahren sondern in der Datenbank bzw. in FireBird:
SQL-Code:
select
RENR,
MWSTSATZ,
cast(round(BruttoSumme, 2) as NUMERIC(18,2)) as Brutto,
(MwStSatz / (MwStSatz + 100)) as mwst_1,
round((MwStSatz / (MwStSatz + 100)),2) as mwst_2,
BruttoSumme * (MwStSatz / (MwStSatz + 100)) as mwst_3,
BruttoSumme * MwStSatz / (MwStSatz + 100) as mwst_4,
round(BruttoSumme * MwStSatz / (MwStSatz + 100),2) as mwst_5,
cast(round(round(BruttoSumme, 2) * (MwStSatz / (MwStSatz + 100)), 2) as NUMERIC(18,2)) as Mwst,
cast(round(round(BruttoSumme, 2) * MwStSatz / (MwStSatz + 100), 2) as NUMERIC(18,2)) as Mwst_Cast,
cast(round(BruttoSumme, 2) - (round(round(BruttoSumme, 2) * (MwStSatz / (MwStSatz + 100)), 2)) as NUMERIC(18,2)) as Netto
from
(
select
RENR,
MwStSatz,
sum(BruttoSumme) as BruttoSumme
from RePos
group by RENR, MwStSatz
)
;
Habe mal eine der Views "erweitert" und dann die Ergebnisse verglichen.
Mathematisch sind
cast(round(round(BruttoSumme, 2) * (MwStSatz / (MwStSatz + 100)), 2) as NUMERIC(18,2)) as Mwst,
und
cast(round(round(BruttoSumme, 2) * MwStSatz / (MwStSatz + 100), 2) as NUMERIC(18,2)) as Mwst_Cast,
identisch.
Die Klammerung von (MwStSatz / (MwStSatz + 100))
ist nicht zwingend erforderlich, es würde auch MwStSatz / (MwStSatz + 100)
ausreichen.
Das Problem dabei ist: FireBird liefert mit bzw. ohne diese Klammern unterschiedliche Ergebnisse.
Bei FireBird ist BruttoSumme * (MwStSatz / (MwStSatz + 100))
was anderes als BruttoSumme * MwStSatz / (MwStSatz + 100)
.
Aus für mich nicht nachvollziehbaren Gründen ist der Ergebnis der Berechnung BruttoSumme * (MwStSatz / (MwStSatz + 100))
bei FireBird falsch.
|
|
Zitat
|