FIX - Wenn Teilenummern aus tieferen Baugruppenebenen dispoinaktiv oder beigestellt waren wurde für die aktuelle Baugruppenebene rückgemeldet, dass sie in der Blacklist fehlt. Teilenummer aus tieferen Baugruppenebenen dürfen aber nicht berücksichtigt werden.

This commit is contained in:
2024-07-01 13:04:44 +02:00
parent 2b0bad3cb3
commit 7c0ad9776c
+17 -4
View File
@@ -518,6 +518,13 @@ class CadItem(DataModel):
else: else:
return None 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): def sivas_data_from_csv(self, cid):
path = os.path.join(self._controller.get_env("data"), cid + '.csv') path = os.path.join(self._controller.get_env("data"), cid + '.csv')
if os.path.exists(path): if os.path.exists(path):
@@ -728,11 +735,17 @@ class CadItem(DataModel):
config = self._controller.get_config() config = self._controller.get_config()
blacklist_ids = set(config.get_blacklist()) 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, {}) return (True, {})
if teilenummer not in blacklist_ids: if teilenummer not in blacklist_ids: