Bernd Wurst commited on 2024-01-26 13:03:14
Zeige 1 geänderte Dateien mit 25 Einfügungen und 15 Löschungen.
... | ... |
@@ -1,7 +1,8 @@ |
1 | 1 |
# -* coding: utf8 *- |
2 | 2 |
|
3 | 3 |
from __future__ import division |
4 |
-from Invoice import Text, Table, Image |
|
4 |
+ |
|
5 |
+from .InvoiceObjects import Invoice, InvoiceTable, InvoiceText, InvoiceImage, PAYMENT_UEBERWEISUNG |
|
5 | 6 |
from utils import format_price, split_to_width |
6 | 7 |
|
7 | 8 |
|
... | ... |
@@ -20,37 +21,46 @@ def _breakLine(text, width=72): |
20 | 21 |
return lines |
21 | 22 |
|
22 | 23 |
|
23 |
-def InvoiceToText(iv, bankdata=True): |
|
24 |
+def InvoiceToText(invoice : Invoice, bankdata=True): |
|
24 | 25 |
ret = [] |
25 | 26 |
ret.append(u'Rechnungsempfänger:') |
26 |
- for line in iv.addresslines: |
|
27 |
- ret.append(' %s' % line) |
|
27 |
+ addresslines = filter(None, [ |
|
28 |
+ invoice.customer['name'].strip(), |
|
29 |
+ invoice.customer['address']['line1'] or '', |
|
30 |
+ invoice.customer['address']['line2'] or '', |
|
31 |
+ invoice.customer['address']['line3'] or '', |
|
32 |
+ ((invoice.customer['address']['postcode'] or '') + ' ' + ( |
|
33 |
+ invoice.customer['address']['city_name'] or '')).strip(), |
|
34 |
+ ]) |
|
35 |
+ for line in addresslines: |
|
36 |
+ ret.append(f' {line}') |
|
28 | 37 |
ret.append('') |
29 |
- ret.append('Kundennummer: %4i' % iv.customerno) |
|
30 |
- ret.append('Rechnungsnummer: %4i Rechnungsdatum: %s' % (iv.id, iv.date.strftime('%d.%m.%Y'))) |
|
38 |
+ ret.append(f'Kundennummer: {invoice.customerno}') |
|
39 |
+ ret.append(f'Rechnungsnummer: {invoice.id}') |
|
40 |
+ ret.append(f'Rechnungsdatum: {invoice.date.strftime("%d.%m.%Y")}') |
|
31 | 41 |
|
32 | 42 |
ret.append('') |
33 |
- for part in iv.parts: |
|
34 |
- if type(part) == Table: |
|
43 |
+ for part in invoice.parts: |
|
44 |
+ if type(part) == InvoiceTable: |
|
35 | 45 |
ret.append(InvoiceTableToText(part)) |
36 |
- elif type(part) == Text: |
|
46 |
+ elif type(part) == InvoiceText: |
|
37 | 47 |
ret.append(InvoiceTextToText(part)) |
38 |
- elif type(part) == Image: |
|
48 |
+ elif type(part) == InvoiceImage: |
|
39 | 49 |
# ignore images |
40 | 50 |
pass |
41 | 51 |
else: |
42 | 52 |
raise NotImplementedError("Cannot handle part of type %s" % type(part)) |
43 | 53 |
|
44 |
- if bankdata: |
|
54 |
+ if invoice.payment_type == PAYMENT_UEBERWEISUNG: |
|
45 | 55 |
ret.append('-' * 72) |
46 | 56 |
ret.append('Unsere Bankverbindung:') |
47 |
- ret.append('Volksbank Backnang, BLZ 602 911 20, Konto-Nr. 41512 006') |
|
48 |
- ret.append('IBAN: DE91602911200041512006, BIC: GENODES1VBK') |
|
57 |
+ ret.append(f'{invoice.seller_bank_data["bankname"]}') |
|
58 |
+ ret.append(f'IBAN: {invoice.seller_bank_data["iban"]}') |
|
49 | 59 |
|
50 | 60 |
return '\n'.join(ret) |
51 | 61 |
|
52 | 62 |
|
53 |
-def InvoiceTableToText(invoiceTable): |
|
63 |
+def InvoiceTableToText(invoiceTable : InvoiceTable): |
|
54 | 64 |
ret = [] |
55 | 65 |
if len(invoiceTable.vat) < 2: |
56 | 66 |
ret.append(u'Anz Beschreibung Preis Gesamt') |
... | ... |
@@ -111,7 +121,7 @@ def InvoiceTableToText(invoiceTable): |
111 | 121 |
return '\n'.join(ret) |
112 | 122 |
|
113 | 123 |
|
114 |
-def InvoiceTextToText(invoiceText): |
|
124 |
+def InvoiceTextToText(invoiceText : InvoiceText): |
|
115 | 125 |
ret = [] |
116 | 126 |
for par in invoiceText.paragraphs: |
117 | 127 |
for s in split_to_width(par, 72): |
118 | 128 |