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.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 = ttk.Window()
|
||||
app = App(root)
|
||||
|
||||
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)
|
||||
|
||||
logic = GuiLogic(model, configs)
|
||||
@@ -111,28 +112,28 @@ if __name__ == '__main__':
|
||||
args = parser.parse_args()
|
||||
|
||||
environment = Environment()
|
||||
output_dir = environment.out_dir
|
||||
|
||||
data_dir = environment.data_dir
|
||||
configs = Configs(environment.cfg_dir)
|
||||
configs.set_env(environment)
|
||||
configs.set_data_dir(data_dir)
|
||||
|
||||
|
||||
model = CadItem()
|
||||
if args.demo:
|
||||
model.from_json(json.loads(demo_data))
|
||||
build_gui(model, configs, "400102196", True)
|
||||
build_gui(model, configs, environment, "400102196", True)
|
||||
|
||||
elif args.sivasid:
|
||||
sivasid = args.sivasid.strip()
|
||||
|
||||
output_dir = environment.out_dir
|
||||
assembl_path = os.path.join(output_dir, sivasid + '.json')
|
||||
if os.path.exists(assembl_path):
|
||||
# wenn schon einmal das assembly als json abgespeichert wurde, dann dieses laden
|
||||
model.load(assembl_path)
|
||||
else:
|
||||
# die Gui aufbauen
|
||||
build_gui(model, configs, sivasid, args.uselocal)
|
||||
build_gui(model, configs, environment, sivasid, args.uselocal)
|
||||
else:
|
||||
parser.print_help()
|
||||
|
||||
|
||||
+111
-36
@@ -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:
|
||||
"""
|
||||
|
||||
+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!',
|
||||
"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!',
|
||||
"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!',
|
||||
"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!',
|
||||
@@ -61,6 +61,7 @@ class Controller(Observer):
|
||||
"""
|
||||
def __init__(self, model, view):
|
||||
self._environment = None
|
||||
self._config = None
|
||||
self.set_model(model)
|
||||
self.set_view(view)
|
||||
|
||||
@@ -82,6 +83,9 @@ class Controller(Observer):
|
||||
raise Exception("this path is not defined "+env_path)
|
||||
return ret
|
||||
|
||||
def set_config(self, config):
|
||||
self._config = config
|
||||
|
||||
|
||||
def get_csv_files_of_asm(self, asmid, uselocal):
|
||||
""" sich die Einzelteile als .csv und den Aufbau des Assemblies als .json holen """
|
||||
@@ -213,9 +217,7 @@ class Controller(Observer):
|
||||
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'])
|
||||
text = text.format(Zeichentyp=values['Zeichentyp'], Feldname=values['Feldname'] )
|
||||
return messagebox.showerror(title, text)
|
||||
|
||||
def callback(self, key, value):
|
||||
@@ -256,24 +258,29 @@ class Controller(Observer):
|
||||
self.refresh_gui()
|
||||
|
||||
def migrieren(self):
|
||||
(ok, missing) = self._model.check()
|
||||
(ok, missing) = self._model.check_pflichtfelder()
|
||||
if ok == False:
|
||||
labels = ', '.join(missing)
|
||||
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):
|
||||
data = dict()
|
||||
data['halbzeugnummer_neu'] = {'background':'red', 'foreground':'white'}
|
||||
self._view.configure(data)
|
||||
# cid = self.get_current_item_id()
|
||||
# self._model.clear()
|
||||
# self._view.clear_rightframes()
|
||||
# csv_data = self._model.sivas_data_from_csv(str(cid))
|
||||
# # transform the csv keys into keys used behind the gui
|
||||
# gui_data = self._model.csv2guidata(csv_data)
|
||||
# self.set_gui_dict(gui_data)
|
||||
# # create dropdown and other defaults
|
||||
# self._model.set_gui_defaults()
|
||||
cid = self.get_current_item_id()
|
||||
self._model.clear()
|
||||
self._view.clear_rightframes()
|
||||
csv_data = self._model.sivas_data_from_csv(str(cid))
|
||||
# transform the csv keys into keys used behind the gui
|
||||
gui_data = self._model.csv2guidata(csv_data)
|
||||
self.set_gui_dict(gui_data)
|
||||
# create dropdown and other defaults
|
||||
self._model.set_gui_defaults()
|
||||
|
||||
def suche_3d(self):
|
||||
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
||||
|
||||
+20
-17
@@ -1,6 +1,6 @@
|
||||
import os
|
||||
import json
|
||||
from configparser import ConfigParser
|
||||
from configparser import ConfigParser, RawConfigParser
|
||||
import pandas as pd
|
||||
import update_database
|
||||
|
||||
@@ -447,10 +447,21 @@ class ZusatzConfig(IniBasedConfig):
|
||||
def __init__(self, config_dir='.', config_file='Zusatzinformationen.cfg'):
|
||||
super().__init__(config_dir, config_file)
|
||||
|
||||
class ERPConfig(IniBasedConfig):
|
||||
class InvaldCharsConfig():
|
||||
"""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)
|
||||
def __init__(self, config_dir='.', config_file='InvalidCharacters.txt'):
|
||||
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:
|
||||
"""Sammlung aller Configdateien """
|
||||
@@ -466,13 +477,12 @@ class Configs:
|
||||
self.Pfade = PfadConfig(cfg_dir)
|
||||
self.Werkstoffe = WerkstoffeConfig(cfg_dir)
|
||||
self.Zusatz = ZusatzConfig(cfg_dir)
|
||||
self.ERP = ERPConfig(cfg_dir)
|
||||
self.InvalidChars = InvaldCharsConfig(cfg_dir)
|
||||
|
||||
self.TOSGruppen = TOSGroupsConfig(cfg_dir)
|
||||
self.Materialien = MaterialTransConfig(cfg_dir)
|
||||
self._TeileNummern = None
|
||||
self._blacklist = None
|
||||
self._env = None
|
||||
|
||||
def get_cfg_path(self):
|
||||
return self._cfg_dir
|
||||
@@ -482,23 +492,16 @@ class Configs:
|
||||
def get_data_dir(self):
|
||||
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):
|
||||
if not self._data_dir:
|
||||
raise Exception("set_data_dir not called. path not set")
|
||||
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
|
||||
|
||||
def get_blacklist(self):
|
||||
if not self._data_dir:
|
||||
return None
|
||||
|
||||
raise Exception("set_data_dir not called. path not set")
|
||||
if not self._blacklist:
|
||||
with open(os.path.join(self._data_dir, 'blacklist.txt')) as f:
|
||||
lines = f.read().splitlines()
|
||||
|
||||
Reference in New Issue
Block a user