diverse Ergänzungen in den Abhängikeiten der Callbackfunktionen. Strings der Fertigungsarten haben Kürzel. Callback der fos Gruppe geändert

This commit is contained in:
2024-03-06 17:13:15 +01:00
parent 2e3061d238
commit 3dc8af5e70
+123 -94
View File
@@ -55,12 +55,12 @@ class CadItem(DataModel):
"Freigabevermerk", "ZusaetzlicheInformationen"]
gui_data_keys = [
# Felder der Oberfläche um etwas einzugeben
"asm_id",
"teilenummer",
"datenbank",
# Felder der Oberfläche um etwas einzugeben oberflaeche_neu
"asm_id",
"teilenummer",
"datenbank",
"pdm_kategorie_neu",
"neuaufbau",
"neuaufbau",
"aus_halbzeug_neu",
"halbzeugnummer_neu",
"halbzeuglaenge_neu",
@@ -174,6 +174,11 @@ class CadItem(DataModel):
self._controller = None
self._logic = None
def clear(self):
self._data = {}
self._gui_data = {}
self._read_only_items = {}
def add_logic(self, logic):
self._logic = logic
@@ -280,9 +285,8 @@ class CadItem(DataModel):
if "tosgruppe_sivas" in translated_data:
text = translated_data["tosgruppe_sivas"]
if text =="":
translated_data["beschaffungsart_neu"] = "6"
else:
translated_data["beschaffungsart_neu"] = ""
translated_data["tosgruppe_neu"] = "6"
# Spezial Freigabevermerk
if "freigabevermerk_sivas" in translated_data:
@@ -438,76 +442,83 @@ class CadItem(DataModel):
def check(self):
self.check_pflichtfelder()
def check_key_existence(self, key, missing):
if not self.get_gui_data(key):
missing.append(key)
def check_key_both_columns(self, key_sivas, key_neu, missing):
if not self.get_gui_data(key_sivas):
if not self.get_gui_data(key_neu):
missing.append(key_sivas)
missing.append(key_neu)
def check_pflichtfelder(self):
# Datenbank
# Pflichtfeld: Ja, immer
"""Allgemeine Prüfungen:
Solange nicht alle Pflichtfelder einen Wert aufweisen, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox erscheinen, in der alle Pflichtfelder aufgelistet sind, die keinen Wert aufweisen
"""
missing = list()
# Teilenummer
# Pflichtfeld: Ja, immer
self.check_key_existence("teilenummer", missing)
# Datenbank
# Pflichtfeld: Ja, immer
self.check_key_existence("datenbank", missing)
# PDM-Kategorie
# Pflichtfeld: Ja, immer
self.check_key_existence("pdm_kategorie_neu", missing)
# Halbzeugfarbe
# Logik, die steuert, wann es sich um ein Pflichtfeld handelt:
# IF Halbzeugoberfläche == "eloxieren" OR "lackieren" OR "pulverbeschichten":
# Pflichtfeld = True
# ELSE:
# Pflichtfeld = False
hblzeug_oberfläche = self.get_gui_data("oberflaeche_neu")
if hblzeug_oberfläche == "eloxieren" or hblzeug_oberfläche == "lackieren" or hblzeug_oberfläche == "pulverbeschichten":
if not self.get_gui_data("halbzeugfarbe_neu"):
missing.append("halbzeugfarbe_neu")
# Lebenszyklusstatus
# Pflichtfeld: Ja, immer
self.check_key_existence("lebenszyklus_status_neu", missing)
# 3D-Modell
# Pflichtfeld: Ja, immer
self.check_key_existence("model3d_neu", missing)
# Bezeichnung 1
# Pflichtfeld: Ja, immer
# Bezeichnung 2
# Pflichtfeld: Nein
self.check_key_both_columns("bezeichnung1_sivas", "bezeichnung1_neu", missing)
# Halbzeug ohne Sägeliste
# Pflichtfeld: Ja, immer
self.check_key_both_columns("halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu", missing)
# Rüstcode
# Pflichtfeld: Ja, immer
self.check_key_both_columns("ruestcode_sivas", "ruestcode_neu", missing)
pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu")
# Fertigungsart
# Logik, die steuert, wann es sich um ein Pflichtfeld handelt:
# IF PDM-Kategorie == "Einzelteil" OR "Schweissbaugruppe":
# Pflichtfeld = True
# ELSE IF PDM-Kategorie == "Baugruppe" OR "Kaufteil":
# Pflichtfeld = False
if pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Schweissbaugruppe":
self.check_key_existence("fertigungsart_neu", missing)
# Allgemeintoleranz
# Logik, die steuert, wann es sich um ein Pflichtfeld handelt:
self.check_key_both_columns("allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
# FOS-Gruppe
# Pflichtfeld: Ja, immer
self.check_key_both_columns("fosGruppe_sivas", "fosGruppe_neu", missing)
# Kalkulationsart
# Pflichtfeld: Ja, immer
self.check_key_both_columns("kalkulationsart_sivas", "kalkulationsart_neu", missing)
# Beschaffungsart
# Pflichtfeld: Ja, immer
self.check_key_both_columns("beschaffungsart_sivas", "beschaffungsart_neu", missing)
# Mengeneinheit
# Pflichtfeld: Ja, immer
self.check_key_both_columns("mengeneinheit_sivas", "mengeneinheit_neu", missing)
# Halbzeug
# Pflichtfeld: Ja, immer
self.check_key_both_columns("halbzeug_sivas", "halbzeug_neu", missing)
# TOS-Gruppe
# Pflichtfeld: Ja, immer
self.check_key_both_columns("tosgruppe_sivas", "tosgruppe_neu", missing)
# Dispogruppe
# Pflichtfeld: Ja, immer
self.check_key_both_columns("dispogruppe_sivas", "dispogruppe_neu", missing)
# Dispolaufgruppe
# Pflichtfeld: Ja, immer
# Werkstoffdiskrepanz
# Pflichtfeld: Nein
self.check_key_both_columns("dispolaufgruppe_sivas", "dispolaufgruppe_neu", missing)
# Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht)
# IF Aus Halbzeug == True (Haken gesetzt):
# Pflichtfeld = False
# ELSE:
# Pflichtfeld = True
# Werkstofftyp
aus_halbzeug = self.get_gui_data("aus_halbzeug_neu")
if aus_halbzeug is False:
self.check_key_both_columns("werkstofftyp_sivas", "werkstofftyp_neu", missing)
# Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht)
# Änderungstext
# Pflichtfeld: Ja, immer
self.check_key_both_columns("aenderungstext_sivas", "aenderungstext_neu", missing)
# Freigabevermerk
# Pflichtfeld: Ja, immer
self.check_key_both_columns("freigabevermerk_sivas", "freigabevermerk_neu", missing)
# Automatische Zusatzinformationen
# Pflichtfeld: Nein
# Allgemeine Prüfungen:
# Solange nicht alle Pflichtfelder einen Wert aufweisen, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox erscheinen, in der alle Pflichtfelder aufgelistet sind, die keinen Wert aufweisen
pass
self.check_key_existence("zusatzinfos_auto_text", missing)
return missing
class CadItemRepository:
"""
@@ -559,7 +570,9 @@ class GuiLogic():
self.call_and_set_data('cb_pdm_kategorie_neu')
self.call_and_set_data('cb_aus_halbzeug_neu')
self.call_and_set_data('cb_ruestcode_neu')
# self.call_and_set_data('cb_lebenszyklus_status_neu')
self.call_and_set_data('cb_lebenszyklus_status_neu')
self.call_and_set_data('cb_fosGruppe_neu')
# self.call_and_set_data('cb_3Dmodel_neu')
def call_and_set_data(self, callbackfunc):
@@ -649,9 +662,7 @@ class GuiLogic():
elif key == 'cb_ruestcode_neu':
ret = [ 'cb_halbzeugOhneSaege_neu', 'cb_mengeneinheit_neu', 'cb_halbzeug_neu']
elif key == 'cb_fertigungsart_neu':
ret = []
elif key == 'cb_allgemeintoleranz_neu':
ret = ['cb_fertigungsart_neu']
ret = ['cb_allgemeintoleranz_neu']
elif key == 'cb_fosGruppe_neu':
ret = []
elif key == 'cb_kalkulationsart_neu':
@@ -671,9 +682,9 @@ class GuiLogic():
elif key == 'cb_werkstoffdiskrepanz':
ret = []
elif key == 'cb_werkstofftyp_neu':
ret = []
ret = ['cb_material_neu']
elif key == 'cb_material_neu':
ret = []
ret = ['cb_oberflaeche_neu']
elif key == 'cb_oberflaeche_neu':
ret = ['cb_farbe_neu']
elif key == 'cb_farbe_neu':
@@ -935,8 +946,8 @@ class GuiLogic():
if selected is None:
# Default Vorbelegung
default = ''
if fertigungsart_sivas == '' or fertigungsart_sivas != "schweissen":
default = "schweissen"
if fertigungsart_sivas == '' or fertigungsart_sivas != "SW - schweißen":
default = "SW - schweißen"
else:
default = ""
ret['fertigungsart_neu'] = default
@@ -956,31 +967,31 @@ class GuiLogic():
elif pdm_kategorie_neu == "Kaufteil" or pdm_kategorie_neu == "Schweissbaugruppe":
cblist = None
if pdm_kategorie_neu == "Einzelteil":
if fertigungsart == "3D-drucken":
if fertigungsart == "3D - 3D drucken":
section = "Allgemeintoleranz3DDruck"
elif fertigungsart == "biegen":
elif fertigungsart == "BI - biegen":
section = "AllgemeintoleranzSpanen"
elif fertigungsart == "drehen":
elif fertigungsart == "DR - drehen":
section = "AllgemeintoleranzSpanen"
elif fertigungsart == "extrudieren":
elif fertigungsart == "EX - extrudieren":
section = "AllgemeintoleranzExtrudieren"
elif fertigungsart == "fräsen":
elif fertigungsart == "FR - fräsen":
section = "AllgemeintoleranzSpanen"
elif fertigungsart == "gießen":
elif fertigungsart == "GI - gießen":
section = "AllgemeintoleranzGiessen"
elif fertigungsart == "laser-/wasserstrahlschneiden":
elif fertigungsart == "LW - laser- und wasserstrahlschneiden":
section = "AllgemeintoleranzSpanen"
elif fertigungsart == "verpressen":
elif fertigungsart == "PR - verpressen":
section = "AllgemeintoleranzVerpressen"
elif fertigungsart == "sägen":
elif fertigungsart == "SA - sägen":
section = "AllgemeintoleranzSpanen"
elif fertigungsart == "strangpressen":
elif fertigungsart == "SN - strangpressen":
section = "AllgemeintoleranzStrangpressen"
elif fertigungsart == "spritzgießen":
elif fertigungsart == "SP - spritzgießen":
section = "AllgemeintoleranzSpritzgiessen"
elif fertigungsart == "stanzen":
elif fertigungsart == "ST - stanzen":
section = "AllgemeintoleranzStanzen"
elif fertigungsart == "schweissen":
elif fertigungsart == "SW - schweißen":
section = "AllgemeintoleranzSchweissen"
else:
raise Exception("no such fertigungsart "+ fertigungsart)
@@ -996,38 +1007,38 @@ class GuiLogic():
elif pdm_kategorie_neu == "Schweissbaugruppe":
default = "EN ISO 13920-BF"
else:
if fertigungsart == "3D-drucken":
if fertigungsart == "3D - 3D-drucken":
default = "ISO 2768:1991-mK"
elif fertigungsart == "biegen":
elif fertigungsart == "BI - biegen":
default = "ISO 2768:1991-mK"
elif fertigungsart == "drehen":
elif fertigungsart == "DR - drehen":
default = "ISO 2768:1991-mK"
elif fertigungsart == "extrudieren":
elif fertigungsart == "EX - extrudieren":
default = "DIN 16941 - 3A"
elif fertigungsart == "fräsen":
elif fertigungsart == "FR - fräsen":
default = "ISO 2768:1991-mK"
elif fertigungsart == "gießen":
elif fertigungsart == "GI - gießen":
default = "ISO 8062-3 - DCTG 10"
elif fertigungsart == "laser-/wasserstrahlschneiden":
elif fertigungsart == "LW - laser-/wasserstrahlschneiden":
default = "ISO 2768:1991-mK"
elif fertigungsart == "verpressen":
elif fertigungsart == "PR - verpressen":
default = "ISO 2768:1991-mK"
elif fertigungsart == "sägen":
elif fertigungsart == "SA - sägen":
default = "ISO 2768:1991-mK"
elif fertigungsart == "strangpressen":
elif fertigungsart == "SN - strangpressen":
default = "EN 12020-2"
elif fertigungsart == "spritzgießen":
elif fertigungsart == "SP - spritzgießen":
default = "ISO 20457 - TG5"
elif fertigungsart == "stanzen":
elif fertigungsart == "ST - stanzen":
default = "DIN 6930-2 - m"
elif fertigungsart == "schweissen":
elif fertigungsart == "SW - schweißen":
# TODO
default = ""
else:
raise Exception("no such fertigungsart "+ fertigungsart)
ret['fertigungsart_neu'] = default
ret['allgemeintoleranz_neu'] = default
else:
ret['fertigungsart_neu'] = selected
ret['allgemeintoleranz_neu'] = selected
return ret
@@ -1039,6 +1050,10 @@ class GuiLogic():
ret['fosGruppe_neu'] = ''
if pdm_kategorie_neu == "Kaufteil":
cblist = self._config.Allgemein.get_options("FOS_Gruppe")
elif pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
cblist = ['1 - Baugruppe']
elif pdm_kategorie_neu == "Einzelteil":
cblist = ['0 - Einzelteil']
else:
cblist = None
ret['cb_fosGruppe_neu'] = cblist
@@ -1046,15 +1061,29 @@ class GuiLogic():
if selected is None:
# Default Vorbelegung
default = ''
if pdm_kategorie_neu == "Baugruppe":
if fos_gruppe == "0 - Einzelteil" or fos_gruppe == "":
if fos_gruppe == None:
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
default = "1 - Baugruppe"
else:
if fos_gruppe == "1 - Baugruppe" or fos_gruppe == "":
elif pdm_kategorie_neu == "Einzelteil":
default = "0 - Einzelteil"
elif pdm_kategorie_neu == "Kaufteil":
default = cblist[0]
ret['fosGruppe_neu'] = default
else:
ret['fosGruppe_neu'] = selected
# if selected is None:
# # Default Vorbelegung
# default = ''
# if pdm_kategorie_neu == "Baugruppe":
# if fos_gruppe == "0 - Einzelteil" or fos_gruppe == None:
# default = "1 - Baugruppe"
# else:
# if fos_gruppe == "1 - Baugruppe" or fos_gruppe == None:
# default = "0 - Einzelteil"
# ret['fosGruppe_neu'] = default
# else:
# ret['fosGruppe_neu'] = selected
return ret
def cb_kalkulationsart_neu(self, selected):
@@ -1286,7 +1315,7 @@ class GuiLogic():
default = mat['Message']
else:
# TODO beim migrieren die Meldung bringen
self._model.message_info('Materialinformation', 'material_infos')
#self._model.message_info('Materialinformation', 'material_infos')
pass
else:
pass