From 7c0ad9776c1dd873f7b8063bdc279cb33cf9aa4a Mon Sep 17 00:00:00 2001 From: Simon Steuer Date: Mon, 1 Jul 2024 13:04:44 +0200 Subject: [PATCH] =?UTF-8?q?FIX=20-=20Wenn=20Teilenummern=20aus=20tieferen?= =?UTF-8?q?=20Baugruppenebenen=20dispoinaktiv=20oder=20beigestellt=20waren?= =?UTF-8?q?=20wurde=20f=C3=BCr=20die=20aktuelle=20Baugruppenebene=20r?= =?UTF-8?q?=C3=BCckgemeldet,=20dass=20sie=20in=20der=20Blacklist=20fehlt.?= =?UTF-8?q?=20Teilenummer=20aus=20tieferen=20Baugruppenebenen=20d=C3=BCrfe?= =?UTF-8?q?n=20aber=20nicht=20ber=C3=BCcksichtigt=20werden.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/caditem.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/caditem.py b/lib/caditem.py index 6e111a3..2da6c6c 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -518,6 +518,13 @@ class CadItem(DataModel): else: return None + def get_all_children_of_id(self, sivasId): + parent_children = self.get_parent_children() + if str(sivasId) in parent_children: + return parent_children[str(sivasId)] + else: + return None + def sivas_data_from_csv(self, cid): path = os.path.join(self._controller.get_env("data"), cid + '.csv') if os.path.exists(path): @@ -728,11 +735,17 @@ class CadItem(DataModel): config = self._controller.get_config() blacklist_ids = set(config.get_blacklist()) - - ids_dispoaktiv_status = self.get_bom_properties("Dispoaktiv") - ids_beistellung_status = self.get_bom_properties("Lieferantenbeistellung") - if not "False" in ids_dispoaktiv_status.values() or not "True" in ids_beistellung_status.values(): + children_ids = self.get_all_children_of_id(teilenummer) # In der Prüfung dürfen nur die Kinder der aktuellen BG-Ebene, aber keine Kinder aus tieferen BG-Ebenen berücksichtigt werden + + dispoaktiv_statuses = {} + beistellung_statuses = {} + + for child_id in children_ids: + dispoaktiv_statuses[child_id] = self.get_bom_properties("Dispoaktiv")[child_id] + beistellung_statuses[child_id] = self.get_bom_properties("Lieferantenbeistellung")[child_id] + + if "False" not in dispoaktiv_statuses.values() and "True" not in beistellung_statuses.values(): return (True, {}) if teilenummer not in blacklist_ids: