From 61cd933de38d96cc6aa4986fe983ecff803d47d0 Mon Sep 17 00:00:00 2001 From: Simon Steuer Date: Wed, 27 Aug 2025 16:54:04 +0200 Subject: [PATCH] =?UTF-8?q?FIX=20-=20Bei=20Definierung=20der=20automatisch?= =?UTF-8?q?en=20Zusatzinformationen=20muss=20gepr=C3=BCft=20werden,=20ob?= =?UTF-8?q?=20die=20aktuell=20ausgew=C3=A4hlte=20Nummer=20=C3=BCber=20eine?= =?UTF-8?q?=20St=C3=BCckliste=20verf=C3=BCgt.=20Die=20Methode=20'has=5Fbom?= =?UTF-8?q?',=20die=20daf=C3=BCr=20implementiert=20wurde=20hat=20jedoch=20?= =?UTF-8?q?nur=20zur=C3=BCckgegeben,=20ob=20die=20oberste=20Nummer,=20nach?= =?UTF-8?q?=20der=20gesucht=20wurde=20eine=20St=C3=BCckliste=20hat=20oder?= =?UTF-8?q?=20nicht.=20Dies=20wurde=20nun=20behoben,=20indem=20zun=C3=A4ch?= =?UTF-8?q?st=20alle=20Kinder=20der=20ausgew=C3=A4hlten=20Nummer=20geholt?= =?UTF-8?q?=20werden.=20Wenn=20diese=20'None'=20sind=20hat=20die=20ausgew?= =?UTF-8?q?=C3=A4hlte=20Teilenummer=20keine=20St=C3=BCckliste.=20Die=20Met?= =?UTF-8?q?hode=20'has=5Fbom'=20sowie=20die=20Methode=20'set=5Fbom=5Fexist?= =?UTF-8?q?ance'=20werden=20daher=20nun=20nicht=20mehr=20ben=C3=B6tigt.=20?= =?UTF-8?q?Alle=20entsprechenden=20Referenzen=20wurden=20entfernt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/caditem.py | 13 +++---------- lib/controller.py | 3 --- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/lib/caditem.py b/lib/caditem.py index 2fa3478..06d5222 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -243,7 +243,6 @@ class CadItem(DataModel): self._read_only_items = {} self._controller = None self._logic = None - self._has_bom = None def clear(self): asm_id = self.get_asm_id() # das einzige was beim Löschen des Modells bleiben sollte, ist die übergeordnete Baugruppennummer @@ -296,14 +295,6 @@ class CadItem(DataModel): raise ValueError(f"Property '{property_name}' doesn't exist in BOM! Check property spelling!") else: return self._bom_properties[property_name] - - def set_bom_existence(self, bom_status: bool) -> bool: - self._has_bom = bom_status - - def has_bom(self) -> bool: - return self._has_bom - - # Methoden um die Verwendbarkeit einzelner Schalter auszugrauen def set_read_only_dict(self, data:dict): @@ -2603,11 +2594,13 @@ class GuiLogic(): ruestcode = self._model.get_gui_data("ruestcode_sivas") werkstoffdiskr_neu = self._model.get_gui_data("werkstoffdiskr_neu") aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu") + active_id = self._model.get_current_item_id() + children_of_active_id = self._model.get_all_children_of_id(active_id) # Ermittlung, ob sich in der Stückliste der ausgewählten Teilenummer Beistellungsteile oder nicht-dispoaktive Teile befinden beistellungen = False dispoinaktiv = False - if self._model.has_bom(): + if children_of_active_id is not None: all_beistellungen = self._model.get_bom_properties("Lieferantenbeistellung") all_dispoaktiv = self._model.get_bom_properties("Dispoaktiv") active_id = self._model.get_current_item_id() diff --git a/lib/controller.py b/lib/controller.py index db99dba..9cc8424 100644 --- a/lib/controller.py +++ b/lib/controller.py @@ -125,8 +125,6 @@ class Controller(Observer): sivas_bom = SivasBOM(asm_id, data_dir, asm_id + '.json', load_local_bom, excluded_bom_ids) - bom_existence = False if not sivas_bom.bom_data else True - sivas_bom.extend_asm_bom(asm_id, {"Parent": None, "Position": "10/0"}) # Ergänzt Stücklistendaten um eine fiktive Baugruppe "None", in der die Haupt-Teilenummer als Pos. 1 vorliegt. Dadurch können auch Teilenummern ohne Stückliste korrekt abgebildet werden rd_data = RuleDesignerDatabaseConfig(data_dir, rd_dbase_filename, load_local_rd_ids) @@ -140,7 +138,6 @@ class Controller(Observer): self._model.set_red_ids(pending_ids) self._model.set_parent_children(sivas_bom.parent_children) self._model.set_asm_id(asm_id) - self._model.set_bom_existence(bom_existence) self._model.set_bom_properties(sivas_bom.all_bom_properties) def set_model(self, model):