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:
@@ -1,51 +0,0 @@
|
|||||||
[Settings]
|
|
||||||
DoWriteLogfile=True
|
|
||||||
ExportFolder=\\ruledesigner\RDF_Daten\ERP\ITEM
|
|
||||||
WorkingFolder=\\ruledesigner\RDF_Daten\ERP\Working
|
|
||||||
#ExportFolder=\\ssg.local\freigaben\SIVAS_CAD_EDM\Austausch\Item
|
|
||||||
DoExportTextfile=False
|
|
||||||
DoExportXML=False
|
|
||||||
DoExportCSV=True
|
|
||||||
ExportSeparator=;
|
|
||||||
#Es wird geprüft welche Zeichen für Attributswerte nicht erlaubt sind
|
|
||||||
# Original: InvalidCharacters=/,\,&,%,°,?,|,!,@,à,è,ì,ò,ù,[,],£,$,%,&,;
|
|
||||||
InvalidCharacters=\,%,?,|,!,@,à,è,ì,ò,ù,£,$,%,;
|
|
||||||
|
|
||||||
[Values]
|
|
||||||
Value01=Teilenummer
|
|
||||||
Value02=Bezeichnung Kombiniert
|
|
||||||
Value03=Ersteller
|
|
||||||
Value04=Abgeändert
|
|
||||||
Value05=Revision
|
|
||||||
Value06=Beschaffungsart
|
|
||||||
Value07=TOS-Gruppe_ERP
|
|
||||||
Value08=Dispogruppe_ERP
|
|
||||||
Value09=Dispolaufgruppe_ERP
|
|
||||||
Value10=Einheit_ERP
|
|
||||||
Value11=Ersetzt
|
|
||||||
Value12=Ersetzt von
|
|
||||||
Value13=Werkstoff
|
|
||||||
Value14=Oberflächenbehandlung
|
|
||||||
Value15=Farbe
|
|
||||||
Value16=Alternativwerkstoff
|
|
||||||
Value17=Alternativfarbe
|
|
||||||
Value18=Fertigungsart_ERP
|
|
||||||
Value19=FOS-Gruppe_ERP
|
|
||||||
Value20=Änderungsbeschreibung
|
|
||||||
Value21=Freigabevermerk
|
|
||||||
Value22=Halbzeug_ERP
|
|
||||||
Value23=Halbzeug Bezeichnung
|
|
||||||
Value24=HalbzeugOhneSaegeliste_ERP
|
|
||||||
Value25=Hersteller
|
|
||||||
Value26=Hersteller Teilenummer
|
|
||||||
Value27=Kalkulationsart_ERP
|
|
||||||
Value28=Ruestcode_ERP
|
|
||||||
Value29=Serien-Status
|
|
||||||
Value30=Kategorie
|
|
||||||
|
|
||||||
|
|
||||||
[History]
|
|
||||||
#Attribute werden aus der Datenbank abgelesen (Autor,Änderungsdatum,Änderungsbeschreibung,Freigabevermerk,Ersetzt, Ersetzt von)
|
|
||||||
|
|
||||||
AddHistoryInformation=False
|
|
||||||
ExportDetail=
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
\,?,|,!,@,à,è,ì,ò,ù,£,$,%,;
|
||||||
@@ -80,13 +80,14 @@ class Environment:
|
|||||||
self.cfg_dir = os.environ.get('CREMIG_CFG')
|
self.cfg_dir = os.environ.get('CREMIG_CFG')
|
||||||
self.ruledesigner_csv_filename = os.environ.get('RD_DATABASE_NAME')
|
self.ruledesigner_csv_filename = os.environ.get('RD_DATABASE_NAME')
|
||||||
|
|
||||||
def build_gui(model, configs, sivasid, uselocal=True):
|
def build_gui(model, configs, env, sivasid, uselocal=True):
|
||||||
root = tk.Tk()
|
root = tk.Tk()
|
||||||
#root = ttk.Window()
|
#root = ttk.Window()
|
||||||
app = App(root)
|
app = App(root)
|
||||||
|
|
||||||
controller = Controller(model, app)
|
controller = Controller(model, app)
|
||||||
controller.set_env(configs.get_env())
|
controller.set_env(env)
|
||||||
|
controller.set_config(configs)
|
||||||
controller.get_csv_files_of_asm(sivasid, uselocal)
|
controller.get_csv_files_of_asm(sivasid, uselocal)
|
||||||
|
|
||||||
logic = GuiLogic(model, configs)
|
logic = GuiLogic(model, configs)
|
||||||
@@ -111,28 +112,28 @@ if __name__ == '__main__':
|
|||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
environment = Environment()
|
environment = Environment()
|
||||||
output_dir = environment.out_dir
|
|
||||||
data_dir = environment.data_dir
|
data_dir = environment.data_dir
|
||||||
configs = Configs(environment.cfg_dir)
|
configs = Configs(environment.cfg_dir)
|
||||||
configs.set_env(environment)
|
|
||||||
configs.set_data_dir(data_dir)
|
configs.set_data_dir(data_dir)
|
||||||
|
|
||||||
|
|
||||||
model = CadItem()
|
model = CadItem()
|
||||||
if args.demo:
|
if args.demo:
|
||||||
model.from_json(json.loads(demo_data))
|
model.from_json(json.loads(demo_data))
|
||||||
build_gui(model, configs, "400102196", True)
|
build_gui(model, configs, environment, "400102196", True)
|
||||||
|
|
||||||
elif args.sivasid:
|
elif args.sivasid:
|
||||||
sivasid = args.sivasid.strip()
|
sivasid = args.sivasid.strip()
|
||||||
|
|
||||||
|
output_dir = environment.out_dir
|
||||||
assembl_path = os.path.join(output_dir, sivasid + '.json')
|
assembl_path = os.path.join(output_dir, sivasid + '.json')
|
||||||
if os.path.exists(assembl_path):
|
if os.path.exists(assembl_path):
|
||||||
# wenn schon einmal das assembly als json abgespeichert wurde, dann dieses laden
|
# wenn schon einmal das assembly als json abgespeichert wurde, dann dieses laden
|
||||||
model.load(assembl_path)
|
model.load(assembl_path)
|
||||||
else:
|
else:
|
||||||
# die Gui aufbauen
|
# die Gui aufbauen
|
||||||
build_gui(model, configs, sivasid, args.uselocal)
|
build_gui(model, configs, environment, sivasid, args.uselocal)
|
||||||
else:
|
else:
|
||||||
parser.print_help()
|
parser.print_help()
|
||||||
|
|
||||||
|
|||||||
+111
-36
@@ -69,7 +69,7 @@ class CadItem(DataModel):
|
|||||||
"lebenszyklus_status_neu",
|
"lebenszyklus_status_neu",
|
||||||
"model3d_neu",
|
"model3d_neu",
|
||||||
"bezeichnung1_sivas", "bezeichnung1_neu",
|
"bezeichnung1_sivas", "bezeichnung1_neu",
|
||||||
"bezeichnung2_sivas", "bezeichnung2_neu",
|
"bezeichnung2_sivas",
|
||||||
"halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu",
|
"halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu",
|
||||||
"ruestcode_sivas", "ruestcode_neu",
|
"ruestcode_sivas", "ruestcode_neu",
|
||||||
"fertigungsart_sivas", "fertigungsart_neu",
|
"fertigungsart_sivas", "fertigungsart_neu",
|
||||||
@@ -87,7 +87,7 @@ class CadItem(DataModel):
|
|||||||
"ersetztdurch_sivas", "ersetztdurch_neu",
|
"ersetztdurch_sivas", "ersetztdurch_neu",
|
||||||
"herstteilenr_sivas", "herstteilenr_neu",
|
"herstteilenr_sivas", "herstteilenr_neu",
|
||||||
"werkstoffdiskr_neu",
|
"werkstoffdiskr_neu",
|
||||||
"werkstofftyp_sivas", "werkstofftyp_neu",
|
"werkstofftyp_neu",
|
||||||
"material_sivas", "material_neu",
|
"material_sivas", "material_neu",
|
||||||
"oberflaeche_neu",
|
"oberflaeche_neu",
|
||||||
"farbe_neu",
|
"farbe_neu",
|
||||||
@@ -166,6 +166,67 @@ class CadItem(DataModel):
|
|||||||
# "Indexbearbeiter":"in"
|
# "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):
|
def __init__(self):
|
||||||
""" is initalized with its unique id"""
|
""" is initalized with its unique id"""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@@ -496,21 +557,14 @@ class CadItem(DataModel):
|
|||||||
def message_error(self, title, key):
|
def message_error(self, title, key):
|
||||||
return self._controller.message_error(title, key)
|
return self._controller.message_error(title, key)
|
||||||
|
|
||||||
def check(self):
|
def check_key_existence(self, key, missing):
|
||||||
res = self.check_pflichtfelder()
|
|
||||||
if len(res) > 0:
|
|
||||||
return (False, res)
|
|
||||||
else:
|
|
||||||
return (True, [])
|
|
||||||
|
|
||||||
def check_key_existence(self, mess, key, missing):
|
|
||||||
if not self.get_gui_data(key):
|
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_sivas):
|
||||||
if not self.get_gui_data(key_neu):
|
if not self.get_gui_data(key_neu):
|
||||||
missing.append(mess)
|
missing.append(self.key2label[key_neu])
|
||||||
|
|
||||||
def check_pflichtfelder(self):
|
def check_pflichtfelder(self):
|
||||||
"""Allgemeine Prüfungen:
|
"""Allgemeine Prüfungen:
|
||||||
@@ -519,11 +573,11 @@ class CadItem(DataModel):
|
|||||||
|
|
||||||
missing = list()
|
missing = list()
|
||||||
# Teilenummer
|
# Teilenummer
|
||||||
self.check_key_existence( 'Teilenummer', "teilenummer", missing)
|
self.check_key_existence("teilenummer", missing)
|
||||||
# Datenbank
|
# Datenbank
|
||||||
self.check_key_existence("Datenbank", "datenbank", missing)
|
self.check_key_existence("datenbank", missing)
|
||||||
# PDM-Kategorie
|
# PDM-Kategorie
|
||||||
self.check_key_existence("PDM-Kategorie", "pdm_kategorie_neu", missing)
|
self.check_key_existence("pdm_kategorie_neu", missing)
|
||||||
|
|
||||||
# Halbzeugfarbe
|
# Halbzeugfarbe
|
||||||
hblzeug_oberfläche = self.get_gui_data("oberflaeche_neu")
|
hblzeug_oberfläche = self.get_gui_data("oberflaeche_neu")
|
||||||
@@ -532,54 +586,75 @@ class CadItem(DataModel):
|
|||||||
missing.append("Halbzeugfarbe")
|
missing.append("Halbzeugfarbe")
|
||||||
|
|
||||||
# Lebenszyklusstatus
|
# Lebenszyklusstatus
|
||||||
self.check_key_existence("Lebenszyklusstatus", "lebenszyklus_status_neu", missing)
|
self.check_key_existence("lebenszyklus_status_neu", missing)
|
||||||
|
|
||||||
# 3D-Modell
|
# 3D-Modell
|
||||||
self.check_key_existence("3D-Model", "model3d_neu", missing)
|
self.check_key_existence("model3d_neu", missing)
|
||||||
# Bezeichnung 1
|
# 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
|
# 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
|
# 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")
|
pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu")
|
||||||
# Fertigungsart
|
# Fertigungsart
|
||||||
if pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Schweissbaugruppe":
|
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
|
# Allgemeintoleranz
|
||||||
self.check_key_both_columns("Allgemeintoleranz", "allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
|
self.check_key_both_columns("allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
|
||||||
# FOS-Gruppe
|
# 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
|
# Kalkulationsart
|
||||||
self.check_key_both_columns("Kalkulationsart", "kalkulationsart_sivas", "kalkulationsart_neu", missing)
|
self.check_key_both_columns("kalkulationsart_sivas", "kalkulationsart_neu", missing)
|
||||||
# Beschaffungsart
|
# Beschaffungsart
|
||||||
self.check_key_both_columns("Beschaffungsart", "beschaffungsart_sivas", "beschaffungsart_neu", missing)
|
self.check_key_both_columns("beschaffungsart_sivas", "beschaffungsart_neu", missing)
|
||||||
# Mengeneinheit
|
# Mengeneinheit
|
||||||
self.check_key_both_columns("Mengeneinheit", "mengeneinheit_sivas", "mengeneinheit_neu", missing)
|
self.check_key_both_columns("mengeneinheit_sivas", "mengeneinheit_neu", missing)
|
||||||
# Halbzeug
|
# Halbzeug
|
||||||
self.check_key_both_columns("Halbzeug", "halbzeug_sivas", "halbzeug_neu", missing)
|
self.check_key_both_columns("halbzeug_sivas", "halbzeug_neu", missing)
|
||||||
# TOS-Gruppe
|
# TOS-Gruppe
|
||||||
self.check_key_both_columns("Tosgruppe", "tosgruppe_sivas", "tosgruppe_neu", missing)
|
self.check_key_both_columns("tosgruppe_sivas", "tosgruppe_neu", missing)
|
||||||
# Dispogruppe
|
# Dispogruppe
|
||||||
self.check_key_both_columns("Dispogruppe", "dispogruppe_sivas", "dispogruppe_neu", missing)
|
self.check_key_both_columns("dispogruppe_sivas", "dispogruppe_neu", missing)
|
||||||
# Dispolaufgruppe
|
# Dispolaufgruppe
|
||||||
self.check_key_both_columns("Dispolaufgruppe", "dispolaufgruppe_sivas", "dispolaufgruppe_neu", missing)
|
self.check_key_both_columns("dispolaufgruppe_sivas", "dispolaufgruppe_neu", missing)
|
||||||
|
|
||||||
# Werkstofftyp
|
# Werkstofftyp
|
||||||
aus_halbzeug = self.get_gui_data("aus_halbzeug_neu")
|
aus_halbzeug = self.get_gui_data("aus_halbzeug_neu")
|
||||||
if aus_halbzeug is False:
|
if aus_halbzeug is False:
|
||||||
self.check_key_both_columns("Werkstofftyp", "werkstofftyp_sivas", "werkstofftyp_neu", missing)
|
self.check_key_existence("werkstofftyp_neu", missing)
|
||||||
|
|
||||||
# Änderungstext
|
# Änderungstext
|
||||||
self.check_key_both_columns("Änderungstext", "aenderungstext_sivas", "aenderungstext_neu", missing)
|
self.check_key_both_columns("aenderungstext_sivas", "aenderungstext_neu", missing)
|
||||||
# Freigabevermerk
|
# Freigabevermerk
|
||||||
self.check_key_both_columns("Freigabevermerk", "freigabevermerk_sivas", "freigabevermerk_neu", missing)
|
self.check_key_both_columns("freigabevermerk_sivas", "freigabevermerk_neu", missing)
|
||||||
# Automatische Zusatzinformationen
|
# Automatische Zusatzinformationen
|
||||||
self.check_key_existence("Automatische Zusatzinformationen", "zusatzinfos_auto_text", missing)
|
self.check_key_existence("zusatzinfos_auto_text", missing)
|
||||||
return 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:
|
class CadItemRepository:
|
||||||
"""
|
"""
|
||||||
|
|||||||
+24
-17
@@ -13,7 +13,7 @@ messages = {
|
|||||||
"beschaffungsart_infos": ' Komponenten der Schweißbaugruppe müssen eigene Teilenummern erhalten, falls diese aktuell als Underline-Nummern in der Creo-Baugruppe vorliegen, aber keine eigenen Teilenummern in SIVAS besitzen!',
|
"beschaffungsart_infos": ' Komponenten der Schweißbaugruppe müssen eigene Teilenummern erhalten, falls diese aktuell als Underline-Nummern in der Creo-Baugruppe vorliegen, aber keine eigenen Teilenummern in SIVAS besitzen!',
|
||||||
"mengeneinheit_infos":'Bitte prüfen, ob Mengeneinheit ≠ "M - Meter" korrekt ist!',
|
"mengeneinheit_infos":'Bitte prüfen, ob Mengeneinheit ≠ "M - Meter" korrekt ist!',
|
||||||
"material_infos":'Werkstoffvorschlag nicht möglich, da das Material nicht in der Mappingdatei "Materialübersetzung.json" enthalten ist.\nBitte Werkstoff in dieser Datei nachfpflegen und prüfen, ob der Werkstoff in den nachfolgenden Systemen vorhanden ist:\n- RuleDesigner\n- SIVAS-Produktiv- und Schulungsdatenbank\n- Solid Edge\nWenn nicht, bitte in diesen Systemen ebenfalls nachpflegen!',
|
"material_infos":'Werkstoffvorschlag nicht möglich, da das Material nicht in der Mappingdatei "Materialübersetzung.json" enthalten ist.\nBitte Werkstoff in dieser Datei nachfpflegen und prüfen, ob der Werkstoff in den nachfolgenden Systemen vorhanden ist:\n- RuleDesigner\n- SIVAS-Produktiv- und Schulungsdatenbank\n- Solid Edge\nWenn nicht, bitte in diesen Systemen ebenfalls nachpflegen!',
|
||||||
"unzulaessige_zeichen":'Unzulässige Zeichen identifiziert:\nZeichen: {Zeichentyp} -> Feld: {Feldname}',
|
"unzulaessige_zeichen":"Unzulässige Zeichen identifiziert:\nZeichen: '{Zeichentyp}' -> Feld: '{Feldname}'",
|
||||||
"bezeichnung_zu_gross":'Bezeichnung besitzt mehr als 50 Zeichen. Bitte verkürzen!',
|
"bezeichnung_zu_gross":'Bezeichnung besitzt mehr als 50 Zeichen. Bitte verkürzen!',
|
||||||
"konflikt_ruestcode_saegeliste":'In Sivas prüfen, wieso Haken bei "Halbzeug ohne Sägeliste" trotz Rüstcode "SRC Standard Rüstcode" gesetzt ist.',
|
"konflikt_ruestcode_saegeliste":'In Sivas prüfen, wieso Haken bei "Halbzeug ohne Sägeliste" trotz Rüstcode "SRC Standard Rüstcode" gesetzt ist.',
|
||||||
"teilenummre_ohne_ruestcode":'Teilenummer darf nicht ohne Rüstcode migriert werden!',
|
"teilenummre_ohne_ruestcode":'Teilenummer darf nicht ohne Rüstcode migriert werden!',
|
||||||
@@ -61,6 +61,7 @@ class Controller(Observer):
|
|||||||
"""
|
"""
|
||||||
def __init__(self, model, view):
|
def __init__(self, model, view):
|
||||||
self._environment = None
|
self._environment = None
|
||||||
|
self._config = None
|
||||||
self.set_model(model)
|
self.set_model(model)
|
||||||
self.set_view(view)
|
self.set_view(view)
|
||||||
|
|
||||||
@@ -82,6 +83,9 @@ class Controller(Observer):
|
|||||||
raise Exception("this path is not defined "+env_path)
|
raise Exception("this path is not defined "+env_path)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def set_config(self, config):
|
||||||
|
self._config = config
|
||||||
|
|
||||||
|
|
||||||
def get_csv_files_of_asm(self, asmid, uselocal):
|
def get_csv_files_of_asm(self, asmid, uselocal):
|
||||||
""" sich die Einzelteile als .csv und den Aufbau des Assemblies als .json holen """
|
""" sich die Einzelteile als .csv und den Aufbau des Assemblies als .json holen """
|
||||||
@@ -213,9 +217,7 @@ class Controller(Observer):
|
|||||||
if 'Labels' in values:
|
if 'Labels' in values:
|
||||||
text = text.format(Labels=values['Labels'])
|
text = text.format(Labels=values['Labels'])
|
||||||
if 'Zeichentyp' in values:
|
if 'Zeichentyp' in values:
|
||||||
text = text.format(Zeichentyp=values['Zeichentyp'])
|
text = text.format(Zeichentyp=values['Zeichentyp'], Feldname=values['Feldname'] )
|
||||||
if 'Feldname' in values:
|
|
||||||
text = text.format(Feldname=values['Feldname'])
|
|
||||||
return messagebox.showerror(title, text)
|
return messagebox.showerror(title, text)
|
||||||
|
|
||||||
def callback(self, key, value):
|
def callback(self, key, value):
|
||||||
@@ -256,24 +258,29 @@ class Controller(Observer):
|
|||||||
self.refresh_gui()
|
self.refresh_gui()
|
||||||
|
|
||||||
def migrieren(self):
|
def migrieren(self):
|
||||||
(ok, missing) = self._model.check()
|
(ok, missing) = self._model.check_pflichtfelder()
|
||||||
if ok == False:
|
if ok == False:
|
||||||
labels = ', '.join(missing)
|
labels = ', '.join(missing)
|
||||||
self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels})
|
self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels})
|
||||||
|
return
|
||||||
|
invalid_chars = self._config.InvalidChars.get()
|
||||||
|
(ok, wrongchars) = self._model.check_improper_chars(invalid_chars)
|
||||||
|
if ok == False:
|
||||||
|
for label,achars in wrongchars.items():
|
||||||
|
chars = ''.join(achars)
|
||||||
|
self.message_error('Unzulässige Zeichen', 'unzulaessige_zeichen', {'Zeichentyp': chars, 'Feldname':label})
|
||||||
|
return
|
||||||
|
|
||||||
def zuruecksetzen(self):
|
def zuruecksetzen(self):
|
||||||
data = dict()
|
cid = self.get_current_item_id()
|
||||||
data['halbzeugnummer_neu'] = {'background':'red', 'foreground':'white'}
|
self._model.clear()
|
||||||
self._view.configure(data)
|
self._view.clear_rightframes()
|
||||||
# cid = self.get_current_item_id()
|
csv_data = self._model.sivas_data_from_csv(str(cid))
|
||||||
# self._model.clear()
|
# transform the csv keys into keys used behind the gui
|
||||||
# self._view.clear_rightframes()
|
gui_data = self._model.csv2guidata(csv_data)
|
||||||
# csv_data = self._model.sivas_data_from_csv(str(cid))
|
self.set_gui_dict(gui_data)
|
||||||
# # transform the csv keys into keys used behind the gui
|
# create dropdown and other defaults
|
||||||
# gui_data = self._model.csv2guidata(csv_data)
|
self._model.set_gui_defaults()
|
||||||
# self.set_gui_dict(gui_data)
|
|
||||||
# # create dropdown and other defaults
|
|
||||||
# self._model.set_gui_defaults()
|
|
||||||
|
|
||||||
def suche_3d(self):
|
def suche_3d(self):
|
||||||
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
|
|||||||
+20
-17
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
from configparser import ConfigParser
|
from configparser import ConfigParser, RawConfigParser
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import update_database
|
import update_database
|
||||||
|
|
||||||
@@ -447,10 +447,21 @@ class ZusatzConfig(IniBasedConfig):
|
|||||||
def __init__(self, config_dir='.', config_file='Zusatzinformationen.cfg'):
|
def __init__(self, config_dir='.', config_file='Zusatzinformationen.cfg'):
|
||||||
super().__init__(config_dir, config_file)
|
super().__init__(config_dir, config_file)
|
||||||
|
|
||||||
class ERPConfig(IniBasedConfig):
|
class InvaldCharsConfig():
|
||||||
"""Auslesen der Zusatzinformationen die aus dem Änderungsindex abgeleitet werden"""
|
"""Auslesen der Zusatzinformationen die aus dem Änderungsindex abgeleitet werden"""
|
||||||
def __init__(self, config_dir='.', config_file='ERP_Item.ini'):
|
def __init__(self, config_dir='.', config_file='InvalidCharacters.txt'):
|
||||||
super().__init__(config_dir, config_file)
|
self.config_path = os.path.join(config_dir, config_file)
|
||||||
|
if not os.path.exists(self.config_path):
|
||||||
|
raise Exception("path does not exist")
|
||||||
|
self._isInitalized = False
|
||||||
|
file = open(self.config_path,'r')
|
||||||
|
line = file.read()
|
||||||
|
line = line.rstrip()
|
||||||
|
self._characters = line.split(',')
|
||||||
|
|
||||||
|
def get(self):
|
||||||
|
return self._characters
|
||||||
|
|
||||||
|
|
||||||
class Configs:
|
class Configs:
|
||||||
"""Sammlung aller Configdateien """
|
"""Sammlung aller Configdateien """
|
||||||
@@ -466,13 +477,12 @@ class Configs:
|
|||||||
self.Pfade = PfadConfig(cfg_dir)
|
self.Pfade = PfadConfig(cfg_dir)
|
||||||
self.Werkstoffe = WerkstoffeConfig(cfg_dir)
|
self.Werkstoffe = WerkstoffeConfig(cfg_dir)
|
||||||
self.Zusatz = ZusatzConfig(cfg_dir)
|
self.Zusatz = ZusatzConfig(cfg_dir)
|
||||||
self.ERP = ERPConfig(cfg_dir)
|
self.InvalidChars = InvaldCharsConfig(cfg_dir)
|
||||||
|
|
||||||
self.TOSGruppen = TOSGroupsConfig(cfg_dir)
|
self.TOSGruppen = TOSGroupsConfig(cfg_dir)
|
||||||
self.Materialien = MaterialTransConfig(cfg_dir)
|
self.Materialien = MaterialTransConfig(cfg_dir)
|
||||||
self._TeileNummern = None
|
self._TeileNummern = None
|
||||||
self._blacklist = None
|
self._blacklist = None
|
||||||
self._env = None
|
|
||||||
|
|
||||||
def get_cfg_path(self):
|
def get_cfg_path(self):
|
||||||
return self._cfg_dir
|
return self._cfg_dir
|
||||||
@@ -482,23 +492,16 @@ class Configs:
|
|||||||
def get_data_dir(self):
|
def get_data_dir(self):
|
||||||
return self._data_dir
|
return self._data_dir
|
||||||
|
|
||||||
def set_env(self, env):
|
|
||||||
self._env = env
|
|
||||||
|
|
||||||
def get_env(self):
|
|
||||||
if self._env:
|
|
||||||
return self._env
|
|
||||||
return None
|
|
||||||
|
|
||||||
def get_ruledesigner_ids(self):
|
def get_ruledesigner_ids(self):
|
||||||
|
if not self._data_dir:
|
||||||
|
raise Exception("set_data_dir not called. path not set")
|
||||||
if not self._TeileNummern:
|
if not self._TeileNummern:
|
||||||
self._TeileNummern = RuleDesignerDatabaseConfig(self._env.data_dir).get_ruledesigner_ids()
|
self._TeileNummern = RuleDesignerDatabaseConfig(self._data_dir).get_ruledesigner_ids()
|
||||||
return self._TeileNummern
|
return self._TeileNummern
|
||||||
|
|
||||||
def get_blacklist(self):
|
def get_blacklist(self):
|
||||||
if not self._data_dir:
|
if not self._data_dir:
|
||||||
return None
|
raise Exception("set_data_dir not called. path not set")
|
||||||
|
|
||||||
if not self._blacklist:
|
if not self._blacklist:
|
||||||
with open(os.path.join(self._data_dir, 'blacklist.txt')) as f:
|
with open(os.path.join(self._data_dir, 'blacklist.txt')) as f:
|
||||||
lines = f.read().splitlines()
|
lines = f.read().splitlines()
|
||||||
|
|||||||
Reference in New Issue
Block a user