Vor Durchführung der Migration wird nun zusätzlich geprüft, ob Teilenummern in der Blacklist fehlen. Ist immer dann der Fall, wenn eine Teilenummer eine Stückliste besitzt und sich darin Positionsnummern befinden, die beigestellt oder dispo-inaktiv sind.

This commit is contained in:
2024-06-16 21:59:47 +02:00
parent c070f1fd28
commit 09b8ee7e6e
3 changed files with 75 additions and 3 deletions
+26 -1
View File
@@ -45,7 +45,8 @@ messages = {
"wrong_impftool_path": 'Pfad zur DataPrepUtility.exe nicht gefunden. Bitte setenv.bat prüfen.' ,
"too_many_logfiles":'Keine eindeutige Logdatei zum aktuellen DataPrep Prozess gefunden. Bitte löschen Sie die überflüssigen .log files',
"some_error_in_log":'Log Datei enthält einen Fehler. Bitte prüfen.',
"preparation_sucessful":'Preparation mit der Datei {path} erfolgreich'
"preparation_sucessful":'Preparation mit der Datei {path} erfolgreich',
"missing_in_blacklist":"{teilenummer} fehlt in der Blacklist, da sich in dessen Stückliste beigestellte oder dispo-inaktive Positionen befinden.\n\nBitte {teilenummer} in die Blacklist aufnehmen!"
}
@@ -135,6 +136,14 @@ class Controller(Observer):
self._model.set_parent_children(parent_children)
self._model.set_asm_id(asmid)
def get_bom_properties(self, asmid):
""" Holt sich aus Stückliste alle Eigenschaften der Stücklistenpositionen (z.B. Bezeichnung)"""
data_dir = self.get_env("data")
assembly_data = SivasAssemblyData(data_dir, asmid + '.json')
bom_properties = assembly_data.get_all_bom_properties()
self._model.set_bom_properties(bom_properties)
def set_model(self, model):
self._model = model
self.attach(model)
@@ -159,6 +168,7 @@ class Controller(Observer):
self._model.set_asm_id(asm_id)
# hole alle Daten vom Server
self.get_csv_files_of_asm(asm_id, loadlocal)
self.get_bom_properties(asm_id)
#self._load_cid_data2model(asm_id)
def set_current_item_id(self, cid):
@@ -260,6 +270,8 @@ class Controller(Observer):
text = text.format(Zeichentyp=values['Zeichentyp'], Feldname=values['Feldname'] )
if 'path' in values:
text = text.format(path=values['path'])
if 'teilenummer' in values:
text = text.format(teilenummer=values['teilenummer'])
return messagebox.showerror(title, text)
def callback(self, key, value):
@@ -303,12 +315,23 @@ class Controller(Observer):
def migrieren(self):
self._view.reset_labels()
# Pruefung ob Pflichtfelder befuellt
(ok, missing) = self._model.check_pflichtfelder()
if ok == False:
labels = ', '.join(missing)
self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels})
self._view.highlight_labels(missing)
return
# Pruefung ob assembly-id in Blacklist fehlt
(ok, missing_blacklist_id) = self._model.check_blacklist_completeness()
if ok == False:
id = ''.join(missing_blacklist_id)
self.message_error('Fehlend in Blacklist', 'missing_in_blacklist', {'teilenummer': id})
return
# Pruefung, ob unzulaessige Zeichen vorhanden
invalid_chars = self._config.InvalidChars.get()
(ok, wrongchars) = self._model.check_improper_chars(invalid_chars)
if ok == False:
@@ -317,6 +340,8 @@ class Controller(Observer):
self.message_error('Unzulässige Zeichen', 'unzulaessige_zeichen', {'Zeichentyp': chars, 'Feldname':label})
self._view.highlight_labels(wrongchars)
return
# Pruefung Feldinhalte
ok = self._model.check_content()
if ok == True:
data = self._model.create_migration_data()