diff --git a/lib/caditem.py b/lib/caditem.py index f2bbfac..cb4c91c 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -283,11 +283,10 @@ class CadItem(DataModel): 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" + # Spezial Hersteller: aus "80312 - Rehau AG & Co." wird "Rehau AG & Co." + if "hersteller_sivas" in translated_data: + text = translated_data["hersteller_sivas"] + translated_data["hersteller_sivas"] = re.sub(r"^.*-\s+", "", text, flags=re.I) return translated_data @@ -473,11 +472,10 @@ class GuiLogic(): def set_gui_defaults(self): # set defaults from given logic self.call_and_set_data('cb_pdm_kategorie_neu') - self.call_and_set_data('cb_neuaufbau') self.call_and_set_data('cb_aus_halbzeug_neu') - self.call_and_set_data('cb_halbzeugoberflaeche') - self.call_and_set_data('cb_lebenszyklus_status_neu') - self.call_and_set_data('cb_3Dmodel_neu') + self.call_and_set_data('cb_ruestcode_neu') + # self.call_and_set_data('cb_lebenszyklus_status_neu') + # self.call_and_set_data('cb_3Dmodel_neu') def call_and_set_data(self, callbackfunc): eval('self._model.set_gui_dict(self.'+callbackfunc+'(None))') @@ -545,11 +543,11 @@ class GuiLogic(): """ ret = list() if key == 'cb_pdm_kategorie_neu': - ret = ['cb_neuaufbau', 'cb_aus_halbzeug_neu', 'cb_3Dmodel_neu', 'cb_halbzeugOhneSaege_neu', 'cb_ruestcode_neu'] + ret = ['cb_neuaufbau', 'cb_aus_halbzeug_neu', 'cb_3Dmodel_neu', 'cb_halbzeugOhneSaege_neu', 'cb_ruestcode_neu', "cb_fertigungsart_neu", "cb_allgemeintoleranz_neu", "cb_fosGruppe_neu", "cb_kalkulationsart_neu", "cb_beschaffungsart_neu", "cb_mengeneinheit_neu", "cb_halbzeug_neu", "cb_dispogruppe_neu", "cb_dispolaufgruppe_neu", "cb_hersteller_neu", "cb_werkstoffdiskrepanz", "cb_werkstofftyp_neu"] elif key == 'cb_neuaufbau': ret = [] elif key == 'cb_aus_halbzeug_neu': - ret = ['cb_halbzeugoberflaeche', 'cb_halbzeugfarbe'] + ret = ['cb_halbzeugoberflaeche', 'cb_halbzeugfarbe', "cb_werkstoffdiskrepanz", "cb_werkstofftyp_neu"] elif key == "cb_halbzeugoberflaeche": ret = ['cb_halbzeugfarbe', 'cb_halbzeugfarbe'] elif key == "cb_halbzeugfarbe": @@ -561,11 +559,11 @@ class GuiLogic(): elif key == 'cb_halbzeugOhneSaege_neu': ret = [] elif key == 'cb_ruestcode_neu': - ret = [ 'cb_halbzeugOhneSaege_neu'] + ret = [ 'cb_halbzeugOhneSaege_neu', "cb_mengeneinheit_neu", "cb_halbzeug_neu"] elif key == 'cb_fertigungsart_neu': ret = [] elif key == 'cb_allgemeintoleranz_neu': - ret = [] + ret = ["cb_fertigungsart_neu"] elif key == 'cb_fosGruppe_neu': ret = [] elif key == 'cb_kalkulationsart_neu': @@ -780,29 +778,26 @@ class GuiLogic(): def cb_halbzeugOhneSaege_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + ruestcode = self._model.get_gui_data("ruestcode_sivas") - ret['cb_halbzeugOhneSaege_neu'] = '' - ret['halbzeugOhneSaege_neu'] = '' + cblist = [] if pdm_kategorie_neu == "Baugruppe": # Dropdownwerte = None (keine Werte) # state = disabled pass else: - ruestcode = self._model.get_gui_data("cb_ruestcode_neu") if ruestcode == "HZS Halbzeuge Sägeteile": - # [HalbzeugOhneSaegeliste] - # Sägeliste nicht benötigt - # Sägeliste benötigt - lhalbzg = self._config.Allgemein.get_options("HalbzeugOhneSaegeliste") - if selected is None: - ret['halbzeugOhneSaege_neu'] = lhalbzg[0] - ret['cb_halbzeugOhneSaege_neu'] = lhalbzg - else: - ret['halbzeugOhneSaege_neu'] = selected - else: - # Dropdownwerte = None (keine Werte) - # state = disabled - pass + cblist = self._config.Allgemein.get_options("HalbzeugOhneSaegeliste") + ret['cb_halbzeugOhneSaege_neu'] = cblist + + + if selected is None: + default = '' + if len(cblist) > 0: + default = cblist[0] + ret['halbzeugOhneSaege_neu'] = default + else: + ret['halbzeugOhneSaege_neu'] = selected return ret def cb_ruestcode_neu(self, selected): @@ -1137,18 +1132,19 @@ class GuiLogic(): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") - ret['cb_hersteller_neu'] = '' - ret['hersteller_neu'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass - else: - pass + cblist = self._config.Hersteller.get_all() + ret['cb_hersteller_neu'] = cblist + # if pdm_kategorie_neu == "Kaufteil": + # # state readonly + # pass + # else: + # # disabled + # pass if selected is None: # Default Vorbelegung - default = '' - ret['hersteller_neu'] = default + ret['hersteller_neu'] = "" else: ret['hersteller_neu'] = selected @@ -1156,53 +1152,57 @@ class GuiLogic(): def cb_werkstoffdiskrepanz(self, selected): ret = dict() - pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") - - ret['cb_werkstoffdiskrepanz'] = '' - if pdm_kategorie_neu == "Baugruppe": - pass - else: - pass - - + aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu") + if aus_halbzeug == True: + ret['cb_werkstoffdiskrepanz'] = True + #state = disabled + # else: + # state = keiner return ret - # def cb_werkstofftyp_neu(self, selected_werkstoff): - # """bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche""" + def cb_werkstofftyp_neu(self, selected): + """bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche""" + ret = dict() + pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") + aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu") + werkstoff = self._model.get_gui_data("werkstofftyp_sivas") + + # Combobox: + if pdm_kategorie_neu == "Einzelteil": + if aus_halbzeug == True: + cblist = None + else: + cblist = self._config.Werkstoffe.get_options("Werkstofftyp") + else: + cblist = None + ret['cb_material_neu'] = cblist - # # Logik, die steuert, welcher Defaultwert gilt: - - # # In den nachfolgenden Fällen darf kein Defaultwert eingetragen - # # werden (selbst wenn in from_siv.csv ein Wert in der Spalte - # # "Werkstoff" eingetragen sein sollte): - # # PDM-Kategorie == "Baugruppe" - # # PDM-Kategorie == "Schweissbaugruppe" - # # PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt) - - # # Gilt PDM-Kategorie == "Kaufteil" soll der Defaultwert "siehe - # # Hersteller" eingetragen werden - - # # Gilt PDM-Kategorie == "Einzelteil" und Aus Halbzeug == False (kein - # # Haken), dann wird der Defaultwert wie folgt bestimmt: - # ret = dict() - # # das Feld selbst mit dem Selektierten beschreiben - # ret['werkstofftyp_neu']= selected_werkstoff - - # pdm_kat = self._model.get_gui_data("pdm_kategorie_neu") - # aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu") - - # if pdm_kat == 'Einzelteil' and aus_halbzeug is False: - # wnamen = self._config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff) - # # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell - # ret = { - # # das Feld selbst mit dem Selektierten beschreiben - # 'werkstofftyp_neu': selected_werkstoff, - # # die neuen Inhalte der comboboxen setzen - # 'cb_material_neu': wnamen, - # # der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen - # 'material_neu': wnamen[0], - # } - # return ret + # Logik, die steuert, welcher Defaultwert gilt: + if selected is None: + # Default Vorbelegung + default = '' + if pdm_kategorie_neu != "Einzelteil": + pass + elif pdm_kategorie_neu == "Einzelteil" and aus_halbzeug == True: + pass + elif werkstoff == "": + pass + elif pdm_kategorie_neu == "Einzelteil" and aus_halbzeug == False: + mlist = self._config.Materialien.get_all_materials() + if werkstoff in mlist: + mat = self._config.Materialien.get_material_of_type(werkstoff) + if 'Werkstofftyp' in mat: + default = mat['Werkstofftyp'] + else: + default = mat['Message'] + else: + self._model.message_info('Materialinformation', 'material_infos') + else: + pass + ret['werkstofftyp_neu'] = default + else: + ret['werkstofftyp_neu'] = selected + return ret def cb_material_neu(self, selected): ret = dict() @@ -1223,6 +1223,7 @@ class GuiLogic(): ret['material_neu'] = selected return ret + def cb_oberflaeche_neu(self, selected): ret = dict() pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")