Logik des Feldes 'Zusatzinformationen automatisch' überarbeitet. Konkret wurde die Erkennung der Fälle überarbeitet, bei denen Zusatzinformationen ausgegeben werden sollen. Es wird nun zunächst geprüft, ob die verschiedenen Einzelfälle, z.B. ob es sich um eine Trümmerbaugruppe handelt, auf die zu migrierende Nummer zutreffen. Ist dies der Fall wird der 'Treffer' gesammelt. Am Ende werden alle Treffer miteinander zu einem String kombiniert. Dieser kombinierte String wird anschließend in der 'Zusatzinformationen.cfg' gesucht. Bei Übereinstimmung wird der zugehörige Text aus der 'Zusatzinformationen.cfg' in das GUI-Textfeld geschrieben. Die Überarbeitung wurde durchgeführt, weil es immer mehr Fälle wurden und es mit der bisherigen Logik unübersichtlich wurde, wo der neue Fall eingefügt werden soll. Zudem entstanden Redundanzen. Die neue Logik sollte deutlich dynamischer, wartbarer und einfacher erweiterbar als die bisherige Variante sein. Es muss jedoch in der Zusatzinformationen.cfg darauf geachtet werden, dass die Optionen korrekt geschrieben werden, da das Programm sonst keine Übereinstimmung finden kann

This commit is contained in:
2025-07-11 22:28:54 +02:00
parent 95fb80dd57
commit cf4b632cba
3 changed files with 58 additions and 40 deletions
+7 -3
View File
@@ -121,9 +121,12 @@ class Controller(Observer):
data_dir = self.get_env("data")
rd_dbase_filename = self.get_env("rd_dbase_filename")
excluded_bom_ids = self._config.bom_config.get_excluded_ids("ExcludedPartnumbersInBOM")
excluded_bom_ids = self._config.bom_config.get_excluded_ids("ExcludedPartnumbersInBOM") # Artikelnummern wie z.B. "MA0000006" sollen nicht im Baum dargestellt werden
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)
@@ -137,6 +140,7 @@ 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):
@@ -184,8 +188,8 @@ class Controller(Observer):
# falls eine .json Datei davon im Work Ordner existiert, dann diese zuerst versuchen ins Modell zu laden
self._view.clear_rightframes()
self._model.clear()
isok = self._model.from_json_file(self.get_env("out"), cid)
if isok == False:
saved_json_exists = self._model.from_json_file(self.get_env("out"), cid)
if saved_json_exists == False:
# ansonsten die .csv Datei mit den SIVAS Infos aus data holen
loaded = self._model.sivas_data_from_csv(cid)
if loaded == None: