Minimum 3 Dezimalstellen speichern
Bernd Wurst

Bernd Wurst commited on 2025-05-09 10:37:45
Zeige 1 geänderte Dateien mit 7 Einfügungen und 5 Löschungen.

... ...
@@ -43,8 +43,8 @@ class InvoiceTable(object):
43 43
         e = entry
44 44
         if not ('count' in k and 'unit' in k and 'subject' in k and 'price' in k and 'vat' in k):
45 45
             raise ValueError('Some data is missing!')
46
-        # Finde heraus, wie viele Dezimalstellen übergeben wurden, minimum aber 2.
47
-        digits = max(2, abs(Decimal(f"{e['price']}").as_tuple().exponent))
46
+        # Finde heraus, wie viele Dezimalstellen übergeben wurden, minimum speichern wir 3.
47
+        digits = max(3, abs(Decimal(f"{e['price']}").as_tuple().exponent))
48 48
         ret = {'type': 'entry',
49 49
                'count': Decimal(f"{e['count']:.4f}"),
50 50
                'unit': e['unit'],
... ...
@@ -58,7 +58,7 @@ class InvoiceTable(object):
58 58
                'print_date': True,
59 59
                }
60 60
         if ret['vat'] > 1:
61
-            ret['vat'] = Decimal(ret['vat'] / 100)
61
+            ret['vat'] = Decimal(ret['vat']) / 100
62 62
             
63 63
         if 'tender' in e.keys():
64 64
             ret['tender'] = e['tender']
... ...
@@ -78,8 +78,10 @@ class InvoiceTable(object):
78 78
         Typen sein"""
79 79
         d = self.validEntry(data)
80 80
         if not d['vat'] in self.vat.keys():
81
-            self.vat[d['vat']] = {'char': chr(65+len(self.vat)), 'net': Decimal("0.00"),
82
-                                  'vat_amount': Decimal("0.00"), 'gross': Decimal("0.00"),
81
+            self.vat[d['vat']] = {'char': chr(65+len(self.vat)),
82
+                                  'net': Decimal("0.00"),
83
+                                  'vat_amount': Decimal("0.00"),
84
+                                  'gross': Decimal("0.00"),
83 85
                                   'vat': d['vat'],}
84 86
         if 'tender' not in data or not data['tender']:
85 87
             self.vat[d['vat']]['net'] += d['net_price'] * d['count']
86 88