fix: Geruest-Sivas-Export erzeugt eine Zeile je Artikelnummer statt Sammelzeile
Sivas kennt nur eine Sivasnr je Zeile - ARTINR (kommagetrennte Liste) wird daher aufgesplittet. Gleiche Artikelnummern innerhalb derselben Baugruppe werden zu einer Zeile mit Anzahl>1 zusammengefasst (wie bei Boegen/Weichen). Jede resultierende Zeile traegt die volle LAENGE der Baugruppe.
This commit is contained in:
+18
-6
@@ -731,20 +731,32 @@ def process_blocks(blocks, lookup):
|
||||
|
||||
# Geruest-Baugruppen (GR_<id>_<timestamp>) - je Block eine eigene Zeile
|
||||
# (siehe Kommentar bei geruest_list oben). Sivasnr kommt direkt aus dem
|
||||
# ARTINR-Attribut - kann bereits mehrere, kommagetrennte Sivas-IDs
|
||||
# enthalten (Baugruppe aus mehreren Einzelteilen, siehe ssg-join in
|
||||
# GeruestInsert.lsp), anders als bei den uebrigen Teilearten also KEIN
|
||||
# fester Eintrag aus ILS_SIVASNR.
|
||||
# ARTINR-Attribut - kann mehrere, kommagetrennte Sivas-IDs enthalten
|
||||
# (Baugruppe aus mehreren Einzelteilen, siehe ssg-join in
|
||||
# GeruestInsert.lsp) und dieselbe ID mehrfach (menge>1 je Einzelteil).
|
||||
# Anders als bei den uebrigen Teilearten also KEIN fester Eintrag aus
|
||||
# ILS_SIVASNR - JEDE Artikelnummer bekommt ihre EIGENE Sivas-Zeile (Sivas
|
||||
# kennt nur eine Sivasnr je Zeile), gleiche Artikelnummern INNERHALB
|
||||
# derselben Baugruppe werden dabei zu einer Zeile mit anzahl>1
|
||||
# zusammengefasst (wie bogen_groups/weiche_groups oben). Die volle
|
||||
# LAENGE der Baugruppe steht auf JEDER so entstandenen Zeile - Sivas hat
|
||||
# kein Konzept einer "gemeinsamen" Laenge ueber mehrere Zeilen hinweg.
|
||||
for block in geruest_list:
|
||||
attribs = block.get("attribs", {})
|
||||
artinr_list = [a.strip() for a in attribs.get("ARTINR", "").split(",") if a.strip()]
|
||||
artinr_groups = {}
|
||||
for artinr in artinr_list:
|
||||
artinr_groups.setdefault(artinr, 0)
|
||||
artinr_groups[artinr] += 1
|
||||
for artinr, anzahl in artinr_groups.items():
|
||||
items.append({
|
||||
"nr": nr,
|
||||
"teileart": attribs.get("TEILEART", "Geruest"),
|
||||
"sivasnr": attribs.get("ARTINR", ""),
|
||||
"sivasnr": artinr,
|
||||
"sivasnr_quoted": True,
|
||||
"bezeichnung": attribs.get("BEZEICHNUNG", ""),
|
||||
"dispgruppe": 20,
|
||||
"anzahl": 1,
|
||||
"anzahl": anzahl,
|
||||
"laenge_mm": attribs.get("LAENGE", ""),
|
||||
"ids": [get_id(block)],
|
||||
"details": build_geruest_details(block),
|
||||
|
||||
Reference in New Issue
Block a user