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:
1 parent
1590f8f7ed
commit
c5ae0bd769
1 file changed
+29
-17
+29
-17
@@ -731,25 +731,37 @@ def process_blocks(blocks, lookup):
|
|||||||
|
|
||||||
# Geruest-Baugruppen (GR_<id>_<timestamp>) - je Block eine eigene Zeile
|
# Geruest-Baugruppen (GR_<id>_<timestamp>) - je Block eine eigene Zeile
|
||||||
# (siehe Kommentar bei geruest_list oben). Sivasnr kommt direkt aus dem
|
# (siehe Kommentar bei geruest_list oben). Sivasnr kommt direkt aus dem
|
||||||
# ARTINR-Attribut - kann bereits mehrere, kommagetrennte Sivas-IDs
|
# ARTINR-Attribut - kann mehrere, kommagetrennte Sivas-IDs enthalten
|
||||||
# enthalten (Baugruppe aus mehreren Einzelteilen, siehe ssg-join in
|
# (Baugruppe aus mehreren Einzelteilen, siehe ssg-join in
|
||||||
# GeruestInsert.lsp), anders als bei den uebrigen Teilearten also KEIN
|
# GeruestInsert.lsp) und dieselbe ID mehrfach (menge>1 je Einzelteil).
|
||||||
# fester Eintrag aus ILS_SIVASNR.
|
# 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:
|
for block in geruest_list:
|
||||||
attribs = block.get("attribs", {})
|
attribs = block.get("attribs", {})
|
||||||
items.append({
|
artinr_list = [a.strip() for a in attribs.get("ARTINR", "").split(",") if a.strip()]
|
||||||
"nr": nr,
|
artinr_groups = {}
|
||||||
"teileart": attribs.get("TEILEART", "Geruest"),
|
for artinr in artinr_list:
|
||||||
"sivasnr": attribs.get("ARTINR", ""),
|
artinr_groups.setdefault(artinr, 0)
|
||||||
"sivasnr_quoted": True,
|
artinr_groups[artinr] += 1
|
||||||
"bezeichnung": attribs.get("BEZEICHNUNG", ""),
|
for artinr, anzahl in artinr_groups.items():
|
||||||
"dispgruppe": 20,
|
items.append({
|
||||||
"anzahl": 1,
|
"nr": nr,
|
||||||
"laenge_mm": attribs.get("LAENGE", ""),
|
"teileart": attribs.get("TEILEART", "Geruest"),
|
||||||
"ids": [get_id(block)],
|
"sivasnr": artinr,
|
||||||
"details": build_geruest_details(block),
|
"sivasnr_quoted": True,
|
||||||
})
|
"bezeichnung": attribs.get("BEZEICHNUNG", ""),
|
||||||
nr += 1
|
"dispgruppe": 20,
|
||||||
|
"anzahl": anzahl,
|
||||||
|
"laenge_mm": attribs.get("LAENGE", ""),
|
||||||
|
"ids": [get_id(block)],
|
||||||
|
"details": build_geruest_details(block),
|
||||||
|
})
|
||||||
|
nr += 1
|
||||||
|
|
||||||
# VarioFoerderer-Compound-Bloecke (VF_N) - je Block eine eigene Zeile mit
|
# VarioFoerderer-Compound-Bloecke (VF_N) - je Block eine eigene Zeile mit
|
||||||
# vollstaendigen Gefaelle-/Angetrieben-Teilgruppen (immer TYP "Streckengruppe").
|
# vollstaendigen Gefaelle-/Angetrieben-Teilgruppen (immer TYP "Streckengruppe").
|
||||||
|
|||||||
Reference in new issue
Block a user