Basierend auf Commit d905896 werden nun Teilenummern, die in $CREMIG_CFG/BOM-Settings.cfg -> Sektion 'ExcludedIDsInBOM' definiert sind aus der Darstellung des Treeviews ausgeschlossen. Darüber hinaus wird nun bei Ausführung von 'Lade lokal' in der GUI die lokale Teilestamm-CSV gezogen. Bisher wurde immer vom Server generiert, was vor allem bei Tests über einen Remoteclient sehr langsam ist.

This commit is contained in:
2025-04-27 17:36:41 +02:00
parent 39bd9e01e2
commit 58b16509da
2 changed files with 10 additions and 8 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ def build_gui(model, configs, env, sivasid=None, uselocal=True):
controller.set_env(env) controller.set_env(env)
controller.set_config(configs) controller.set_config(configs)
if sivasid: if sivasid:
controller.get_csv_files_of_asm(sivasid, uselocal) controller.get_csv_files_of_asm(sivasid, load_local_bom=uselocal, load_local_teilestamm=uselocal, load_local_rd_ids=uselocal)
logic = GuiLogic(model, configs) logic = GuiLogic(model, configs)
model.add_logic(logic) model.add_logic(logic)
+9 -7
View File
@@ -115,21 +115,23 @@ class Controller(Observer):
orange[red] = True orange[red] = True
return orange return orange
def get_csv_files_of_asm(self, asm_id, load_local_asm_json=False, load_local_rd_dbase=False): def get_csv_files_of_asm(self, asm_id, load_local_bom=False, load_local_teilestamm=False, load_local_rd_ids=False):
""" Holt sich die Metadaten der Stücklistenpositionen als CSV""" """ Holt sich die Metadaten der Stücklistenpositionen als CSV"""
data_dir = self.get_env("data") data_dir = self.get_env("data")
rd_dbase_filename = self.get_env("rd_dbase_filename") rd_dbase_filename = self.get_env("rd_dbase_filename")
sivas_bom = SivasBOM(data_dir, asm_id + '.json', load_local_asm_json) excluded_bom_ids = self._config.bom_config.get_excluded_ids("ExcludedPartnumbersInBOM")
sivas_bom = SivasBOM(asm_id, data_dir, asm_id + '.json', load_local_bom, excluded_bom_ids)
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 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_dbase) rd_data = RuleDesignerDatabaseConfig(data_dir, rd_dbase_filename, load_local_rd_ids)
migration_status = MigrationStatus(sivas_bom.child_ids, rd_data.ids) migration_status = MigrationStatus(sivas_bom.child_ids, rd_data.ids)
pending_ids = migration_status.ids_pending pending_ids = migration_status.ids_pending
sivas_teilestamm = SivasTeilestamm(data_dir, asm_id + '.csv') sivas_teilestamm = SivasTeilestamm(data_dir, asm_id + '.csv', load_local_csv=load_local_teilestamm)
sivas_teilestamm.create_csvs(pending_ids) sivas_teilestamm.create_csvs(pending_ids)
self._model.set_red_ids(pending_ids) self._model.set_red_ids(pending_ids)
@@ -154,11 +156,11 @@ class Controller(Observer):
def get_current_asm_id(self): def get_current_asm_id(self):
self._model.get_asm_id() self._model.get_asm_id()
def set_current_asm_id(self, asm_id, load_local_asm_json=False, load_local_rd_dbase=False): def set_current_asm_id(self, asm_id, load_local_bom=False, load_local_teilestamm=False, load_local_rd_ids=False):
# TODO save current given data. In case, ask whether you should save or drop # TODO save current given data. In case, ask whether you should save or drop
self._model.set_asm_id(asm_id) self._model.set_asm_id(asm_id)
# hole alle Daten vom Server # hole alle Daten vom Server
self.get_csv_files_of_asm(asm_id, load_local_asm_json, load_local_rd_dbase) self.get_csv_files_of_asm(asm_id, load_local_bom, load_local_teilestamm, load_local_rd_ids)
def set_current_item_id(self, cid): def set_current_item_id(self, cid):
"""setze eine neue Item ID """ """setze eine neue Item ID """
@@ -289,7 +291,7 @@ class Controller(Observer):
elif key == 'cb_ladelokal_asm': elif key == 'cb_ladelokal_asm':
current_asmid = self.data_from_view('asm_id') current_asmid = self.data_from_view('asm_id')
# hole dir nur die lokalen Daten. Keine Datenbankabfrage # hole dir nur die lokalen Daten. Keine Datenbankabfrage
self.set_current_asm_id(current_asmid, load_local_asm_json=True, load_local_rd_dbase=True) self.set_current_asm_id(current_asmid, load_local_bom=True, load_local_teilestamm=True, load_local_rd_ids=True)
elif key == 'cb_3dsuchen': elif key == 'cb_3dsuchen':
self.suche_3d() self.suche_3d()