diff --git a/app.py b/app.py index f4afea6..c79bb95 100644 --- a/app.py +++ b/app.py @@ -82,6 +82,24 @@ ZAHLUNGSZIEL = "Zahlbar innerhalb von 14 Tagen ohne Abzug." DANK = "Vielen Dank für Ihren Auftrag!" +def datum_de(wert): + """Formatiert ein Datum als TT.MM.JJJJ. + + Intern wird ISO (JJJJ-MM-TT) gespeichert -- das ist sortierbar und + eindeutig. Bereits deutsche Eingaben werden durchgereicht, alles + Unbekannte unveraendert gelassen statt verstuemmelt. + """ + text = str(wert or '').strip() + if not text: + return '' + for muster in ('%Y-%m-%d', '%d.%m.%Y', '%d.%m.%y'): + try: + return datetime.strptime(text, muster).strftime('%d.%m.%Y') + except ValueError: + continue + return text + + def mwst_satz_label(satz): """Formatiert den Steuersatz ohne unnoetige Nachkommastellen (19 statt 19.0).""" return f"{satz:g}" @@ -536,6 +554,9 @@ def calculate(data): # --------------------------------------------------------------------------- +app.jinja_env.filters['datum_de'] = datum_de + + @app.context_processor def inject_konstanten(): """Stellt den §19-Hinweis allen Templates zur Verfuegung.""" @@ -807,11 +828,11 @@ def invoice_pdf(): kunde = pdf_text(data.get('kundenName', config.get('kundenName', ''))) adresse = pdf_text(data.get('kundenAdresse', config.get('kundenAdresse', ''))) rechnungsnummer = pdf_text(data.get('rechnungsnummer', config.get('rechnungsnummer', ''))) - datum = pdf_text(data.get('datum', config.get('datum', ''))) + datum = pdf_text(datum_de(data.get('datum', config.get('datum', '')))) # §14 UStG verlangt den Leistungszeitpunkt. Fehlt er, gilt das # Rechnungsdatum -- dann ist der uebliche Zusatz noetig. - leistungsdatum = pdf_text(data.get('leistungsdatum', - config.get('leistungsdatum', ''))) + leistungsdatum = pdf_text(datum_de(data.get('leistungsdatum', + config.get('leistungsdatum', '')))) projekt = pdf_text(config.get('projektName', '')) pdf = FPDF() @@ -993,7 +1014,7 @@ def export(): "=" * 58 + "", "", f"Projekt: {merged.get('projektName', '')}", - f"Datum: {merged.get('datum', '')}", + f"Datum: {datum_de(merged.get('datum', ''))}", "", ] diff --git a/templates/invoice.html b/templates/invoice.html index 30b4a5a..688e02a 100644 --- a/templates/invoice.html +++ b/templates/invoice.html @@ -52,11 +52,11 @@