From 95e4c366d6ba9c6a0a63eb9ade15b4e7e11770ba Mon Sep 17 00:00:00 2001 From: mistangl Date: Thu, 29 Feb 2024 14:49:28 +0100 Subject: [PATCH] weiter die Logiken einprogrammiert --- lib/caditem.py | 460 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 369 insertions(+), 91 deletions(-) diff --git a/lib/caditem.py b/lib/caditem.py index d4cd0f0..f2bbfac 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -255,12 +255,7 @@ class CadItem(DataModel): def get_all_gui_data(self): return self._gui_data - def csv2guidata(self, data): - translated_data = dict() - for k,v in data.items(): - if k in self.excel_to_gui and v is not None: - translated_data[self.excel_to_gui[k]] = v - + def _transform_content_from_csv(self, translated_data): # Spezial: Abkürzungen .kpl rausschmeissen. Text eventuell kürzen if "bezeichnung1_sivas" in translated_data: text = translated_data["bezeichnung1_sivas"] @@ -274,10 +269,41 @@ class CadItem(DataModel): else: translated_data["halbzeugOhneSaege_sivas"] = "Sägeliste nicht benötigt" + # Spezial Beschaffungsart + if "beschaffungsart_sivas" in translated_data: + text = translated_data["beschaffungsart_sivas"] + if text =="Eigenbaugruppe": + translated_data["beschaffungsart_sivas"] = "Eigenbau" + + # Spezial TOS Gruppe + if "tosgruppe_sivas" in translated_data: + text = translated_data["tosgruppe_sivas"] + if text =="": + translated_data["beschaffungsart_neu"] = "6" + else: + translated_data["beschaffungsart_neu"] = "" + + # Spezial Hersteller + if "tosgruppe_sivas" in translated_data: + text = translated_data["tosgruppe_sivas"] + if text =="": + translated_data["beschaffungsart_neu"] = "6" + + return translated_data + + + def csv2guidata(self, data): + translated_data = dict() + for k,v in data.items(): + if k in self.excel_to_gui and v is not None: + translated_data[self.excel_to_gui[k]] = v + # Spezial: Befüllung von Änderungstext mit dem Author, falls in der .csv vorhanden if "Indexerfasser" in data and "Aenderungstext" in data: translated_data["aenderungstext_sivas"] = '{aenderungstext} (von {author})'.format(aenderungstext=data["Aenderungstext"], author=data["Indexerfasser"]) # Indexerfasser wird nicht in der gui verwaltet. Deshalb Modifikation aus den Rohdaten + + translated_data = self._transform_content_from_csv(translated_data) self.set_gui_dict(translated_data) return translated_data @@ -425,6 +451,11 @@ class CadItemRepository: return raise Exception("CadItem not found") + def message_info(self, title, key, questions='ok'): + return self._controller.message_info(title, key, questions) + + def message_error(self, title, key): + return self._controller.message_error(title, key) class GuiLogic(): @@ -777,123 +808,332 @@ class GuiLogic(): def cb_ruestcode_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") - - ret['cb_ruestcode_neu'] = '' - ret['ruestcode_neu'] = '' + ruestcode_sivas = self._model.get_gui_data("ruestcode_sivas") + truemmer = self._model.get_gui_data("truemmer") + if pdm_kategorie_neu == "Baugruppe": lrstcodes = self._config.Allgemein.get_options("RuestcodeBaugruppe") else: lrstcodes = self._config.Allgemein.get_options("RuestcodeStandard") + ret['cb_ruestcode_neu'] = lrstcodes + ret['ruestcode_neu'] = '' if selected is None: - ret['ruestcode_neu'] = lrstcodes[0] - ret['cb_ruestcode_neu'] = lrstcodes + # Default Vorbelegung + if ruestcode_sivas == "" or truemmer == "J": + if pdm_kategorie_neu == "Baugruppe": + default = lrstcodes[0] + else: + self._model.message_info('Rüstcodeinformationen', 'rüstcode_infos') + default = '' + else: + default = '' + ret['ruestcode_neu'] = default else: ret['ruestcode_neu'] = selected - # self._controller.message_info('Rüstcodeinformationen', 'rüstcode_infos') + return ret - def cb_fertigungsart_neu(self, value): + def cb_fertigungsart_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + fertigungsart_sivas = self._model.get_gui_data("fertigungsart_sivas") - ret['cb_halbzeugOhneSaege_neu'] = '' - ret['fertigungsart_neu'] = '' if pdm_kategorie_neu == "Baugruppe": - pass + cblist = self._config.Fertigung.get_options("FertigungsartenBaugruppe") + ret['cb_fertigungsart_neu'] = cblist + + elif pdm_kategorie_neu == "Einzelteil": + cblist = self._config.Fertigung.get_options("Fertigungsarten") + ret['cb_fertigungsart_neu'] = cblist else: - pass + ret['cb_fertigungsart_neu'] = '' + + if selected is None: + # Default Vorbelegung + default = '' + if pdm_kategorie_neu == "Schweissbaugruppe": + if fertigungsart_sivas == "schweißen": + default = "schweissen" + ret['fertigungsart_neu'] = default + else: + ret['fertigungsart_neu'] = selected return ret - def cb_allgemeintoleranz_neu(self, value): + + def cb_allgemeintoleranz_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + fertigungsart = self._model.get_gui_data("fertigungsart_sivas") + - ret['cb_allgemeintoleranz_neu'] = '' ret['allgemeintoleranz_neu'] = '' if pdm_kategorie_neu == "Baugruppe": - pass + cblist = self._config.Fertigung.get_options("AllgemeintoleranzBaugruppe") + elif pdm_kategorie_neu == "Kaufteil" or pdm_kategorie_neu == "Schweissbaugruppe": + cblist = None + if pdm_kategorie_neu == "Einzelteil": + if fertigungsart == "3D-drucken": + section = "Allgemeintoleranz3DDruck" + elif fertigungsart == "biegen": + section = "AllgemeintoleranzSpanen" + elif fertigungsart == "drehen": + section = "AllgemeintoleranzSpanen" + elif fertigungsart == "extrudieren": + section = "AllgemeintoleranzExtrudieren" + elif fertigungsart == "fräsen": + section = "AllgemeintoleranzSpanen" + elif fertigungsart == "gießen": + section = "AllgemeintoleranzGiessen" + elif fertigungsart == "laser-/wasserstrahlschneiden": + section = "AllgemeintoleranzSpanen" + elif fertigungsart == "verpressen": + section = "AllgemeintoleranzVerpressen" + elif fertigungsart == "sägen": + section = "AllgemeintoleranzSpanen" + elif fertigungsart == "strangpressen": + section = "AllgemeintoleranzStrangpressen" + elif fertigungsart == "spritzgießen": + section = "AllgemeintoleranzSpritzgiessen" + elif fertigungsart == "stanzen": + section = "AllgemeintoleranzStanzen" + elif fertigungsart == "schweißen": + section = "AllgemeintoleranzSchweissen" + else: + raise Exception("no such fertigungsart "+ fertigungsart) + cblist = self._config.Fertigung.get_options(section) else: - pass - return ret - def cb_fosGruppe_neu(self, value): - ret = dict() - pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + cblist = None + ret['cb_allgemeintoleranz_neu'] = cblist - ret['cb_fosGruppe_neu'] = '' - ret['fosGruppe_neu'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass + if selected is None: + # Default Vorbelegung + if pdm_kategorie_neu == "Bauteil" or pdm_kategorie_neu == "Kaufteil": + default = '' + elif pdm_kategorie_neu == "Schweissbaugruppe": + default = "EN ISO 13920-BF" + else: + if fertigungsart == "3D-drucken": + default = "ISO 2768:1991-mK" + elif fertigungsart == "biegen": + default = "ISO 2768:1991-mK" + elif fertigungsart == "drehen": + default = "ISO 2768:1991-mK" + elif fertigungsart == "extrudieren": + default = "DIN 16941 - 3A" + elif fertigungsart == "fräsen": + default = "ISO 2768:1991-mK" + elif fertigungsart == "gießen": + default = "ISO 8062-3 - DCTG 10" + elif fertigungsart == "laser-/wasserstrahlschneiden": + default = "ISO 2768:1991-mK" + elif fertigungsart == "verpressen": + default = "ISO 2768:1991-mK" + elif fertigungsart == "sägen": + default = "ISO 2768:1991-mK" + elif fertigungsart == "strangpressen": + default = "EN 12020-2" + elif fertigungsart == "spritzgießen": + default = "ISO 20457 - TG5" + elif fertigungsart == "stanzen": + default = "DIN 6930-2 - m" + elif fertigungsart == "schweißen": + # TODO + default = "" + else: + raise Exception("no such fertigungsart "+ fertigungsart) + ret['fertigungsart_neu'] = default else: - pass + ret['fertigungsart_neu'] = selected + return ret - def cb_kalkulationsart_neu(self, value): + def cb_fosGruppe_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + fos_gruppe = self._model.get_gui_data("fosGruppe_sivas") + + ret['fosGruppe_neu'] = '' + if pdm_kategorie_neu == "Kaufteil": + cblist = self._config.Allgemein.get_options("FOS_Gruppe") + else: + cblist = None + ret['cb_fosGruppe_neu'] = cblist + + if selected is None: + # Default Vorbelegung + default = '' + if pdm_kategorie_neu == "Baugruppe": + if fos_gruppe == "0 - Einzelteil" or fos_gruppe == "": + default = "1 - Baugruppe" + else: + if fos_gruppe == "1 - Baugruppe" or fos_gruppe == "": + default = "0 - Einzelteil" + ret['fosGruppe_neu'] = default + else: + ret['fosGruppe_neu'] = selected + return ret + + def cb_kalkulationsart_neu(self, selected): + ret = dict() + pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + calc_art = self._model.get_gui_data("kalkulationsart_sivas") ret['cb_kalkulationsart_neu'] = '' + + if pdm_kategorie_neu == "Kaufteil": + cblist = self._config.Allgemein.get_options("Kalkulationsart") + else: + cblist = None + ret['cb_kalkulationsart_neu'] = cblist + ret['kalkulationsart_neu'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass + if selected is None: + # Default Vorbelegung + default = '' + if pdm_kategorie_neu == "Kaufteil": + if calc_art == "Eigenbau" or calc_art == "": + default = "Kaufteil" + else: + if calc_art == "Kaufteil" or calc_art == "": + default = "Eigenbau" + ret['kalkulationsart_neu'] = default else: - pass + ret['kalkulationsart_neu'] = selected return ret - def cb_beschaffungsart_neu(self, value): + + def cb_beschaffungsart_neu(self, selected): + ret = dict() + pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + bart = self._model.get_gui_data("beschaffungsart_sivas") + + if pdm_kategorie_neu == "Einzelteil": + cblist = self._config.Allgemein.get_options("Beschaffungsart") + else: + cblist = None + ret['cb_beschaffungsart_neu'] = cblist + + ret['beschaffungsart_neu'] = '' + if selected is None: + # Default Vorbelegung + default = '' + if bart == "Eigenbau": + if pdm_kategorie_neu == "Kaufteil": + default = "Kaufteil" + else: + default = "" + elif bart == "Kaufteil": + if pdm_kategorie_neu == "Baugruppe": + default = "Eigenbau" + elif pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Kaufteil": + default = "" + elif pdm_kategorie_neu == "Schweissbaugruppe": + default = "Eigenbau" + self._model.message_info('Beschaffungsart', 'beschaffungsart_infos') + + ret['beschaffungsart_neu'] = default + else: + ret['beschaffungsart_neu'] = selected + + return ret + + def cb_mengeneinheit_neu(self, selected): + ret = dict() + pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + rcode = self._model.get_gui_data("ruestcode_sivas") + # TODO oder ruestcode_neu? + mengeneinheit = self._model.get_gui_data("mengeneinheit_sivas") + + cblist = None + if rcode == "SRC Standard Rüstcode" or rcode == "Trümmerbaugruppe": + pass # cblist = None + elif rcode == "HZS Halbzeuge Sägeteile": + if pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Kaufteil": + cblist = self._config.Allgemein.get_options("EinheitAusw") + elif pdm_kategorie_neu == "Schweissbaugruppe": + pass # cblist = None + else: + pass # cblist = None + ret['cb_mengeneinheit_neu'] = cblist + + if selected is None: + # Default Vorbelegung + default = '' + if rcode == "SRC Standard Rüstcode": + if mengeneinheit != "Stck - Stück": + default = "Stck - Stück" + else: + default = "" + + elif rcode == "HZS Halbzeuge Sägeteile": + if mengeneinheit != "M - Meter": + + if pdm_kategorie_neu == "Schweissbaugruppe": + default = "M - Meter" + elif pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Kaufteil": + default = "" + self._model.message_info('Mengeneinheit', 'mengeneinheit_infos') + + ret['mengeneinheit_neu'] = default + else: + ret['mengeneinheit_neu'] = selected + return ret + + def cb_halbzeug_neu(self, selected): + ret = dict() + pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + rcode = self._model.get_gui_data("ruestcode_sivas") + halbzeug = self._model.get_gui_data("halbzeug_sivas") + + if rcode == "SRC Standard Rüstcode" or rcode == "Trümmerbaugruppe": + cblist = "FALSCH" + elif rcode == "HZS Halbzeuge Sägeteile": + cblist = self._config.Allgemein.get_options("Halbzeug") + ret['cb_halbzeug_neu'] = cblist + + + if selected is None: + # Default Vorbelegung + default = '' + if halbzeug == "WAHR": + if rcode == "SRC Standard Rüstcode" or rcode == "Trümmerbaugruppe": + default = "FALSCH" + # elif rcode == "HZS Halbzeuge Sägeteile": + # default = "" + ret['halbzeug_neu'] = default + else: + ret['halbzeug_neu'] = selected + return ret + + def cb_dispogruppe_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") - ret['cb_beschaffungsart_neu'] = '' - ret['beschaffungsart_neu'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass + cblist = self._config.Allgemein.get_options("Dispogruppe") + ret['cb_dispogruppe_neu'] = cblist + + if selected is None: + # Default Vorbelegung + ret['dispogruppe_neu'] = '' else: - pass + ret['dispogruppe_neu'] = selected + return ret - def cb_mengeneinheit_neu(self, value): + + + def cb_dispolaufgruppe_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") - ret['cb_mengeneinheit_neu'] = '' - ret['mengeneinheit_neu'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass + cblist = self._config.Allgemein.get_options("Dispogruppe") + ret['cb_dispolaufgruppe_neu'] = cblist + if selected is None: + # Default Vorbelegung + ret['dispolaufgruppe_neu'] = '' else: - pass + ret['dispolaufgruppe_neu'] = selected return ret - def cb_halbzeug_neu(self, value): - ret = dict() - pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") - - ret['cb_halbzeug_neu'] = '' - ret['halbzeug_neu'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass - else: - pass - return ret - def cb_dispogruppe_neu(self, value): - ret = dict() - pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") - - ret['cb_dispogruppe_neu'] = '' - ret['dispogruppe_neu'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass - else: - pass - return ret - def cb_dispolaufgruppe_neu(self, value): - ret = dict() - pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") - - ret['cb_dispolaufgruppe_neu'] = '' - ret['dispolaufgruppe_neu'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass - else: - pass - return ret - def cb_hersteller_neu(self, value): + + def cb_hersteller_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") @@ -903,8 +1143,18 @@ class GuiLogic(): pass else: pass + + + if selected is None: + # Default Vorbelegung + default = '' + ret['hersteller_neu'] = default + else: + ret['hersteller_neu'] = selected + return ret - def cb_werkstoffdiskrepanz(self, value): + + def cb_werkstoffdiskrepanz(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") @@ -913,6 +1163,8 @@ class GuiLogic(): pass else: pass + + return ret # def cb_werkstofftyp_neu(self, selected_werkstoff): @@ -952,7 +1204,7 @@ class GuiLogic(): # } # return ret - def cb_material_neu(self, value): + def cb_material_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") @@ -962,8 +1214,16 @@ class GuiLogic(): pass else: pass + + if selected is None: + # Default Vorbelegung + default = '' + ret['material_neu'] = default + else: + ret['material_neu'] = selected + return ret - def cb_oberflaeche_neu(self, value): + def cb_oberflaeche_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") @@ -973,6 +1233,14 @@ class GuiLogic(): pass else: pass + + if selected is None: + # Default Vorbelegung + default = '' + ret['oberflaeche_neu'] = default + else: + ret['oberflaeche_neu'] = selected + return ret # def oberfläche(self, selected): @@ -996,17 +1264,27 @@ class GuiLogic(): # return ret def cb_farbe_neu(self, selected): + + ret = dict() + pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") farben_alle = self._config.Farben.get_farbauswahl() farben_elox = self._config.Farben.get_farben_eloxieren() # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell - ret = { - # das Feld selbst mit dem Selektierten beschreiben - 'farbe_neu': selected, - # die neuen Inhalte der comboboxen setzen - 'cb_farben': farben_alle, - # der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen - 'farbe_neu': farben_alle[0], - } + + ret['cb_farben'] = '' + if pdm_kategorie_neu == "Baugruppe": + pass + else: + pass + + + if selected is None: + # Default Vorbelegung + default = '' + ret['farbe_neu'] = default + else: + ret['farbe_neu'] = selected + return ret if __name__ == "__main__":