ui(v3): BT-49-Ableitung sichtbar machen + Schema robuster (E-Mail=EM)
- resolve_buyer_endpoint: eine Adresse mit '@' wird immer als Schema EM gewertet (unabhaengig vom Dropdown), damit ein falsch gewaehltes Schema nicht durchschlaegt. Ohne '@' entscheidet weiter das gewaehlte Schema (z.B. GLN 0088); leeres Feld + Leitweg-ID -> 0204 wie bisher. - main.py: unter dem BT-49-Feld wird jetzt sichtbar angezeigt, was tatsaechlich exportiert wird - bei Ableitung aus der Leitweg-ID ein gruener Hinweis, sonst eine kurze Bestaetigung mit Wert + Schema. So wirkt das (bewusst leere) Feld fuer den Sachbearbeiter nicht mehr offen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
991384a362
commit
2e259589c0
|
|
@ -84,12 +84,18 @@ BUYER_ENDPOINT_SCHEMES = {
|
|||
def resolve_buyer_endpoint(recipient_email, recipient_scheme, leitweg_id):
|
||||
"""Ermittelt die effektive elektronische Adresse des Kaeufers (BT-49) samt Schema (BT-49-1).
|
||||
|
||||
Ist eine E-Mail/Adresse eingetragen, wird sie mit dem gewaehlten Schema uebernommen. Ist das
|
||||
Feld leer, aber eine Leitweg-ID (BT-10) vorhanden, wird die Leitweg-ID als BT-49 mit Schema
|
||||
'0204' verwendet - so muss die Leitweg-ID nur einmal (in BT-10) eingegeben werden. Ist beides
|
||||
leer, bleibt die Adresse leer (Schema unveraendert). Gibt (adresse, schema) zurueck."""
|
||||
Regeln (in dieser Reihenfolge):
|
||||
1. Steht im BT-49-Feld eine Adresse mit '@', ist es immer eine E-Mail -> Schema 'EM'
|
||||
(unabhaengig vom Dropdown, damit ein falsch gewaehltes Schema nicht durchschlaegt).
|
||||
2. Steht dort eine Adresse ohne '@' (z.B. GLN), wird das gewaehlte Schema uebernommen.
|
||||
3. Ist das Feld leer, aber eine Leitweg-ID (BT-10) vorhanden, wird die Leitweg-ID als BT-49
|
||||
mit Schema '0204' verwendet - so muss die Leitweg-ID nur einmal (in BT-10) eingegeben werden.
|
||||
4. Ist beides leer, bleibt die Adresse leer (Schema unveraendert).
|
||||
Gibt (adresse, schema) zurueck."""
|
||||
email = str(recipient_email or "").strip()
|
||||
if email:
|
||||
if "@" in email:
|
||||
return email, "EM"
|
||||
return email, recipient_scheme
|
||||
leitweg = str(leitweg_id or "").strip()
|
||||
if leitweg:
|
||||
|
|
|
|||
10
main.py
10
main.py
|
|
@ -347,6 +347,16 @@ with col2:
|
|||
"0088 = GLN. Muss zum Typ der oben eingetragenen Adresse passen.",
|
||||
)
|
||||
r_endpoint_scheme = r_endpoint_scheme_label.split(" - ")[0]
|
||||
|
||||
# Sichtbar machen, was tatsächlich als BT-49 exportiert wird - vor allem wenn es
|
||||
# aus der Leitweg-ID (BT-10) abgeleitet wird, damit das leere Feld nicht "offen" wirkt.
|
||||
_bt49_preview, _bt49_scheme_preview = resolve_buyer_endpoint(r_email, r_endpoint_scheme, leitweg_id)
|
||||
if _bt49_preview and not str(r_email).strip():
|
||||
st.success(f"➡️ BT-49 wird automatisch aus der Leitweg-ID übernommen: "
|
||||
f"**{_bt49_preview}** (Schema **{_bt49_scheme_preview}**) – hier nichts nötig.")
|
||||
elif _bt49_preview:
|
||||
st.caption(f"Export als BT-49: **{_bt49_preview}** · Schema **{_bt49_scheme_preview}**")
|
||||
|
||||
r_street = st.text_input("Straße (BT-50)", value=data.get("recipient_street", ""))
|
||||
r_zip = st.text_input("PLZ (BT-53)", value=data.get("recipient_zip", ""))
|
||||
r_city = st.text_input("Stadt (BT-52) :red[*]", value=data.get("recipient_city", ""))
|
||||
|
|
|
|||
Loading…
Reference in New Issue