From d504305897382ce3d213a7319ced7ebb506ae865 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 17 Jul 2018 21:10:40 +0300 Subject: Fix: count VAT totals correctly --- lasku.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lasku.py b/lasku.py index dc56a25..6ee3b6f 100755 --- a/lasku.py +++ b/lasku.py @@ -29,22 +29,23 @@ class Item: self.vat_cents = 0 if vatpc > 0: - total_cents_with_vat = int(unit_cents / (1.0 - vatpc)) - self.vat_cents = total_cents_with_vat - unit_cents + unit_cents_with_vat = int(unit_cents / (1.0 - vatpc)) + unit_vat_cents = unit_cents_with_vat - unit_cents debug('dict', self.dict) debug('total_cents', self.total_cents) debug('vatpc', vatpc) - debug('total_cents_with_vat', total_cents_with_vat) - debug('vat_cents', self.vat_cents) - debug('calc', int(vatpc * total_cents_with_vat)) - assert int(total_cents_with_vat * vatpc) == self.vat_cents - assert total_cents_with_vat == unit_cents + self.vat_cents + debug('unit_cents_with_vat', unit_cents_with_vat) + debug('unit_vat_cents', unit_vat_cents) + debug('calc', int(vatpc * unit_cents_with_vat)) + assert int(unit_cents_with_vat * vatpc) == unit_vat_cents + assert unit_cents_with_vat == unit_cents + unit_vat_cents + self.vat_cents = unit_vat_cents * count self.dict.update({ 'unit_euros': euros(unit_cents), 'total_cents': self.total_cents, 'total': euros(self.total_cents), - 'unitwithvat': euros(self.total_cents + self.vat_cents), + 'unitwithvat': euros(unit_cents + self.vat_cents), 'vat_cents': self.vat_cents, 'vat': euros(self.vat_cents), 'vatsum': euros(self.vat_cents * count), -- cgit v1.2.1