Generierung der Export Daten. TOS Gruppenfolge aus der TOS Nummer impl.
This commit is contained in:
+2
-2
@@ -1,6 +1,6 @@
|
||||
[Zielpfade]
|
||||
\\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool
|
||||
\\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool
|
||||
Produktiv=\\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool
|
||||
Schulung=\\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool
|
||||
|
||||
[3D-Modelle]
|
||||
BaugruppeSchweissbaugruppe=\\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm
|
||||
|
||||
+217
-10
@@ -553,9 +553,9 @@ 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, values=None):
|
||||
def message_error(self, title, key, values={}):
|
||||
return self._controller.message_error(title, key, values)
|
||||
def message_question(self, title, key, values=None):
|
||||
def message_question(self, title, key, values={}):
|
||||
return self._controller.message_question(title, key, values)
|
||||
|
||||
def check_key_existence(self, key, missing):
|
||||
@@ -666,7 +666,9 @@ class CadItem(DataModel):
|
||||
return None
|
||||
|
||||
|
||||
def check_content(self):
|
||||
def check_content(self):
|
||||
"""Überprüfe die Inhalte nach Längen, Zeichenketten und korrekten Kombinationen der Eingaben"""
|
||||
|
||||
content = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
|
||||
if len(content) > 50:
|
||||
self.message_error('Bezeichnung1 zu gross', 'bezeichnung_zu_gross')
|
||||
@@ -686,6 +688,10 @@ class CadItem(DataModel):
|
||||
self.message_error('Teilenummer ohne Rüstcode', 'teilenummer_ohne_ruestcode')
|
||||
return False
|
||||
|
||||
if pdm_kategorie_neu == "<undefiniert>":
|
||||
self.message_error('Kategorie nicht definiert', 'pdm_kategorie_definiert')
|
||||
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"]
|
||||
@@ -809,24 +815,225 @@ class CadItem(DataModel):
|
||||
# return
|
||||
|
||||
# Farbe
|
||||
farbe = self._model.get_gui_data("farbe_neu")
|
||||
if werkstofftyp == '':
|
||||
self.message_error('Werkstofftyp nicht eingetragen', 'werkstofftyp_not_exist')
|
||||
farbe = self.get_gui_data("farbe_neu")
|
||||
oberflaeche = self.get_gui_data("oberflaeche_neu")
|
||||
if farbe == '' and (oberflaeche == "Masterbatch (Grundfarbe)" or \
|
||||
oberflaeche == "eloxieren" or\
|
||||
oberflaeche == "pulverbeschichten" or\
|
||||
oberflaeche == "lackieren"):
|
||||
self.message_error('Farbe nicht festgelegt', 'color_not_defined')
|
||||
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")
|
||||
aus_halbzeug = self.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")
|
||||
material_sivas = self.get_gui_data("material_sivas")
|
||||
if material_sivas not in mlist:
|
||||
self._model.message_info('Materialinformation', 'material_infos')
|
||||
self.message_info('Materialinformation', 'material_infos')
|
||||
|
||||
return True
|
||||
|
||||
def create_migration_file(self, data):
|
||||
"""erzeugt Verzeichnis und Datei"""
|
||||
model3d_neu = self.get_gui_data("model3d_neu")
|
||||
datenbank = self.get_gui_data("datenbank")
|
||||
path = os.path.dirname(model3d_neu)
|
||||
filename = os.path.basename(model3d_neu)
|
||||
|
||||
# IF Datenbank == "Produktiv":
|
||||
# New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool\
|
||||
# ELSE:
|
||||
# New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool
|
||||
zielpfad = self._config.Pfade.get('Zielpfade', datenbank )
|
||||
username = os.environ.get("USERNAME")
|
||||
userpfad = os.path.join(zielpfad, username)
|
||||
# Wenn User, der migriert, noch keinen Ordner im Ziel besitzt,
|
||||
# soll dieser automatisch beim Klick auf "Migrieren" angelegt werden.
|
||||
if not os.path.exists(userpfad):
|
||||
os.mkdir(userpfad)
|
||||
|
||||
def tos_to_dict(self, tosgruppe, num2refId, num2child):
|
||||
tosstr = str(tosgruppe)
|
||||
ret = dict()
|
||||
keybefore = ''
|
||||
for n in range(1, len(tosstr)+1):
|
||||
if n == 1:
|
||||
spaltenName = "TOS-Gruppe"
|
||||
else:
|
||||
spaltenName = keybefore
|
||||
key = tosstr[0:n]
|
||||
if key in num2refId:
|
||||
parentKey = num2refId[key]
|
||||
content = num2child[key]
|
||||
ret[spaltenName] = content
|
||||
else:
|
||||
spaltenName = keybefore
|
||||
ret[spaltenName] = num2child[key]
|
||||
keybefore = parentKey
|
||||
return ret
|
||||
|
||||
def create_migration_data(self):
|
||||
pass
|
||||
data = {
|
||||
"Delete": "" ,
|
||||
"Document Number": "-",
|
||||
"Revision": "-",
|
||||
"Project Name": "-",
|
||||
"Teamcenter Item Type": "-",
|
||||
"Part Type": "-",
|
||||
"TC_ImportTime": "-",
|
||||
"Last Saved Version": "-",
|
||||
"Subject": "-",
|
||||
"Category": "-",
|
||||
"Keywords": "-",
|
||||
}
|
||||
all_data = self.get_all_gui_data()
|
||||
# data_keys = [ "Author", "Teilenummer", "StartRevision",
|
||||
# "Bezeichnung1", "Bezeichnung2", "Bezeichnung4", "KategorieNE",
|
||||
# "BeschaffungsartNE", "TOS-Gruppe_ERP", "Dispogruppe",
|
||||
# "Dispolaufgruppe", "WerkstofftypNE", "WerkstoffNE",
|
||||
# "Oberflaechenbehandlung", "Farbe", "KalkulationsartNE",
|
||||
# "RuestcodeAusw", "Fertigungsart", "Allgemeintoleranz",
|
||||
# "HalbzeugInternAngabe", "Halbzeug", "HalbzeugOhneSaegeliste",
|
||||
# "EinheitNE", "FOS-GruppeNE", "Hersteller", "HerstellerTeilenummer",
|
||||
# "Serien-Status", "Kantennorm", "Oberflaechennorm", "Massnorm",
|
||||
# "Tolerierungsnorm","Änderungsbeschreibung",
|
||||
# "Freigabevermerk", "ZusaetzlicheInformationen"]
|
||||
# Path
|
||||
teilenummer = self.get_gui_data("teilenummer")
|
||||
data["Teilenummer"] = teilenummer
|
||||
|
||||
# Bezeichnung um "- BG" ergänzen
|
||||
pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu")
|
||||
bezeichnung1 = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
|
||||
title = bezeichnung1
|
||||
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
title = bezeichnung1 + " - BG"
|
||||
data["Title"] = title
|
||||
|
||||
# Bezeichnung 4
|
||||
bezeichnung4 = ""
|
||||
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
bezeichnung4 = " - BG"
|
||||
data["Bezeichnung4"] = bezeichnung4
|
||||
|
||||
# Author
|
||||
username = os.environ.get("USERNAME")
|
||||
data["Author"] = username
|
||||
|
||||
# Startrevision
|
||||
startrevision = self.get_content('aenderungsindex_sivas', 'aenderungsindex_neu')
|
||||
data["StartRevision"] = startrevision
|
||||
|
||||
# aus Halbzeug
|
||||
aus_halbzeug = self.get_gui_data("aus_halbzeug_neu")
|
||||
if aus_halbzeug:
|
||||
data["Aus Halbzeug"] = "Ja"
|
||||
else:
|
||||
data["Aus Halbzeug"] = ""
|
||||
|
||||
# Fertigungsart
|
||||
fertigungsart = self.get_content('fertigungsart_sivas', 'fertigungsart_neu')
|
||||
trans = {
|
||||
"3D - 3D-drucken":"3D-drucken",
|
||||
"3D - 3D drucken":"3D-drucken",
|
||||
"BI - biegen":"biegen",
|
||||
"DR - drehen":"drehen",
|
||||
"EX - extrudieren":"extrudieren",
|
||||
"FR - fräsen":"fräsen",
|
||||
"GI - gießen":"gießen",
|
||||
"LW - laser- und wasserstrahlschneiden":"laser-/wasserstrahlschneiden",
|
||||
"PR - verpressen":"verpressen",
|
||||
"SA - sägen":"sägen",
|
||||
"SN - strangpressen":"strangpressen",
|
||||
"SP - spritzgießen":"spritzgießen",
|
||||
"ST - stanzen":"stanzen",
|
||||
"SW - schweißen":"schweißen",
|
||||
}
|
||||
data["Fertigungsart"] = trans[fertigungsart]
|
||||
|
||||
# FOS Gruppe
|
||||
fos_gruppe = self.get_content('fosGruppe_sivas', 'fosGruppe_neu')
|
||||
trans = {
|
||||
"0 - Einzelteil":"Einzelteil",
|
||||
"1 - Baugruppe":"Baugruppe",
|
||||
}
|
||||
data["Fertigungsart"] = trans[fos_gruppe]
|
||||
|
||||
|
||||
# Mengeneinheit
|
||||
mengeneinheit = self.get_content('mengeneinheit_sivas', 'mengeneinheit_neu')
|
||||
trans = {
|
||||
"L - Liter":"L",
|
||||
"mm - Millimeter":"mm",
|
||||
"Stck - Stück":"Stck",
|
||||
"M - Meter":"m",
|
||||
"m2 - Quadratmeter":"m²",
|
||||
"dm³ - Kubikdezimeter":"dm³",
|
||||
"m³ - Kubikmeter":"m³",
|
||||
}
|
||||
data["Mengeneinheit"] = trans[mengeneinheit]
|
||||
|
||||
|
||||
# Halbzeug
|
||||
halbzeug = self.get_content('halbzeug_sivas', 'halbzeug_neu')
|
||||
trans = {
|
||||
"WAHR":"Ja",
|
||||
"FALSCH":"",
|
||||
}
|
||||
data["Halbzeug"] = trans[halbzeug]
|
||||
|
||||
# TOS-Gruppe
|
||||
# Nr. Spaltenname in Impfdatei Wert in Impfdatei
|
||||
# 3 TOS-Gruppe Schönenberger Produkt
|
||||
# 33 TOS_Schoenenberger_Produkt ILS IntraLogistikSystem
|
||||
# 330 TOS_ILS ILS 2.0
|
||||
# 3303 TOS_ILS_2 Laufprofil 2.0
|
||||
(num2refId, num2child) = self._controller.get_config().TOSGruppen.get_Id2TosGroup()
|
||||
tosgruppe = self.get_content('tosgruppe_sivas', 'tosgruppe_neu')
|
||||
newcolumns = self.tos_to_dict(tosgruppe, num2refId, num2child)
|
||||
data.update(newcolumns)
|
||||
|
||||
|
||||
# Dispogruppe
|
||||
dispogruppe = self.get_content('dispogruppe_sivas', 'dispogruppe_neu')
|
||||
trans = {
|
||||
"10 - Fahrstrecke":"Fahrstrecke",
|
||||
"20 - Förderer":"Förderer",
|
||||
"30 - Gerüst":"Gerüst",
|
||||
"40 - Betriebsmittel":"Betriebsmittel",
|
||||
"50 - Automation":"Automation",
|
||||
"60 - Kleinteile":"Kleinteil",
|
||||
"70 - Rohmaterial":"Rohmaterial",
|
||||
"80 - Sonstiges Intern":"Sonstiges Intern",
|
||||
"90 - Baustelleneinrichtung":"Baustelleneinrichtung",
|
||||
"100 - Sonderkonstruktionen":"Sonderkonstruktionen",
|
||||
}
|
||||
data["Dispogruppe"] = trans[dispogruppe]
|
||||
|
||||
|
||||
# Dispolaufgruppe
|
||||
dispolaufgruppe = self.get_content('dispolaufgruppe_sivas', 'dispolaufgruppe_neu')
|
||||
trans = {
|
||||
"10 - Omniflo":"Omniflo",
|
||||
"20 - Intra Logistic System + Alt-HFS":"Intra Logistic System + alt-HFS",
|
||||
"30 - Fremd-Transportsysteme + SSG-Anbauten":"Fremd-Transportsysteme + SSG-Anbauten",
|
||||
"40 - Spinnereikomponenten":"Spinnereikomponente",
|
||||
"45 - Automotiv":"Automotiv",
|
||||
"50 - Nicht eindeutig, Sonder":"Nicht eindeutig, Sonder",
|
||||
}
|
||||
data["Dispolaufgruppe"] = trans[dispolaufgruppe]
|
||||
|
||||
# ZusaetzlicheInformationen
|
||||
# Die Werte aus den Feldern Automatische Zusatzinformationen und
|
||||
# Benutzerdefinierte Zusatzinformationen müssen vor dem Eintragen in
|
||||
# die Impfdatei zusammengesetzt werden
|
||||
zusatzinfos_auto_text = self.get_gui_data("zusatzinfos_auto_text")
|
||||
zusatzinfos_bendef_text = self.get_gui_data("zusatzinfos_bendef_text")
|
||||
data["ZusaetzlicheInformationen"] = zusatzinfos_auto_text + zusatzinfos_bendef_text
|
||||
|
||||
|
||||
|
||||
class CadItemRepository:
|
||||
"""
|
||||
|
||||
+14
-12
@@ -9,6 +9,7 @@ Contains the logic for the MVC of CreoMigrate Gui
|
||||
"""
|
||||
# Infos und Fehlermeldungen die ausgelöst werden können
|
||||
messages = {
|
||||
"pdm_kategorie_definiert": "PDM-Kategorie nicht definiert",
|
||||
"rüstcode_infos": 'Bitte Rüstcode auswählen!',
|
||||
"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!',
|
||||
@@ -29,7 +30,7 @@ messages = {
|
||||
"teilenummer_not_exist_infos":"Ersetzte Teilenummer '{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?",
|
||||
"hersteller": "Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen!",
|
||||
"werkstofftyp_not_exist":'Eingetragener Werkstofftyp existieert nicht. Bitte korrigeren!',
|
||||
"werkstofftyp_not_exist":'Eingetragener Werkstofftyp existiert nicht. Bitte korrigeren!',
|
||||
"werkstoff_not_exist":'Werkstoff falsch. Bitte korrigieren!',
|
||||
"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!',
|
||||
@@ -214,7 +215,7 @@ class Controller(Observer):
|
||||
|
||||
def message_info(self, title, key, questions='ok'):
|
||||
return messagebox.showinfo(title, messages[key])
|
||||
def message_question(self, title, key, values):
|
||||
def message_question(self, title, key, values={}):
|
||||
text = messages[key]
|
||||
if 'teilenummer' in values:
|
||||
text = text.format(teilenummer=values['teilenummer'])
|
||||
@@ -222,7 +223,7 @@ class Controller(Observer):
|
||||
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]
|
||||
if 'Labels' in values:
|
||||
text = text.format(Labels=values['Labels'])
|
||||
@@ -273,17 +274,18 @@ class Controller(Observer):
|
||||
# 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
|
||||
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
|
||||
ok = self._model.check_content()
|
||||
if ok == True:
|
||||
data = self._model.create_migration_data()
|
||||
|
||||
data = self._model.create_migration_data()
|
||||
#self._model.create_migration_file(data)
|
||||
|
||||
def zuruecksetzen(self):
|
||||
cid = self.get_current_item_id()
|
||||
self._model.clear()
|
||||
|
||||
Reference in New Issue
Block a user