fix(bt-49): block only for XRechnung; soft warning (not blocker) for ZUGFeRD

XRechnung: BT-49 bleibt Pflicht (blockiert bei leer). ZUGFeRD (B2B): leer ist erlaubt, es wird
nur ein Hinweis angezeigt, dass eine Empfaenger-E-Mail besser waere (Peppol R010).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
dfuhrmann3 2026-07-13 15:38:46 +02:00
parent 308cddedef
commit d2d09054d2
1 changed files with 9 additions and 2 deletions

11
main.py
View File

@ -593,8 +593,8 @@ with col2:
"eintragen; letztere wird sonst automatisch als Käuferreferenz verwendet.")
if is_xrechnung and not str(r_email).strip():
blocker.append("Elektronische Adresse des Kunden (BT-49) fehlt. Bei XRechnung ist sie "
"Pflicht (PEPPOL-EN16931-R010) - entweder E-Mail-Adresse oder Netzwerkcode "
"des Empfängers eintragen. (Bei ZUGFeRD/B2B ist das Feld optional.)")
"Pflicht (PEPPOL-EN16931-R010) - bitte die E-Mail-Adresse des Empfängers "
"eintragen (oder Leitweg-ID/GLN bei Behörden, mit passendem Schema).")
if inv_delivery and parse_to_strict_xml_date(inv_delivery) == "":
blocker.append("Lieferdatum (BT-72) ist unlesbar (erwartet: YYYY-MM-DD). Bitte korrigieren oder leeren.")
if not edited_items:
@ -612,6 +612,13 @@ with col2:
export_disabled = len(blocker) > 0
# Weiche Warnung (KEIN Blocker) fuer ZUGFeRD ohne Kunden-Adresse: B2B-Export ist damit okay,
# eine E-Mail des Empfaengers ist aber besser.
if not is_xrechnung and not str(r_email).strip():
st.info("ℹ️ Keine elektronische Adresse des Kunden (BT-49) angegeben. Für ZUGFeRD (B2B) "
"ist der Export damit okay - eine E-Mail-Adresse des Empfängers ist aber besser "
"(strenge Validatoren bemängeln sonst PEPPOL-EN16931-R010).")
# Dateiname: <Rechnungsnummer>_<Empfaenger>_<Rechnungsdatum> (dateisicher aufbereitet).
export_basename = build_export_basename(inv_num, r_name, inv_date)