Test auf invalid Characters implementiert. ERP_Item.ini rausgeschmissen. Sonderzeichen im Configparser nicht einfach zu lesen. FileEncoding war auch nicht utf-8. Eigene Textdatei für Sonderzeichen

This commit is contained in:
2024-03-13 11:44:12 +01:00
parent 1e917e5bbd
commit 8f74aac945
6 changed files with 163 additions and 127 deletions
+111 -36
View File
@@ -69,7 +69,7 @@ class CadItem(DataModel):
"lebenszyklus_status_neu",
"model3d_neu",
"bezeichnung1_sivas", "bezeichnung1_neu",
"bezeichnung2_sivas", "bezeichnung2_neu",
"bezeichnung2_sivas",
"halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu",
"ruestcode_sivas", "ruestcode_neu",
"fertigungsart_sivas", "fertigungsart_neu",
@@ -87,7 +87,7 @@ class CadItem(DataModel):
"ersetztdurch_sivas", "ersetztdurch_neu",
"herstteilenr_sivas", "herstteilenr_neu",
"werkstoffdiskr_neu",
"werkstofftyp_sivas", "werkstofftyp_neu",
"werkstofftyp_neu",
"material_sivas", "material_neu",
"oberflaeche_neu",
"farbe_neu",
@@ -166,6 +166,67 @@ class CadItem(DataModel):
# "Indexbearbeiter":"in"
}
key2label = {
"asm_id": "Baugruppennummer",
"teilenummer": "Teilenummer",
"pdm_kategorie_neu": "PDM-Kategorie",
"halbzeugnummer_neu": "Halbzeugnummer",
"halbzeuglaenge_neu": "Halbzeuglänge",
"halbzeugoberflaeche_neu": "Halbzeugoberfläche",
"halbzeugfarbe_neu": "Halbzeugfarbe",
"lebenszyklus_status_neu": "Lebenzyklusstatus",
"model3d_neu": "3D-Modell",
"bezeichnung1_sivas": "Bezeichnung 1",
"bezeichnung1_neu": "Bezeichnung 1",
"bezeichnung2_sivas": "Bezeichnung 2",
"halbzeugOhneSaege_sivas": "Halbzeug ohne Sägeliste",
"halbzeugOhneSaege_neu": "Halbzeug ohne Sägeliste",
"ruestcode_sivas": "Rüstcode",
"ruestcode_neu": "Rüstcode",
"fertigungsart_sivas": "Fertigungsart",
"fertigungsart_neu": "Fertigungsart",
"allgemeintoleranz_sivas": "Allgemeintoleranz",
"allgemeintoleranz_neu": "Allgemeintoleranz",
"fosGruppe_sivas": "FOS-Gruppe",
"fosGruppe_neu": "FOS-Gruppe",
"kalkulationsart_sivas": "Kalkulationsart",
"kalkulationsart_neu": "Kalkulationsart",
"beschaffungsart_sivas": "Beschaffungsart",
"beschaffungsart_neu": "Beschaffungsart",
"mengeneinheit_sivas": "Mengeneinheit",
"mengeneinheit_neu": "Mengeneinheit",
"halbzeug_sivas": "Halbzeug",
"halbzeug_neu": "Halbzeug",
"tosgruppe_sivas": "TOS-Gruppe",
"tosgruppe_neu": "TOS-Gruppe",
"dispogruppe_sivas": "Dispogruppe",
"dispogruppe_neu": "Dispogruppe",
"dispolaufgruppe_sivas": "Dispolaufgruppe",
"dispolaufgruppe_neu": "Dispolaufgruppe",
"hersteller_sivas": "Hersteller",
"hersteller_neu": "Hersteller",
"ersatzfuer_sivas": "Ersatz für",
"ersatzfuer_neu": "Ersatz für",
"ersetztdurch_sivas": "Ersetzt durch",
"ersetztdurch_neu": "Ersetzt durch",
"herstteilenr_sivas": "Hersteller Teilenummer",
"herstteilenr_neu": "Hersteller Teilenummer",
"werkstofftyp_neu": "Werkstofftyp",
"material_sivas": "Material",
"material_neu": "Material",
"oberflaeche_neu": "Oberfläche",
"farbe_neu": "Farbe",
"version_sivas": "Version",
"aenderungsindex_sivas": "Änderungsindex",
"aenderungsindex_neu": "Änderungsindex",
"aenderungstext_sivas": "Änderungstext",
"aenderungstext_neu": "Änderungstext",
"freigabevermerk_sivas": "Freigabevermerk",
"freigabevermerk_neu": "Freigabevermerk",
"zusatzinfos_auto_text": "Zusatzinformationen automatisch",
"zusatzinfos_bendef_text": "Zusatzinformationen Benutzerdefiniert",
}
def __init__(self):
""" is initalized with its unique id"""
super().__init__()
@@ -495,22 +556,15 @@ class CadItem(DataModel):
def message_error(self, title, key):
return self._controller.message_error(title, key)
def check(self):
res = self.check_pflichtfelder()
if len(res) > 0:
return (False, res)
else:
return (True, [])
def check_key_existence(self, mess, key, missing):
def check_key_existence(self, key, missing):
if not self.get_gui_data(key):
missing.append(mess)
missing.append(self.key2label[key])
def check_key_both_columns(self, mess, key_sivas, key_neu, missing):
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(mess)
missing.append(self.key2label[key_neu])
def check_pflichtfelder(self):
"""Allgemeine Prüfungen:
@@ -519,11 +573,11 @@ class CadItem(DataModel):
missing = list()
# Teilenummer
self.check_key_existence( 'Teilenummer', "teilenummer", missing)
self.check_key_existence("teilenummer", missing)
# Datenbank
self.check_key_existence("Datenbank", "datenbank", missing)
self.check_key_existence("datenbank", missing)
# PDM-Kategorie
self.check_key_existence("PDM-Kategorie", "pdm_kategorie_neu", missing)
self.check_key_existence("pdm_kategorie_neu", missing)
# Halbzeugfarbe
hblzeug_oberfläche = self.get_gui_data("oberflaeche_neu")
@@ -532,54 +586,75 @@ class CadItem(DataModel):
missing.append("Halbzeugfarbe")
# Lebenszyklusstatus
self.check_key_existence("Lebenszyklusstatus", "lebenszyklus_status_neu", missing)
self.check_key_existence("lebenszyklus_status_neu", missing)
# 3D-Modell
self.check_key_existence("3D-Model", "model3d_neu", missing)
self.check_key_existence("model3d_neu", missing)
# Bezeichnung 1
self.check_key_both_columns("Bezeichnung 1", "bezeichnung1_sivas", "bezeichnung1_neu", missing)
self.check_key_both_columns("bezeichnung1_sivas", "bezeichnung1_neu", missing)
# Halbzeug ohne Sägeliste
self.check_key_both_columns("Halbzeug ohne Sägeliste", "halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu", missing)
self.check_key_both_columns("halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu", missing)
# Rüstcode
self.check_key_both_columns("Rüstcode", "ruestcode_sivas", "ruestcode_neu", missing)
self.check_key_both_columns("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_both_columns("Fertigungsart", "fertigungsart_sivas", "fertigungsart_neu", missing)
self.check_key_both_columns("fertigungsart_sivas", "fertigungsart_neu", missing)
# Allgemeintoleranz
self.check_key_both_columns("Allgemeintoleranz", "allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
self.check_key_both_columns("allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
# FOS-Gruppe
self.check_key_both_columns("FOS-Gruppe", "fosGruppe_sivas", "fosGruppe_neu", missing)
self.check_key_both_columns("fosGruppe_sivas", "fosGruppe_neu", missing)
# Kalkulationsart
self.check_key_both_columns("Kalkulationsart", "kalkulationsart_sivas", "kalkulationsart_neu", missing)
self.check_key_both_columns("kalkulationsart_sivas", "kalkulationsart_neu", missing)
# Beschaffungsart
self.check_key_both_columns("Beschaffungsart", "beschaffungsart_sivas", "beschaffungsart_neu", missing)
self.check_key_both_columns("beschaffungsart_sivas", "beschaffungsart_neu", missing)
# Mengeneinheit
self.check_key_both_columns("Mengeneinheit", "mengeneinheit_sivas", "mengeneinheit_neu", missing)
self.check_key_both_columns("mengeneinheit_sivas", "mengeneinheit_neu", missing)
# Halbzeug
self.check_key_both_columns("Halbzeug", "halbzeug_sivas", "halbzeug_neu", missing)
self.check_key_both_columns("halbzeug_sivas", "halbzeug_neu", missing)
# TOS-Gruppe
self.check_key_both_columns("Tosgruppe", "tosgruppe_sivas", "tosgruppe_neu", missing)
self.check_key_both_columns("tosgruppe_sivas", "tosgruppe_neu", missing)
# Dispogruppe
self.check_key_both_columns("Dispogruppe", "dispogruppe_sivas", "dispogruppe_neu", missing)
self.check_key_both_columns("dispogruppe_sivas", "dispogruppe_neu", missing)
# Dispolaufgruppe
self.check_key_both_columns("Dispolaufgruppe", "dispolaufgruppe_sivas", "dispolaufgruppe_neu", missing)
self.check_key_both_columns("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", "werkstofftyp_sivas", "werkstofftyp_neu", missing)
self.check_key_existence("werkstofftyp_neu", missing)
# Änderungstext
self.check_key_both_columns("Änderungstext", "aenderungstext_sivas", "aenderungstext_neu", missing)
self.check_key_both_columns("aenderungstext_sivas", "aenderungstext_neu", missing)
# Freigabevermerk
self.check_key_both_columns("Freigabevermerk", "freigabevermerk_sivas", "freigabevermerk_neu", missing)
self.check_key_both_columns("freigabevermerk_sivas", "freigabevermerk_neu", missing)
# Automatische Zusatzinformationen
self.check_key_existence("Automatische Zusatzinformationen", "zusatzinfos_auto_text", missing)
return missing
self.check_key_existence("zusatzinfos_auto_text", missing)
if len(missing) > 0:
return (False, missing)
else:
return (True, [])
def check_improper_chars(self, invalid_chars):
""" überprüft ob inder Oberfläche nicht erlaubte Zeichen eingetragen wurden"""
wrongchars = dict()
for key in self.key2label:
content = self.get_gui_data(key)
for c in invalid_chars:
if c in content:
Label = self.key2label[key]
if Label in wrongchars:
wrongchars[Label].append(c)
else:
wrongchars[Label] = [c]
if len(wrongchars.keys()) > 0:
return (False, wrongchars)
else:
return (True, {})
class CadItemRepository:
"""