Alle Check Logiken Implementiert
This commit is contained in:
+140
-65
@@ -553,10 +553,11 @@ class CadItem(DataModel):
|
|||||||
|
|
||||||
def message_info(self, title, key, questions='ok'):
|
def message_info(self, title, key, questions='ok'):
|
||||||
return self._controller.message_info(title, key, questions)
|
return self._controller.message_info(title, key, questions)
|
||||||
|
def message_error(self, title, key, values=None):
|
||||||
def message_error(self, title, key):
|
return self._controller.message_error(title, key, values)
|
||||||
return self._controller.message_error(title, key)
|
def message_question(self, title, key, values=None):
|
||||||
|
return self._controller.message_question(title, key, values)
|
||||||
|
|
||||||
def check_key_existence(self, key, missing):
|
def check_key_existence(self, key, missing):
|
||||||
if not self.get_gui_data(key):
|
if not self.get_gui_data(key):
|
||||||
missing.append(self.key2label[key])
|
missing.append(self.key2label[key])
|
||||||
@@ -664,94 +665,168 @@ class CadItem(DataModel):
|
|||||||
return self.get_gui_data(key_sivas)
|
return self.get_gui_data(key_sivas)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# "asm_id",
|
|
||||||
# "teilenummer",
|
|
||||||
# "datenbank",
|
|
||||||
# "pdm_kategorie_neu",
|
|
||||||
# "neuaufbau",
|
|
||||||
# "aus_halbzeug_neu",
|
|
||||||
# "halbzeugnummer_neu",
|
|
||||||
# "halbzeuglaenge_neu",
|
|
||||||
# "halbzeugoberflaeche_neu",
|
|
||||||
# "halbzeugfarbe_neu",
|
|
||||||
# "lebenszyklus_status_neu",
|
|
||||||
# "model3d_neu",
|
|
||||||
# "bezeichnung1_sivas", "bezeichnung1_neu",
|
|
||||||
# "bezeichnung2_sivas",
|
|
||||||
# "halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu",
|
|
||||||
# "ruestcode_sivas", "ruestcode_neu",
|
|
||||||
# "fertigungsart_sivas", "fertigungsart_neu",
|
|
||||||
# "allgemeintoleranz_sivas", "allgemeintoleranz_neu",
|
|
||||||
# "fosGruppe_sivas", "fosGruppe_neu",
|
|
||||||
# "kalkulationsart_sivas", "kalkulationsart_neu",
|
|
||||||
# "beschaffungsart_sivas", "beschaffungsart_neu",
|
|
||||||
# "mengeneinheit_sivas", "mengeneinheit_neu",
|
|
||||||
# "halbzeug_sivas", "halbzeug_neu",
|
|
||||||
# "tosgruppe_sivas", "tosgruppe_neu",
|
|
||||||
# "dispogruppe_sivas", "dispogruppe_neu",
|
|
||||||
# "dispolaufgruppe_sivas","dispolaufgruppe_neu",
|
|
||||||
# "hersteller_sivas", "hersteller_neu",
|
|
||||||
# "ersatzfuer_sivas", "ersatzfuer_neu",
|
|
||||||
# "ersetztdurch_sivas", "ersetztdurch_neu",
|
|
||||||
# "herstteilenr_sivas", "herstteilenr_neu",
|
|
||||||
# "werkstoffdiskr_neu",
|
|
||||||
# "werkstofftyp_neu",
|
|
||||||
# "material_sivas", "material_neu",
|
|
||||||
# "oberflaeche_neu",
|
|
||||||
# "farbe_neu",
|
|
||||||
# "version_sivas",
|
|
||||||
# "aenderungsindex_sivas", "aenderungsindex_neu",
|
|
||||||
# "aenderungstext_sivas", "aenderungstext_neu",
|
|
||||||
# "freigabevermerk_sivas", "freigabevermerk_neu",
|
|
||||||
# "zusatzinfos_auto_text",
|
|
||||||
# "zusatzinfos_bendef_text",
|
|
||||||
def check_content(self):
|
def check_content(self):
|
||||||
content = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
|
content = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
|
||||||
if len(content) > 50:
|
if len(content) > 50:
|
||||||
self.message_info('Bezeichnung1 zu gross', 'bezeichnung_zu_gross')
|
self.message_error('Bezeichnung1 zu gross', 'bezeichnung_zu_gross')
|
||||||
return
|
return False
|
||||||
|
|
||||||
# Rüstcode und Sögeliste
|
# Rüstcode und Sögeliste
|
||||||
ruestcode = self.get_gui_data("ruestcode_sivas")
|
ruestcode = self.get_gui_data("ruestcode_sivas")
|
||||||
halbzeugOhneSaege_neu = self.get_gui_data("halbzeugOhneSaege_neu")
|
halbzeugOhneSaege_neu = self.get_gui_data("halbzeugOhneSaege_neu")
|
||||||
if ruestcode == "SRC Standard Rüstcode" and halbzeugOhneSaege_neu == "Sägeliste nicht benötigt":
|
if ruestcode == "SRC Standard Rüstcode" and halbzeugOhneSaege_neu == "Sägeliste nicht benötigt":
|
||||||
self.message_info('Konflikt Rüstcode und Sägeliste', 'konflikt_ruestcode_saegeliste')
|
self.message_error('Konflikt Rüstcode und Sägeliste', 'konflikt_ruestcode_saegeliste')
|
||||||
return
|
return False
|
||||||
|
|
||||||
# Rüstcode und Kategorie
|
# Rüstcode und Kategorie
|
||||||
content = self.get_content('ruestcode_sivas', 'ruestcode_neu')
|
content = self.get_content('ruestcode_sivas', 'ruestcode_neu')
|
||||||
pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu")
|
pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu")
|
||||||
if pdm_kategorie_neu != "Baugruppe" and ruestcode == "":
|
if pdm_kategorie_neu != "Baugruppe" and ruestcode == "":
|
||||||
self.message_info('Teilenummer ohne Rüstcode', 'teilenummer_ohne_ruestcode')
|
self.message_error('Teilenummer ohne Rüstcode', 'teilenummer_ohne_ruestcode')
|
||||||
return
|
return False
|
||||||
|
|
||||||
# Fertigungsart
|
# Fertigungsart
|
||||||
fertigungsart = self.get_content('fertigungsart_sivas', 'fertigungsart_neu')
|
fertigungsart = self.get_content('fertigungsart_sivas', 'fertigungsart_neu')
|
||||||
arten = ["3D - 3D-drucken", "EX - extrudieren", "GI - gießen", "PR - verpressen", "SN - strangpressen", "SP - spritzgießen", "SW - schweißen"]
|
arten = ["3D - 3D-drucken", "EX - extrudieren", "GI - gießen", "PR - verpressen", "SN - strangpressen", "SP - spritzgießen", "SW - schweißen"]
|
||||||
if pdm_kategorie_neu == "Baugruppe" and fertigungsart == arten:
|
if pdm_kategorie_neu == "Baugruppe" and fertigungsart == arten:
|
||||||
self.message_info('Fertigunsart falsch', 'fertigungsart')
|
self.message_error('Fertigunsart falsch', 'fertigungsart')
|
||||||
return
|
return False
|
||||||
farten = self._config.Fertigung.get_list_in_section("Fertigungsarten")
|
farten = self._controller.get_config().Fertigung.get_list_in_section("Fertigungsarten")
|
||||||
if pdm_kategorie_neu == "Kauteil" and fertigungsart == farten:
|
if pdm_kategorie_neu == "Kauteil" and fertigungsart == farten:
|
||||||
self.message_info('Fertigunsart falsch', 'fertigungsart')
|
self.message_error('Fertigunsart falsch', 'fertigungsart')
|
||||||
return
|
return False
|
||||||
if pdm_kategorie_neu == "Schweissbaugruppe" and fertigungsart != "SW - schweißen":
|
if pdm_kategorie_neu == "Schweissbaugruppe" and fertigungsart != "SW - schweißen":
|
||||||
self.message_info('Fertigunsart falsch', 'fertigungsart')
|
self.message_error('Fertigunsart falsch', 'fertigungsart')
|
||||||
return
|
return False
|
||||||
|
|
||||||
# FOS - Gruppe
|
# FOS - Gruppe
|
||||||
fos_gruppe = self.get_content('fosGruppe_sivas', 'fosGruppe_neu')
|
fos_gruppe = self.get_content('fosGruppe_sivas', 'fosGruppe_neu')
|
||||||
if pdm_kategorie_neu == "Baugruppe" and fos_gruppe == "0 - Einzelteil":
|
if pdm_kategorie_neu == "Baugruppe" and fos_gruppe == "0 - Einzelteil":
|
||||||
self.message_info('FOS Gruppe falsch', 'fos_gruppe')
|
self.message_error('FOS Gruppe falsch', 'fos_gruppe')
|
||||||
return
|
return False
|
||||||
if pdm_kategorie_neu == "Einzelteil" and fos_gruppe == "1 - Baugruppe":
|
if pdm_kategorie_neu == "Einzelteil" and fos_gruppe == "1 - Baugruppe":
|
||||||
self.message_info('FOS Gruppe falsch', 'fos_gruppe')
|
self.message_error('FOS Gruppe falsch', 'fos_gruppe')
|
||||||
return
|
return False
|
||||||
if pdm_kategorie_neu == "SChweissbaugruppe" and fos_gruppe == "1 - Baugruppe":
|
if pdm_kategorie_neu == "Schweissbaugruppe" and fos_gruppe == "1 - Baugruppe":
|
||||||
self.message_info('FOS Gruppe falsch', 'fos_gruppe')
|
self.message_error('FOS Gruppe falsch', 'fos_gruppe')
|
||||||
return
|
return False
|
||||||
|
|
||||||
# Kalkulationsart
|
# Kalkulationsart
|
||||||
|
kalkulationsart = self.get_content('kalkulationsart_sivas', 'kalkulationsart_neu')
|
||||||
|
if pdm_kategorie_neu == "Kaufteil" and kalkulationsart == "Eigenbau":
|
||||||
|
self.message_error('Kalkulationsart falsch', 'kalkulations_art')
|
||||||
|
return False
|
||||||
|
if pdm_kategorie_neu == "Einzelteil" and kalkulationsart == "Kaufteil":
|
||||||
|
self.message_error('Kalkulationsart falsch', 'kalkulations_art')
|
||||||
|
return False
|
||||||
|
if pdm_kategorie_neu == "Schweissbaugruppe" and kalkulationsart == "Kaufteil":
|
||||||
|
self.message_error('Kalkulationsart falsch', 'kalkulations_art')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Beschaffungsart
|
||||||
|
beschaffungsart = self.get_content('beschaffungsart_sivas', 'beschaffungsart_neu')
|
||||||
|
if pdm_kategorie_neu == "Baugruppe" and beschaffungsart == "Kaufteil":
|
||||||
|
self.message_error('beschaffungsart falsch', 'beschaffungsart')
|
||||||
|
return False
|
||||||
|
if pdm_kategorie_neu == "Schweissbaugruppe" and beschaffungsart == "Kaufteil":
|
||||||
|
self.message_error('beschaffungsart falsch', 'beschaffungsart')
|
||||||
|
return False
|
||||||
|
if pdm_kategorie_neu == "Kaufteil" and beschaffungsart == "Eigenbau":
|
||||||
|
self.message_error('beschaffungsart falsch', 'beschaffungsart')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Mengeneinheit
|
||||||
|
mengeneinheit = self.get_content('mengeneinheit_sivas', 'mengeneinheit_neu')
|
||||||
|
ruestcode = self.get_content('ruestcode_sivas', 'ruestcode_neu')
|
||||||
|
if ruestcode == "SRC - Standard Rüstcode" and mengeneinheit != "Stck - Stück":
|
||||||
|
self.message_error('Mengeneinheit falsch', 'mengeneinheit')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Halbzeug
|
||||||
|
halbzeug = self.get_content('halbzeug_sivas', 'halbzeug_neu')
|
||||||
|
if ruestcode == "SRC - Standard Rüstcode" and halbzeug == 'WAHR':
|
||||||
|
self.message_error('Halbzeug falsch', 'teilenummer_halbzeug')
|
||||||
|
return False
|
||||||
|
if ruestcode == "Trümmerbaugruppe" and halbzeug == 'WAHR':
|
||||||
|
self.message_error('Halbzeug falsch', 'teilenummer_halbzeug')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# TOS-Gruppe
|
||||||
|
tosgruppe = self.get_content('tosgruppe_sivas', 'tosgruppe_sivas')
|
||||||
|
(num2refId, num2child) = self._controller.get_config().TOSGruppen.get_Id2TosGroup()
|
||||||
|
# TODO wirklich als refernce-id oder als Gruppe?
|
||||||
|
if tosgruppe not in num2child.keys():
|
||||||
|
self.message_error('TOS Gruppe nicht vorhanden', 'tos_gruppe_not_exist')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Dispogruppe
|
||||||
|
dispogruppe = self.get_content('dispogruppe_sivas', 'dispogruppe_neu')
|
||||||
|
if dispogruppe == '':
|
||||||
|
self.message_error('Dispogruppe nicht angegeben', 'dispo_not_exist')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Dispolaufgruppe
|
||||||
|
dispolaufgruppe = self.get_content('dispolaufgruppe_sivas', 'dispolaufgruppe_sivas')
|
||||||
|
if dispolaufgruppe == '':
|
||||||
|
self.message_error('Dispolaufgruppe nicht angegeben', 'dispolauf_not_exist')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Ersatz für
|
||||||
|
ersatzfuer = self.get_content('ersatzfuer_sivas', 'ersatzfuer_neu')
|
||||||
|
Teilenummern = self._controller.get_config().get_ruledesigner_ids()
|
||||||
|
if ersatzfuer and ersatzfuer not in Teilenummern:
|
||||||
|
ret = self.message_question('Ersatz nicht in Teilenummer ', 'teilenummer_not_exist_infos', {'teilenummer':ersatzfuer, 'default':'no' } )
|
||||||
|
if ret == "no":
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Ersetzt durch
|
||||||
|
ersatzdurch = self.get_content('ersetztdurch_sivas', 'ersetztdurch_neu')
|
||||||
|
Teilenummern = self._controller.get_config().get_ruledesigner_ids()
|
||||||
|
if ersatzdurch and ersatzdurch not in Teilenummern:
|
||||||
|
ret = self.message_question('Ersatz nicht in Teilenummer ', 'ersatzteilenummer_not_exist_infos', {'teilenummer':ersatzdurch, 'default':'no' } )
|
||||||
|
if ret == "no":
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Hersteller
|
||||||
|
hersteller = self.get_content('hersteller_sivas', 'hersteller_neu')
|
||||||
|
alleHersteller = self._controller.get_config().Hersteller.get_all()
|
||||||
|
if hersteller and hersteller not in alleHersteller:
|
||||||
|
ret = self.message_error('Ersatz nicht in Teilenummer ', 'hersteller', {'hersteller':hersteller } )
|
||||||
|
if ret == "no":
|
||||||
|
return False
|
||||||
|
|
||||||
|
# # Werkstofftyp TODO
|
||||||
|
# werkstofftyp = self.get_content('werkstofftyp_neu', 'werkstofftyp_neu')
|
||||||
|
# if werkstofftyp == '':
|
||||||
|
# self.message_error('Werkstofftyp nicht eingetragen', 'werkstofftyp_not_exist')
|
||||||
|
# return
|
||||||
|
|
||||||
|
# # Material TODO
|
||||||
|
# werkstofftyp = self.get_content('werkstofftyp_neu', 'werkstofftyp_neu')
|
||||||
|
# if werkstofftyp == '':
|
||||||
|
# self.message_error('Werkstofftyp nicht eingetragen', 'werkstofftyp_not_exist')
|
||||||
|
# return
|
||||||
|
|
||||||
|
# Farbe
|
||||||
|
farbe = self._model.get_gui_data("farbe_neu")
|
||||||
|
if werkstofftyp == '':
|
||||||
|
self.message_error('Werkstofftyp nicht eingetragen', 'werkstofftyp_not_exist')
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
# Überprüfung ob eine Ergänzung der Angaben zu Material in der Config Datei nötig wäre
|
||||||
|
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||||
|
if pdm_kategorie_neu == "Einzelteil" and aus_halbzeug == False:
|
||||||
|
mlist = self._controller.get_config().Materialien.get_all_materials()
|
||||||
|
material_sivas = self._model.get_gui_data("material_sivas")
|
||||||
|
if material_sivas not in mlist:
|
||||||
|
self._model.message_info('Materialinformation', 'material_infos')
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
def create_migration_data(self):
|
||||||
|
pass
|
||||||
|
|
||||||
class CadItemRepository:
|
class CadItemRepository:
|
||||||
"""
|
"""
|
||||||
|
|||||||
+18
-6
@@ -26,9 +26,10 @@ messages = {
|
|||||||
"tos_gruppe_not_exist":'TOS-Gruppe exisitert nicht. Bitte eingetragene Gruppennummer korrigieren oder ergänzen!',
|
"tos_gruppe_not_exist":'TOS-Gruppe exisitert nicht. Bitte eingetragene Gruppennummer korrigieren oder ergänzen!',
|
||||||
"dispo_not_exist":'Datensatz kann nicht ohne Dispogruppe migriert werden. Bitte nachpflegen!',
|
"dispo_not_exist":'Datensatz kann nicht ohne Dispogruppe migriert werden. Bitte nachpflegen!',
|
||||||
"dispolauf_not_exist":'Datensatz kann nicht ohne Dispolaufgruppe migriert werden. Bitte nachpflegen!',
|
"dispolauf_not_exist":'Datensatz kann nicht ohne Dispolaufgruppe migriert werden. Bitte nachpflegen!',
|
||||||
"teilenummer_not_exist_infos":'Ersetzte Teilenummer {Ersetzte Teilenummer} exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?',
|
"teilenummer_not_exist_infos":"Ersetzte Teilenummer '{teilenummer}' exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?",
|
||||||
"ersatzteilenummer_not_exist_infos":'Ersatz-Teilenummer {Ersatz-Teilenummer} exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?',
|
"ersatzteilenummer_not_exist_infos":"Ersatz-Teilenummer '{teilenummer}' exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?",
|
||||||
"werkstofftyp_not_exist":'Eingetragener Werkstofftyp exisitert nicht. Bitte korrigeren!',
|
"hersteller": "Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen!",
|
||||||
|
"werkstofftyp_not_exist":'Eingetragener Werkstofftyp existieert nicht. Bitte korrigeren!',
|
||||||
"werkstoff_not_exist":'Werkstoff falsch. Bitte korrigieren!',
|
"werkstoff_not_exist":'Werkstoff falsch. Bitte korrigieren!',
|
||||||
"color_not_defined":'Teilenummer kann nicht ohne festgelegte Farbe migriert werden!',
|
"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!',
|
"aenderungstext_too_long":'Änderungstext_weist zu viele Zeichen auf. Bitte auf 400 Zeichen verkürzen!',
|
||||||
@@ -85,6 +86,8 @@ class Controller(Observer):
|
|||||||
|
|
||||||
def set_config(self, config):
|
def set_config(self, config):
|
||||||
self._config = config
|
self._config = config
|
||||||
|
def get_config(self):
|
||||||
|
return self._config
|
||||||
|
|
||||||
|
|
||||||
def get_csv_files_of_asm(self, asmid, uselocal):
|
def get_csv_files_of_asm(self, asmid, uselocal):
|
||||||
@@ -211,7 +214,14 @@ class Controller(Observer):
|
|||||||
|
|
||||||
def message_info(self, title, key, questions='ok'):
|
def message_info(self, title, key, questions='ok'):
|
||||||
return messagebox.showinfo(title, messages[key])
|
return messagebox.showinfo(title, messages[key])
|
||||||
|
def message_question(self, title, key, values):
|
||||||
|
text = messages[key]
|
||||||
|
if 'teilenummer' in values:
|
||||||
|
text = text.format(teilenummer=values['teilenummer'])
|
||||||
|
default = messagebox.NO
|
||||||
|
if 'default' in values and values['default'] == 'yes':
|
||||||
|
default = messagebox.YES
|
||||||
|
return messagebox.askquestion(title, text, type=messagebox.YESNO, default=default)
|
||||||
def message_error(self, title, key, values):
|
def message_error(self, title, key, values):
|
||||||
text = messages[key]
|
text = messages[key]
|
||||||
if 'Labels' in values:
|
if 'Labels' in values:
|
||||||
@@ -270,8 +280,10 @@ class Controller(Observer):
|
|||||||
# chars = ''.join(achars)
|
# chars = ''.join(achars)
|
||||||
# self.message_error('Unzulässige Zeichen', 'unzulaessige_zeichen', {'Zeichentyp': chars, 'Feldname':label})
|
# self.message_error('Unzulässige Zeichen', 'unzulaessige_zeichen', {'Zeichentyp': chars, 'Feldname':label})
|
||||||
# return
|
# return
|
||||||
self._model.check_content()
|
ok = self._model.check_content()
|
||||||
|
if ok == True:
|
||||||
|
data = self._model.create_migration_data()
|
||||||
|
|
||||||
def zuruecksetzen(self):
|
def zuruecksetzen(self):
|
||||||
cid = self.get_current_item_id()
|
cid = self.get_current_item_id()
|
||||||
self._model.clear()
|
self._model.clear()
|
||||||
|
|||||||
@@ -196,6 +196,25 @@ class TOSGroupsConfig(JsonBasedConfig):
|
|||||||
for cId in childIds:
|
for cId in childIds:
|
||||||
self.get_children_keys(tos_hierarchy, cId, result)
|
self.get_children_keys(tos_hierarchy, cId, result)
|
||||||
|
|
||||||
|
def get_Id2TosGroup(self):
|
||||||
|
"hole alle ids zur jeweiligen Gruppe"
|
||||||
|
# lazy. nur einmal laden, wenn noch nicht geschehen
|
||||||
|
if not self.tos_hierarchy:
|
||||||
|
self.tos_hierarchy = super().load_json_from_file()
|
||||||
|
tos_hierarchy = self.tos_hierarchy
|
||||||
|
|
||||||
|
num2refId = dict()
|
||||||
|
num2child = dict()
|
||||||
|
allkwds = self.get_all_keywords()
|
||||||
|
for kw in allkwds.keys():
|
||||||
|
refids = tos_hierarchy[kw]["reference-ids"]
|
||||||
|
for cId in refids.keys():
|
||||||
|
num2refId[cId] = refids[cId]
|
||||||
|
children = tos_hierarchy[kw]["children"]
|
||||||
|
for cId in children.keys():
|
||||||
|
num2child[cId] = children[cId]
|
||||||
|
return (num2refId, num2child)
|
||||||
|
|
||||||
def get_all_keywords(self):
|
def get_all_keywords(self):
|
||||||
"""hole alle TOS Keywords, welche in der config Datei definiert sind"""
|
"""hole alle TOS Keywords, welche in der config Datei definiert sind"""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user