Alle Check Logiken Implementiert

This commit is contained in:
2024-03-14 14:24:37 +01:00
parent 8ec356df70
commit a785eecbc2
3 changed files with 177 additions and 71 deletions
+140 -65
View File
@@ -553,10 +553,11 @@ class CadItem(DataModel):
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)
def message_error(self, title, key, values=None):
return self._controller.message_error(title, key, values)
def message_question(self, title, key, values=None):
return self._controller.message_question(title, key, values)
def check_key_existence(self, key, missing):
if not self.get_gui_data(key):
missing.append(self.key2label[key])
@@ -664,94 +665,168 @@ class CadItem(DataModel):
return self.get_gui_data(key_sivas)
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):
content = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
if len(content) > 50:
self.message_info('Bezeichnung1 zu gross', 'bezeichnung_zu_gross')
return
self.message_error('Bezeichnung1 zu gross', 'bezeichnung_zu_gross')
return False
# Rüstcode und Sögeliste
ruestcode = self.get_gui_data("ruestcode_sivas")
halbzeugOhneSaege_neu = self.get_gui_data("halbzeugOhneSaege_neu")
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')
return
self.message_error('Konflikt Rüstcode und Sägeliste', 'konflikt_ruestcode_saegeliste')
return False
# Rüstcode und Kategorie
content = self.get_content('ruestcode_sivas', 'ruestcode_neu')
pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu")
if pdm_kategorie_neu != "Baugruppe" and ruestcode == "":
self.message_info('Teilenummer ohne Rüstcode', 'teilenummer_ohne_ruestcode')
return
self.message_error('Teilenummer ohne Rüstcode', 'teilenummer_ohne_ruestcode')
return False
# Fertigungsart
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"]
if pdm_kategorie_neu == "Baugruppe" and fertigungsart == arten:
self.message_info('Fertigunsart falsch', 'fertigungsart')
return
farten = self._config.Fertigung.get_list_in_section("Fertigungsarten")
self.message_error('Fertigunsart falsch', 'fertigungsart')
return False
farten = self._controller.get_config().Fertigung.get_list_in_section("Fertigungsarten")
if pdm_kategorie_neu == "Kauteil" and fertigungsart == farten:
self.message_info('Fertigunsart falsch', 'fertigungsart')
return
self.message_error('Fertigunsart falsch', 'fertigungsart')
return False
if pdm_kategorie_neu == "Schweissbaugruppe" and fertigungsart != "SW - schweißen":
self.message_info('Fertigunsart falsch', 'fertigungsart')
return
self.message_error('Fertigunsart falsch', 'fertigungsart')
return False
# FOS - Gruppe
fos_gruppe = self.get_content('fosGruppe_sivas', 'fosGruppe_neu')
if pdm_kategorie_neu == "Baugruppe" and fos_gruppe == "0 - Einzelteil":
self.message_info('FOS Gruppe falsch', 'fos_gruppe')
return
self.message_error('FOS Gruppe falsch', 'fos_gruppe')
return False
if pdm_kategorie_neu == "Einzelteil" and fos_gruppe == "1 - Baugruppe":
self.message_info('FOS Gruppe falsch', 'fos_gruppe')
return
if pdm_kategorie_neu == "SChweissbaugruppe" and fos_gruppe == "1 - Baugruppe":
self.message_info('FOS Gruppe falsch', 'fos_gruppe')
return
self.message_error('FOS Gruppe falsch', 'fos_gruppe')
return False
if pdm_kategorie_neu == "Schweissbaugruppe" and fos_gruppe == "1 - Baugruppe":
self.message_error('FOS Gruppe falsch', 'fos_gruppe')
return False
# 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:
"""