Format der SivasNummer ohne +

This commit is contained in:
2026-07-10 13:34:10 +02:00
parent fe283a0bf3
commit 554e9bee99
4 changed files with 42 additions and 16 deletions
+16 -8
View File
@@ -149,12 +149,19 @@ def resolve_container_refs(text, container_map):
kommaseparierte Liste aus [container]. Kommt das Muster mehrfach vor,
wird jedes Vorkommen einzeln ersetzt. Unbekannte 0_BG-Werte bleiben
unveraendert stehen.
Anschliessend werden verbleibende "+"-Trenner (z.B. zwischen Artikelnr.
und 0_BG-Referenz) durch ", " ersetzt, damit SivasNummer ausschliesslich
eine kommaseparierte Liste ist.
"""
if not container_map or "0_BG" not in text:
return text
return CONTAINER_PATTERN.sub(
lambda m: container_map.get(m.group(0), m.group(0)), text
)
if container_map and "0_BG" in text:
text = CONTAINER_PATTERN.sub(
lambda m: container_map.get(m.group(0), m.group(0)), text
)
if "+" in text:
parts = [p.strip() for p in text.split("+") if p.strip()]
text = ", ".join(parts)
return text
def resolve_value(source, json_entry, sivasnr, container_map=None):
@@ -164,9 +171,10 @@ def resolve_value(source, json_entry, sivasnr, container_map=None):
- {sivasnr} -> SivasNr-Wert
- Feldname -> Wert aus json_entry
Wird das Feld "Sivasnr" aufgeloest und enthaelt der Wert ein oder
mehrere 0_BGxxxxxx-Muster, werden diese anhand von [container] durch
die dort hinterlegte kommaseparierte Liste ersetzt.
Wird das Feld "Sivasnr" aufgeloest, werden enthaltene 0_BGxxxxxx-Muster
anhand von [container] durch die dort hinterlegte kommaseparierte Liste
ersetzt und verbleibende "+"-Trenner durch ", " ersetzt, sodass das
Ergebnis ausschliesslich eine kommaseparierte Liste ist (keine "+" mehr).
"""
source = source.strip()