From a74b774ad21fbfaa0eb37f93fb28e85f96d3f862 Mon Sep 17 00:00:00 2001 From: lertlmaier Date: Wed, 25 Jun 2025 11:54:45 +0200 Subject: [PATCH] =?UTF-8?q?Reihenfolge=20der=20Spalten=20angepasst=20(Beze?= =?UTF-8?q?ichner=20ganz=20ans=20Ende);=20Abfage=20f=C3=BCr=20fehlende=20A?= =?UTF-8?q?rtNr=20bzw=20fehlenden=20Bezeichner=20zu=20BOM=20by=20UV=20hinz?= =?UTF-8?q?ugef=C3=BCgt;=20Spaltenbreiten=20angepasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/drawdxf.py | 73 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/lib/drawdxf.py b/lib/drawdxf.py index a9b181d..43550a3 100644 --- a/lib/drawdxf.py +++ b/lib/drawdxf.py @@ -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")