Reihenfolge der Spalten angepasst (Bezeichner ganz ans Ende); Abfage für fehlende ArtNr bzw fehlenden Bezeichner zu BOM by UV hinzugefügt; Spaltenbreiten angepasst
This commit is contained in:
+47
-26
@@ -432,42 +432,58 @@ def write_excel_from_json(plines:Polylines, sens2cable: dict, outpath:str, with_
|
||||
wb2 = Workbook()
|
||||
ws1 = wb2.active
|
||||
ws1.title = "BOM"
|
||||
ws1.append(["Art.-Number", "Name (SIVAS)", "Amount (pcs)", "Length (m)"])
|
||||
ws1.append(["Art.-Number", "Amount (pcs)", "Length (m)", "Name (SIVAS)"])
|
||||
|
||||
ws1.column_dimensions['A'].width = 15
|
||||
ws1.column_dimensions['B'].width = 12
|
||||
ws1.column_dimensions['C'].width = 10
|
||||
ws1.column_dimensions['D'].width = 50
|
||||
|
||||
# Sensoren separat auflisten
|
||||
for artnr in sorted(sensor_summary.keys()):
|
||||
name = bezeichner_cfg["Sivasnummern"].get(artnr, "")
|
||||
count = sensor_summary[artnr]
|
||||
if artnr == "":
|
||||
name = "Keine Artikelnummer vergeben. Layout prüfen."
|
||||
elif name == "":
|
||||
name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg."
|
||||
else:
|
||||
name = bezeichner_cfg["Sivasnummern"].get(artnr, "")
|
||||
if name == "":
|
||||
name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg."
|
||||
|
||||
count = sensor_summary[artnr]
|
||||
|
||||
ws1.append([
|
||||
artnr,
|
||||
name,
|
||||
count,
|
||||
"" # Sensoren haben keine Länge
|
||||
"", # Sensoren haben keine Länge
|
||||
name
|
||||
])
|
||||
|
||||
# Kabel separat auflisten
|
||||
for artnr in sorted(set(count_summary.keys()) | set(length_summary.keys())):
|
||||
name = bezeichner_cfg["Sivasnummern"].get(artnr, "")
|
||||
count = count_summary.get(artnr, "")
|
||||
length = length_summary.get(artnr, "")
|
||||
if artnr == "":
|
||||
name = "Keine Artikelnummer vergeben. Layout prüfen."
|
||||
elif name == "":
|
||||
name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg."
|
||||
else:
|
||||
name = bezeichner_cfg["Sivasnummern"].get(artnr, "")
|
||||
if name == "":
|
||||
name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg."
|
||||
|
||||
count = count_summary.get(artnr, "")
|
||||
length = length_summary.get(artnr, "")
|
||||
ws1.append([
|
||||
artnr,
|
||||
name,
|
||||
count,
|
||||
length
|
||||
length,
|
||||
name
|
||||
])
|
||||
|
||||
# Neues Sheet für UV-spezifische Übersicht
|
||||
ws_uv = wb2.create_sheet("BOM by UV")
|
||||
ws_uv.append(["UV", "Art.-Number", "Name (SIVAS)", "Amount (pcs)", "Length (m)"])
|
||||
ws2 = wb2.create_sheet("BOM by UV")
|
||||
ws2.append(["UV", "Art.-Number", "Amount (pcs)", "Length (m)", "Name (SIVAS)"])
|
||||
|
||||
ws2.column_dimensions['A'].width = 15
|
||||
ws2.column_dimensions['B'].width = 15
|
||||
ws2.column_dimensions['C'].width = 12
|
||||
ws2.column_dimensions['D'].width = 10
|
||||
ws2.column_dimensions['E'].width = 50
|
||||
|
||||
all_uvs = set(uv_sensor_count.keys()) | set(uv_artnr_count.keys()) | set(uv_artnr_length.keys())
|
||||
|
||||
@@ -478,39 +494,44 @@ def write_excel_from_json(plines:Polylines, sens2cable: dict, outpath:str, with_
|
||||
all_artnrs.update(uv_artnr_length.get(uv, {}).keys())
|
||||
|
||||
for artnr in sorted(all_artnrs):
|
||||
if artnr == "":
|
||||
name = "Keine Artikelnummer vergeben. Layout prüfen."
|
||||
else:
|
||||
name = bezeichner_cfg["Sivasnummern"].get(artnr, "")
|
||||
if name == "":
|
||||
name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg."
|
||||
sensor_amount = uv_sensor_count.get(uv, {}).get(artnr, 0)
|
||||
cable_count = uv_artnr_count.get(uv, {}).get(artnr, 0)
|
||||
cable_length = uv_artnr_length.get(uv, {}).get(artnr, 0)
|
||||
name = bezeichner_cfg["Sivasnummern"].get(artnr, "")
|
||||
|
||||
# Sensoren separat eintragen (Anzahl)
|
||||
if sensor_amount > 0:
|
||||
ws_uv.append([
|
||||
ws2.append([
|
||||
uv,
|
||||
artnr,
|
||||
name,
|
||||
sensor_amount,
|
||||
""
|
||||
"",
|
||||
name
|
||||
])
|
||||
|
||||
# a) Nur Anzahl, wenn kein "MA" im Namen
|
||||
if cable_count > 0 and cable_length == 0:
|
||||
ws_uv.append([
|
||||
ws2.append([
|
||||
uv,
|
||||
artnr,
|
||||
name,
|
||||
cable_count,
|
||||
""
|
||||
"",
|
||||
name
|
||||
])
|
||||
|
||||
# b) Nur Länge, wenn Kabel mit "MA" (Meterware)
|
||||
if cable_length > 0:
|
||||
ws_uv.append([
|
||||
ws2.append([
|
||||
uv,
|
||||
artnr,
|
||||
name,
|
||||
"",
|
||||
cable_length
|
||||
cable_length,
|
||||
name
|
||||
])
|
||||
|
||||
bom_path = outpath.replace("_cables.xlsx", "_BOM.xlsx")
|
||||
|
||||
Reference in New Issue
Block a user