From 8ec356df70cd117840da88c72110757f435828cd Mon Sep 17 00:00:00 2001 From: mistangl Date: Wed, 13 Mar 2024 12:40:31 +0100 Subject: [PATCH] Content Check weiter getrieben bis zur Kalkulationsart --- lib/caditem.py | 113 ++++++++++++++++++++++++++++++++++++++++++---- lib/controller.py | 27 +++++------ 2 files changed, 119 insertions(+), 21 deletions(-) diff --git a/lib/caditem.py b/lib/caditem.py index cf7c871..e99bb6f 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -217,14 +217,14 @@ class CadItem(DataModel): "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", + "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): @@ -655,6 +655,103 @@ class CadItem(DataModel): return (False, wrongchars) else: return (True, {}) + + def get_content(self, key_sivas, key_neu): + if self.get_gui_data(key_neu): + return self.get_gui_data(key_neu) + else: + if self.get_gui_data(key_sivas): + return self.get_gui_data(key_sivas) + return None + + # "asm_id", + # "teilenummer", + # "datenbank", + # "pdm_kategorie_neu", + # "neuaufbau", + # "aus_halbzeug_neu", + # "halbzeugnummer_neu", + # "halbzeuglaenge_neu", + # "halbzeugoberflaeche_neu", + # "halbzeugfarbe_neu", + # "lebenszyklus_status_neu", + # "model3d_neu", + # "bezeichnung1_sivas", "bezeichnung1_neu", + # "bezeichnung2_sivas", + # "halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu", + # "ruestcode_sivas", "ruestcode_neu", + # "fertigungsart_sivas", "fertigungsart_neu", + # "allgemeintoleranz_sivas", "allgemeintoleranz_neu", + # "fosGruppe_sivas", "fosGruppe_neu", + # "kalkulationsart_sivas", "kalkulationsart_neu", + # "beschaffungsart_sivas", "beschaffungsart_neu", + # "mengeneinheit_sivas", "mengeneinheit_neu", + # "halbzeug_sivas", "halbzeug_neu", + # "tosgruppe_sivas", "tosgruppe_neu", + # "dispogruppe_sivas", "dispogruppe_neu", + # "dispolaufgruppe_sivas","dispolaufgruppe_neu", + # "hersteller_sivas", "hersteller_neu", + # "ersatzfuer_sivas", "ersatzfuer_neu", + # "ersetztdurch_sivas", "ersetztdurch_neu", + # "herstteilenr_sivas", "herstteilenr_neu", + # "werkstoffdiskr_neu", + # "werkstofftyp_neu", + # "material_sivas", "material_neu", + # "oberflaeche_neu", + # "farbe_neu", + # "version_sivas", + # "aenderungsindex_sivas", "aenderungsindex_neu", + # "aenderungstext_sivas", "aenderungstext_neu", + # "freigabevermerk_sivas", "freigabevermerk_neu", + # "zusatzinfos_auto_text", + # "zusatzinfos_bendef_text", + def check_content(self): + content = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu') + if len(content) > 50: + self.message_info('Bezeichnung1 zu gross', 'bezeichnung_zu_gross') + return + + # Rüstcode und Sögeliste + ruestcode = self.get_gui_data("ruestcode_sivas") + halbzeugOhneSaege_neu = self.get_gui_data("halbzeugOhneSaege_neu") + if ruestcode == "SRC Standard Rüstcode" and halbzeugOhneSaege_neu == "Sägeliste nicht benötigt": + self.message_info('Konflikt Rüstcode und Sägeliste', 'konflikt_ruestcode_saegeliste') + return + + # Rüstcode und Kategorie + content = self.get_content('ruestcode_sivas', 'ruestcode_neu') + pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu") + if pdm_kategorie_neu != "Baugruppe" and ruestcode == "": + self.message_info('Teilenummer ohne Rüstcode', 'teilenummer_ohne_ruestcode') + return + + # 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"] + if pdm_kategorie_neu == "Baugruppe" and fertigungsart == arten: + self.message_info('Fertigunsart falsch', 'fertigungsart') + return + farten = self._config.Fertigung.get_list_in_section("Fertigungsarten") + if pdm_kategorie_neu == "Kauteil" and fertigungsart == farten: + self.message_info('Fertigunsart falsch', 'fertigungsart') + return + if pdm_kategorie_neu == "Schweissbaugruppe" and fertigungsart != "SW - schweißen": + self.message_info('Fertigunsart falsch', 'fertigungsart') + return + + # FOS - Gruppe + fos_gruppe = self.get_content('fosGruppe_sivas', 'fosGruppe_neu') + if pdm_kategorie_neu == "Baugruppe" and fos_gruppe == "0 - Einzelteil": + self.message_info('FOS Gruppe falsch', 'fos_gruppe') + return + if pdm_kategorie_neu == "Einzelteil" and fos_gruppe == "1 - Baugruppe": + self.message_info('FOS Gruppe falsch', 'fos_gruppe') + return + if pdm_kategorie_neu == "SChweissbaugruppe" and fos_gruppe == "1 - Baugruppe": + self.message_info('FOS Gruppe falsch', 'fos_gruppe') + return + + # Kalkulationsart class CadItemRepository: """ diff --git a/lib/controller.py b/lib/controller.py index 614be5e..9d8dd80 100644 --- a/lib/controller.py +++ b/lib/controller.py @@ -16,7 +16,7 @@ messages = { "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!', + "teilenummer_ohne_ruestcode":'Teilenummer darf nicht ohne Rüstcode migriert werden!', "fertigungsart":'Fertigungsart falsch. Bitte berichtigen!', "fos_gruppe":'FOS-Gruppe falsch. Bitte berichtigen!', "kalkulations_art":'Kalkulationsart falsch. Bitte berichtigen!', @@ -258,18 +258,19 @@ class Controller(Observer): self.refresh_gui() def migrieren(self): - (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 + # (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 + self._model.check_content() def zuruecksetzen(self): cid = self.get_current_item_id()