Check der Inhalte mit beider Spalten mit nur einem Rückgabewert versehen. Ansonsten unverständliche für den Nutzer. 3D Druck Keyword im Ruledesigner unterschiedlich. Beide Varianten erlaubt. Rückgabe von keiner Fertigungsart führt zu keinen Defaultwert der folgenden Comboboxen. Keine Exception deswegen mehr
This commit is contained in:
+56
-44
@@ -86,7 +86,7 @@ class CadItem(DataModel):
|
||||
"ersatzfuer_sivas", "ersatzfuer_neu",
|
||||
"ersetztdurch_sivas", "ersetztdurch_neu",
|
||||
"herstteilenr_sivas", "herstteilenr_neu",
|
||||
"werkstoffdiskr_sivas",
|
||||
"werkstoffdiskr_neu",
|
||||
"werkstofftyp_sivas", "werkstofftyp_neu",
|
||||
"material_sivas", "material_neu",
|
||||
"oberflaeche_neu",
|
||||
@@ -185,7 +185,6 @@ class CadItem(DataModel):
|
||||
self._read_only_items = {}
|
||||
if self._logic:
|
||||
self._logic.clear_states()
|
||||
self._logic.clear_configurations()
|
||||
|
||||
def add_logic(self, logic):
|
||||
self._logic = logic
|
||||
@@ -284,6 +283,10 @@ class CadItem(DataModel):
|
||||
|
||||
def _transform_content_from_csv(self, translated_data, author=None):
|
||||
""""baut die Texte aus der csv Datei nach dem Einladen um"""
|
||||
# default setzen
|
||||
if 'datenbank' not in translated_data:
|
||||
translated_data["datenbank"] = 'Produktiv'
|
||||
|
||||
# Änderungstext sollte Author enthalten wenn einer gegeben ist
|
||||
if 'aenderungstext_sivas' in translated_data:
|
||||
text= translated_data["aenderungstext_sivas"]
|
||||
@@ -494,17 +497,20 @@ class CadItem(DataModel):
|
||||
return self._controller.message_error(title, key)
|
||||
|
||||
def check(self):
|
||||
self.check_pflichtfelder()
|
||||
res = self.check_pflichtfelder()
|
||||
if len(res) > 0:
|
||||
return (False, res)
|
||||
else:
|
||||
return (True, [])
|
||||
|
||||
def check_key_existence(self, key, missing):
|
||||
def check_key_existence(self, mess, key, missing):
|
||||
if not self.get_gui_data(key):
|
||||
missing.append(key)
|
||||
missing.append(mess)
|
||||
|
||||
def check_key_both_columns(self, key_sivas, key_neu, missing):
|
||||
def check_key_both_columns(self, mess, 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)
|
||||
missing.append(mess)
|
||||
|
||||
def check_pflichtfelder(self):
|
||||
"""Allgemeine Prüfungen:
|
||||
@@ -513,65 +519,66 @@ class CadItem(DataModel):
|
||||
|
||||
missing = list()
|
||||
# Teilenummer
|
||||
self.check_key_existence("teilenummer", missing)
|
||||
self.check_key_existence( 'Teilenummer', "teilenummer", missing)
|
||||
# Datenbank
|
||||
self.check_key_existence("datenbank", missing)
|
||||
self.check_key_existence("Datenbank", "datenbank", missing)
|
||||
# PDM-Kategorie
|
||||
self.check_key_existence("pdm_kategorie_neu", missing)
|
||||
self.check_key_existence("PDM-Kategorie", "pdm_kategorie_neu", missing)
|
||||
|
||||
# Halbzeugfarbe
|
||||
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")
|
||||
missing.append("Halbzeugfarbe")
|
||||
|
||||
# Lebenszyklusstatus
|
||||
self.check_key_existence("lebenszyklus_status_neu", missing)
|
||||
self.check_key_existence("Lebenszyklusstatus", "lebenszyklus_status_neu", missing)
|
||||
|
||||
# 3D-Modell
|
||||
self.check_key_existence("model3d_neu", missing)
|
||||
self.check_key_existence("3D-Model", "model3d_neu", missing)
|
||||
# Bezeichnung 1
|
||||
self.check_key_both_columns("bezeichnung1_sivas", "bezeichnung1_neu", missing)
|
||||
self.check_key_both_columns("Bezeichnung 1", "bezeichnung1_sivas", "bezeichnung1_neu", missing)
|
||||
# Halbzeug ohne Sägeliste
|
||||
self.check_key_both_columns("halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu", missing)
|
||||
self.check_key_both_columns("Halbzeug ohne Sägeliste", "halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu", missing)
|
||||
# Rüstcode
|
||||
self.check_key_both_columns("ruestcode_sivas", "ruestcode_neu", missing)
|
||||
self.check_key_both_columns("Rüstcode", "ruestcode_sivas", "ruestcode_neu", missing)
|
||||
|
||||
pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu")
|
||||
# Fertigungsart
|
||||
if pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
self.check_key_existence("fertigungsart_neu", missing)
|
||||
self.check_key_both_columns("Fertigungsart", "fertigungsart_sivas", "fertigungsart_neu", missing)
|
||||
|
||||
|
||||
# Allgemeintoleranz
|
||||
self.check_key_both_columns("allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
|
||||
self.check_key_both_columns("Allgemeintoleranz", "allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
|
||||
# FOS-Gruppe
|
||||
self.check_key_both_columns("fosGruppe_sivas", "fosGruppe_neu", missing)
|
||||
self.check_key_both_columns("FOS-Gruppe", "fosGruppe_sivas", "fosGruppe_neu", missing)
|
||||
# Kalkulationsart
|
||||
self.check_key_both_columns("kalkulationsart_sivas", "kalkulationsart_neu", missing)
|
||||
self.check_key_both_columns("Kalkulationsart", "kalkulationsart_sivas", "kalkulationsart_neu", missing)
|
||||
# Beschaffungsart
|
||||
self.check_key_both_columns("beschaffungsart_sivas", "beschaffungsart_neu", missing)
|
||||
self.check_key_both_columns("Beschaffungsart", "beschaffungsart_sivas", "beschaffungsart_neu", missing)
|
||||
# Mengeneinheit
|
||||
self.check_key_both_columns("mengeneinheit_sivas", "mengeneinheit_neu", missing)
|
||||
self.check_key_both_columns("Mengeneinheit", "mengeneinheit_sivas", "mengeneinheit_neu", missing)
|
||||
# Halbzeug
|
||||
self.check_key_both_columns("halbzeug_sivas", "halbzeug_neu", missing)
|
||||
self.check_key_both_columns("Halbzeug", "halbzeug_sivas", "halbzeug_neu", missing)
|
||||
# TOS-Gruppe
|
||||
self.check_key_both_columns("tosgruppe_sivas", "tosgruppe_neu", missing)
|
||||
self.check_key_both_columns("Tosgruppe", "tosgruppe_sivas", "tosgruppe_neu", missing)
|
||||
# Dispogruppe
|
||||
self.check_key_both_columns("dispogruppe_sivas", "dispogruppe_neu", missing)
|
||||
self.check_key_both_columns("Dispogruppe", "dispogruppe_sivas", "dispogruppe_neu", missing)
|
||||
# Dispolaufgruppe
|
||||
self.check_key_both_columns("dispolaufgruppe_sivas", "dispolaufgruppe_neu", missing)
|
||||
self.check_key_both_columns("Dispolaufgruppe", "dispolaufgruppe_sivas", "dispolaufgruppe_neu", missing)
|
||||
|
||||
# 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)
|
||||
self.check_key_both_columns("Werkstofftyp", "werkstofftyp_sivas", "werkstofftyp_neu", missing)
|
||||
|
||||
# Änderungstext
|
||||
self.check_key_both_columns("aenderungstext_sivas", "aenderungstext_neu", missing)
|
||||
self.check_key_both_columns("Änderungstext", "aenderungstext_sivas", "aenderungstext_neu", missing)
|
||||
# Freigabevermerk
|
||||
self.check_key_both_columns("freigabevermerk_sivas", "freigabevermerk_neu", missing)
|
||||
self.check_key_both_columns("Freigabevermerk", "freigabevermerk_sivas", "freigabevermerk_neu", missing)
|
||||
# Automatische Zusatzinformationen
|
||||
self.check_key_existence("zusatzinfos_auto_text", missing)
|
||||
self.check_key_existence("Automatische Zusatzinformationen", "zusatzinfos_auto_text", missing)
|
||||
return missing
|
||||
|
||||
class CadItemRepository:
|
||||
@@ -1064,7 +1071,6 @@ class GuiLogic():
|
||||
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")
|
||||
|
||||
if pdm_kategorie_neu == "Kaufteil" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
self.set_state('cb_fertigungsart_neu', 'disabled')
|
||||
@@ -1082,13 +1088,7 @@ class GuiLogic():
|
||||
ret['cb_fertigungsart_neu'] = ''
|
||||
|
||||
if selected is None:
|
||||
# Default Vorbelegung
|
||||
default = ''
|
||||
if fertigungsart_sivas == '' or fertigungsart_sivas != "SW - schweißen":
|
||||
default = "SW - schweißen"
|
||||
else:
|
||||
default = ""
|
||||
ret['fertigungsart_neu'] = default
|
||||
ret['fertigungsart_neu'] = ''
|
||||
else:
|
||||
ret['fertigungsart_neu'] = selected
|
||||
return ret
|
||||
@@ -1105,7 +1105,9 @@ class GuiLogic():
|
||||
elif pdm_kategorie_neu == "Kaufteil" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
cblist = None
|
||||
if pdm_kategorie_neu == "Einzelteil":
|
||||
if fertigungsart == "3D - 3D drucken":
|
||||
if fertigungsart == "3D - 3D-drucken":
|
||||
section = "Allgemeintoleranz3DDruck"
|
||||
elif fertigungsart == "3D - 3D drucken":
|
||||
section = "Allgemeintoleranz3DDruck"
|
||||
elif fertigungsart == "BI - biegen":
|
||||
section = "AllgemeintoleranzSpanen"
|
||||
@@ -1131,9 +1133,14 @@ class GuiLogic():
|
||||
section = "AllgemeintoleranzStanzen"
|
||||
elif fertigungsart == "SW - schweißen":
|
||||
section = "AllgemeintoleranzSchweissen"
|
||||
elif fertigungsart == "":
|
||||
section = None
|
||||
else:
|
||||
raise Exception("no such fertigungsart "+ fertigungsart)
|
||||
cblist = self._config.Fertigung.get_list_in_section(section)
|
||||
if section:
|
||||
cblist = self._config.Fertigung.get_list_in_section(section)
|
||||
else:
|
||||
cblist = None
|
||||
else:
|
||||
cblist = None
|
||||
ret['cb_allgemeintoleranz_neu'] = cblist
|
||||
@@ -1147,6 +1154,8 @@ class GuiLogic():
|
||||
else:
|
||||
if fertigungsart == "3D - 3D-drucken":
|
||||
default = "ISO 2768:1991-mK"
|
||||
elif fertigungsart == "3D - 3D drucken":
|
||||
default = "ISO 2768:1991-mK"
|
||||
elif fertigungsart == "BI - biegen":
|
||||
default = "ISO 2768:1991-mK"
|
||||
elif fertigungsart == "DR - drehen":
|
||||
@@ -1172,6 +1181,8 @@ class GuiLogic():
|
||||
elif fertigungsart == "SW - schweißen":
|
||||
# TODO
|
||||
default = ""
|
||||
elif fertigungsart == "":
|
||||
default = ""
|
||||
else:
|
||||
raise Exception("no such fertigungsart "+ fertigungsart)
|
||||
ret['allgemeintoleranz_neu'] = default
|
||||
@@ -1680,7 +1691,7 @@ class GuiLogic():
|
||||
truemmer = self._model.get_gui_data("truemmer")
|
||||
ruestcode = self._model.get_gui_data("ruestcode_sivas")
|
||||
teilenummer = str(self._model.get_gui_data("teilenummer"))
|
||||
werkstoffdiskr_sivas = self._model.get_gui_data("werkstoffdiskr_sivas")
|
||||
werkstoffdiskr_neu = self._model.get_gui_data("werkstoffdiskr_neu")
|
||||
|
||||
if selected is None:
|
||||
text = ''
|
||||
@@ -1692,14 +1703,15 @@ class GuiLogic():
|
||||
text = self._config.Zusatz.get('ComboTextblöcke', 'KleinbuchstabeTruemmerBlacklist')
|
||||
elif teilenummer in blacklist:
|
||||
text = self._config.Zusatz.get('ComboTextblöcke', 'KleinbuchstabeBlacklist')
|
||||
elif werkstoffdiskr_sivas == True:
|
||||
elif werkstoffdiskr_neu == True:
|
||||
text = self._config.Zusatz.get('ComboTextblöcke', 'KleinbuchstabeWerkstoffdiskrepanz')
|
||||
else:
|
||||
text = self._config.Zusatz.get('EinzelTextblöcke', 'Kleinbuchstabe')
|
||||
text = text.format(aenderungsindex=aenderungsindex_sivas)
|
||||
elif truemmer == 'J' or ruestcode == '':
|
||||
if teilenummer in blacklist:
|
||||
text = self._config.Zusatz.get('ComboTextblöcke', 'TruemmerBlacklist')
|
||||
elif werkstoffdiskr_sivas == True:
|
||||
elif werkstoffdiskr_neu == True:
|
||||
text = self._config.Zusatz.get('ComboTextblöcke', 'TruemmerWerkstoffdiskrepanz')
|
||||
else:
|
||||
text = self._config.Zusatz.get('EinzelTextblöcke', 'Truemmer')
|
||||
|
||||
+14
-3
@@ -32,6 +32,7 @@ messages = {
|
||||
"werkstoff_not_exist":'Werkstoff falsch. Bitte korrigieren!',
|
||||
"color_not_defined":'Teilenummer kann nicht ohne festgelegte Farbe migriert werden!',
|
||||
"aenderungstext_too_long":'Änderungstext_weist zu viele Zeichen auf. Bitte auf 400 Zeichen verkürzen!',
|
||||
"missing_data":'Fehlende Angaben in der Oberfläche: {Labels}',
|
||||
}
|
||||
|
||||
|
||||
@@ -207,8 +208,15 @@ class Controller(Observer):
|
||||
def message_info(self, title, key, questions='ok'):
|
||||
return messagebox.showinfo(title, messages[key])
|
||||
|
||||
def message_error(self, title, key):
|
||||
return messagebox.showerror(title, messages[key])
|
||||
def message_error(self, title, key, values):
|
||||
text = messages[key]
|
||||
if 'Labels' in values:
|
||||
text = text.format(Labels=values['Labels'])
|
||||
if 'Zeichentyp' in values:
|
||||
text = text.format(Zeichentyp=values['Zeichentyp'])
|
||||
if 'Feldname' in values:
|
||||
text = text.format(Feldname=values['Feldname'])
|
||||
return messagebox.showerror(title, text)
|
||||
|
||||
def callback(self, key, value):
|
||||
if not self._model:
|
||||
@@ -248,7 +256,10 @@ class Controller(Observer):
|
||||
self.refresh_gui()
|
||||
|
||||
def migrieren(self):
|
||||
self._model.check()
|
||||
(ok, missing) = self._model.check()
|
||||
if ok == False:
|
||||
labels = ', '.join(missing)
|
||||
self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels})
|
||||
|
||||
def zuruecksetzen(self):
|
||||
data = dict()
|
||||
|
||||
@@ -447,6 +447,11 @@ class ZusatzConfig(IniBasedConfig):
|
||||
def __init__(self, config_dir='.', config_file='Zusatzinformationen.cfg'):
|
||||
super().__init__(config_dir, config_file)
|
||||
|
||||
class ERPConfig(IniBasedConfig):
|
||||
"""Auslesen der Zusatzinformationen die aus dem Änderungsindex abgeleitet werden"""
|
||||
def __init__(self, config_dir='.', config_file='ERP_Item.ini'):
|
||||
super().__init__(config_dir, config_file)
|
||||
|
||||
class Configs:
|
||||
"""Sammlung aller Configdateien """
|
||||
def __init__(self, cfg_dir):
|
||||
@@ -461,6 +466,7 @@ class Configs:
|
||||
self.Pfade = PfadConfig(cfg_dir)
|
||||
self.Werkstoffe = WerkstoffeConfig(cfg_dir)
|
||||
self.Zusatz = ZusatzConfig(cfg_dir)
|
||||
self.ERP = ERPConfig(cfg_dir)
|
||||
|
||||
self.TOSGruppen = TOSGroupsConfig(cfg_dir)
|
||||
self.Materialien = MaterialTransConfig(cfg_dir)
|
||||
|
||||
Reference in New Issue
Block a user