Merge branch 'main' of http://gitea.schoenenberger.de/mistangl/kabellaengen
This commit is contained in:
+58
-56
@@ -1,70 +1,72 @@
|
|||||||
[Sivasnummern]
|
[Sivasnummern]
|
||||||
725000015 = 4G1,5mm², Steuerleitung
|
725000015 = 4G1,5mm², Steuerleitung
|
||||||
722001300 = M12 St-0°/ M8 Bu-0° 1m
|
722001300 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 1m
|
||||||
722001301 = M12 St-0°/ M8 Bu-0° 2m
|
722001301 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 2m
|
||||||
722001302 = M12 St-0°/ M8 Bu-0° 3m
|
722001302 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 3m
|
||||||
722001303 = M12 St-0°/ M8 Bu-0° 5m
|
722001303 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 5m
|
||||||
722001304 = M12 St-0°/ M8 Bu-0° 10m
|
722001304 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 10m
|
||||||
722001305 = M12 St-0°/ M8 Bu-0° 15m
|
722001305 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 15m
|
||||||
722001306 = M12 St-0°/ M8 Bu-0° 20m
|
722001306 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 20m
|
||||||
722001307 = M12 St-0°/ M8 Bu-0° 25m
|
722001307 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 25m
|
||||||
722001308 = M12 St-0°/ M8 Bu-0° 2,5m
|
722001308 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 2,5m
|
||||||
722001309 = M12 St-0°/ M8 Bu-0° 30m
|
722001310 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 35m
|
||||||
722001310 = M12 St-0°/ M8 Bu-0° 35m
|
722001311 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 40m
|
||||||
722001311 = M12 St-0°/ M8 Bu-0° 40m
|
722001312 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 50m
|
||||||
722001312 = M12 St-0°/ M8 Bu-0° 50m
|
722001330 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 1m
|
||||||
722001330 = M12 St-0°/ M12 Bu-90° 1m
|
722001331 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 2m
|
||||||
722001331 = M12 St-0°/ M12 Bu-90° 2m
|
722001332 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 3m
|
||||||
722001332 = M12 St-0°/ M12 Bu-90° 3m
|
722001333 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 5m
|
||||||
722001333 = M12 St-0°/ M12 Bu-90° 5m
|
722001334 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 10m
|
||||||
722001334 = M12 St-0°/ M12 Bu-90° 10m
|
722001335 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 15m
|
||||||
722001335 = M12 St-0°/ M12 Bu-90° 15m
|
722001336 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 20m
|
||||||
722001336 = M12 St-0°/ M12 Bu-90° 20m
|
722001337 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 25m
|
||||||
722001337 = M12 St-0°/ M12 Bu-90° 25m
|
722001338 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 2,5
|
||||||
722001338 = M12 St-0°/ M12 Bu-90° 2,5
|
722001339 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 30m
|
||||||
722001339 = M12 St-0°/ M12 Bu-90° 30m
|
722001340 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 35m
|
||||||
722001340 = M12 St-0°/ M12 Bu-90° 35m
|
722001341 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 40m
|
||||||
722001341 = M12 St-0°/ M12 Bu-90° 40m
|
722001342 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 50m
|
||||||
722001342 = M12 St-0°/ M12 Bu-90° 50m
|
722001352 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 3m
|
||||||
722001352 = M12 St-0°/ M12 Bu-0° 3m
|
722001353 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 5m
|
||||||
722001353 = M12 St-0°/ M12 Bu-0° 5m
|
722001354 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 10m
|
||||||
722001354 = M12 St-0°/ M12 Bu-0° 10m
|
722001355 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 15m
|
||||||
722001355 = M12 St-0°/ M12 Bu-0° 15m
|
722001356 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 20m
|
||||||
722001356 = M12 St-0°/ M12 Bu-0° 20m
|
722001357 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 30m
|
||||||
722001357 = M12 St-0°/ M12 Bu-0° 30m
|
722001358 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 2,5m
|
||||||
722001358 = M12 St-0°/ M12 Bu-0° 2,5m
|
722001359 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 40m
|
||||||
722001359 = M12 St-0°/ M12 Bu-0° 40m
|
726001062 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 0,25m grün
|
||||||
726001062 = Patchkabel 2xRJ45 0,25m
|
726001040 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 0,5m grün
|
||||||
726001040 = Patchkabel 2xRJ45 0,5m
|
726001041 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 1,0m grün
|
||||||
726001041 = Patchkabel 2xRJ45 1,0m
|
726001042 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 1,5m grün
|
||||||
726001042 = Patchkabel 2xRJ45 1,5m
|
726001043 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 2,0m grün
|
||||||
726001043 = Patchkabel 2xRJ45 2,0m
|
726001044 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 3,0m grün
|
||||||
726001044 = Patchkabel 2xRJ45 3,0m
|
726001045 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 5,0m grün
|
||||||
726001045 = Patchkabel 2xRJ45 5,0m
|
726001046 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 10m grün
|
||||||
726001046 = Patchkabel 2xRJ45 10m
|
726001047 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 15m grün
|
||||||
726001047 = Patchkabel 2xRJ45 15m
|
726001048 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 20m grün
|
||||||
726001048 = Patchkabel 2xRJ45 20m
|
726001049 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 25m grün
|
||||||
726001049 = Patchkabel 2xRJ45 25m
|
726001050 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 30m grün
|
||||||
726001050 = Patchkabel 2xRJ45 30m
|
726001051 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 35m grün
|
||||||
726001051 = Patchkabel 2xRJ45 35m
|
726001052 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 40m grün
|
||||||
726001052 = Patchkabel 2xRJ45 40m
|
726001053 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 45m grün
|
||||||
726001053 = Patchkabel 2xRJ45 45m
|
726001054 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 50m grün
|
||||||
726001054 = Patchkabel 2xRJ45 50m
|
726001055 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 55m grün
|
||||||
726001055 = Patchkabel 2xRJ45 55m
|
726001056 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 60m grün
|
||||||
726001056 = Patchkabel 2xRJ45 60m
|
726001057 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 65m grün
|
||||||
726001057 = Patchkabel 2xRJ45 65m
|
726001060 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 85m grün
|
||||||
726001060 = Patchkabel 2xRJ45 85m
|
726001061 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 95m grün
|
||||||
726001061 = Patchkabel 2xRJ45 95m
|
722001309 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 30m
|
||||||
720002003 = SENSOR INDUK. M18x1, SA=12MM N-BÜ/NO, KABEL-150MM
|
720002003 = SENSOR INDUK. M18x1, SA=12MM N-BÜ/NO, KABEL-150MM
|
||||||
610554001 = Sensorhalter für WT18-3P420 oder -BG
|
610554001 = Sensorhalter für WT18-3P420 oder -BG
|
||||||
610554002 = CPC Sensorhalter mit Reflextaster P1NH601 -BG
|
610554002 = CPC Sensorhalter mit Reflextaster P1NH601 -BG
|
||||||
827072112 = Traversenabfrage ST kpl. mit Lichttaster
|
827072112 = Traversenabfrage ST kpl. mit Lichttaster
|
||||||
827072111 = Traversenabfrage AP110 mit Lichttaster
|
827072111 = Traversenabfrage AP110 mit Lichttaster
|
||||||
827072013 = STATISCHE TROLLEYABFRAGE L=700 FÜR AP110
|
827072013 = STATISCHE TROLLEYABFRAGE L=700 FÜR AP110
|
||||||
|
790902001 = E-Teile für SEW Motor ASE1/HAN10ES - BG
|
||||||
|
200000248 = Lichttaster LP+SP als Staumelder
|
||||||
|
|
||||||
[Missing]
|
[Missing]
|
||||||
720000011 =
|
|
||||||
8270720111 =
|
8270720111 =
|
||||||
8270720112 =
|
8270720112 =
|
||||||
8270720113 =
|
8270720113 =
|
||||||
|
720000011 =
|
||||||
|
|
||||||
|
|||||||
+47
-26
@@ -432,42 +432,58 @@ def write_excel_from_json(plines:Polylines, sens2cable: dict, outpath:str, with_
|
|||||||
wb2 = Workbook()
|
wb2 = Workbook()
|
||||||
ws1 = wb2.active
|
ws1 = wb2.active
|
||||||
ws1.title = "BOM"
|
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
|
# Sensoren separat auflisten
|
||||||
for artnr in sorted(sensor_summary.keys()):
|
for artnr in sorted(sensor_summary.keys()):
|
||||||
name = bezeichner_cfg["Sivasnummern"].get(artnr, "")
|
|
||||||
count = sensor_summary[artnr]
|
|
||||||
if artnr == "":
|
if artnr == "":
|
||||||
name = "Keine Artikelnummer vergeben. Layout prüfen."
|
name = "Keine Artikelnummer vergeben. Layout prüfen."
|
||||||
elif name == "":
|
else:
|
||||||
name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg."
|
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([
|
ws1.append([
|
||||||
artnr,
|
artnr,
|
||||||
name,
|
|
||||||
count,
|
count,
|
||||||
"" # Sensoren haben keine Länge
|
"", # Sensoren haben keine Länge
|
||||||
|
name
|
||||||
])
|
])
|
||||||
|
|
||||||
# Kabel separat auflisten
|
# Kabel separat auflisten
|
||||||
for artnr in sorted(set(count_summary.keys()) | set(length_summary.keys())):
|
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 == "":
|
if artnr == "":
|
||||||
name = "Keine Artikelnummer vergeben. Layout prüfen."
|
name = "Keine Artikelnummer vergeben. Layout prüfen."
|
||||||
elif name == "":
|
else:
|
||||||
name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg."
|
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([
|
ws1.append([
|
||||||
artnr,
|
artnr,
|
||||||
name,
|
|
||||||
count,
|
count,
|
||||||
length
|
length,
|
||||||
|
name
|
||||||
])
|
])
|
||||||
|
|
||||||
# Neues Sheet für UV-spezifische Übersicht
|
# Neues Sheet für UV-spezifische Übersicht
|
||||||
ws_uv = wb2.create_sheet("BOM by UV")
|
ws2 = wb2.create_sheet("BOM by UV")
|
||||||
ws_uv.append(["UV", "Art.-Number", "Name (SIVAS)", "Amount (pcs)", "Length (m)"])
|
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())
|
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())
|
all_artnrs.update(uv_artnr_length.get(uv, {}).keys())
|
||||||
|
|
||||||
for artnr in sorted(all_artnrs):
|
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)
|
sensor_amount = uv_sensor_count.get(uv, {}).get(artnr, 0)
|
||||||
cable_count = uv_artnr_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)
|
cable_length = uv_artnr_length.get(uv, {}).get(artnr, 0)
|
||||||
name = bezeichner_cfg["Sivasnummern"].get(artnr, "")
|
|
||||||
|
|
||||||
# Sensoren separat eintragen (Anzahl)
|
# Sensoren separat eintragen (Anzahl)
|
||||||
if sensor_amount > 0:
|
if sensor_amount > 0:
|
||||||
ws_uv.append([
|
ws2.append([
|
||||||
uv,
|
uv,
|
||||||
artnr,
|
artnr,
|
||||||
name,
|
|
||||||
sensor_amount,
|
sensor_amount,
|
||||||
""
|
"",
|
||||||
|
name
|
||||||
])
|
])
|
||||||
|
|
||||||
# a) Nur Anzahl, wenn kein "MA" im Namen
|
# a) Nur Anzahl, wenn kein "MA" im Namen
|
||||||
if cable_count > 0 and cable_length == 0:
|
if cable_count > 0 and cable_length == 0:
|
||||||
ws_uv.append([
|
ws2.append([
|
||||||
uv,
|
uv,
|
||||||
artnr,
|
artnr,
|
||||||
name,
|
|
||||||
cable_count,
|
cable_count,
|
||||||
""
|
"",
|
||||||
|
name
|
||||||
])
|
])
|
||||||
|
|
||||||
# b) Nur Länge, wenn Kabel mit "MA" (Meterware)
|
# b) Nur Länge, wenn Kabel mit "MA" (Meterware)
|
||||||
if cable_length > 0:
|
if cable_length > 0:
|
||||||
ws_uv.append([
|
ws2.append([
|
||||||
uv,
|
uv,
|
||||||
artnr,
|
artnr,
|
||||||
name,
|
|
||||||
"",
|
"",
|
||||||
cable_length
|
cable_length,
|
||||||
|
name
|
||||||
])
|
])
|
||||||
|
|
||||||
bom_path = outpath.replace("_cables.xlsx", "_BOM.xlsx")
|
bom_path = outpath.replace("_cables.xlsx", "_BOM.xlsx")
|
||||||
|
|||||||
Reference in New Issue
Block a user