Commit Graph

40 Commits

Author SHA1 Message Date
s.steuer d905896891 Klasse 'BOMConfig' sowie Methoden in Klasse 'SivasBOM' ergänzt, damit Teilenummern aus der Stücklistenstruktur herausgefiltert werden können. Aktuell ist es so festgelegt, dass wenn ein User ausgeschlossene Teilenummern an die Klasse 'SivasBOM' übergibt, diese dann auch automatisch aus der Stückliste ausgeschlossen werden, d.h. zum Ausschließen der der Nummern ist kein expliziter Aufruf der Methode '_remove_excluded_ids_from_bom' erforderlich. Hierbei gilt die Prämisse: Wenn Du ausgeschlossene Nummern angibst, möchtest Du sie auch nicht sehen. Weiso hättest Du sie sonst anggegeben? 2025-04-27 17:19:48 +02:00
s.steuer 623f4a12e1 In 'manage_configs.py' Klasse 'SivasAssemblyData' in 'SivasBOM' und Klasse 'TeilestammMetadata' in 'SivasTeilestamm' umbenannt, da eindeutiger. In 'controller.py' Namen entsprechend aktualisiert. Zudem in 'manage_configs.py' Klasse 'SivasBOM' die Methode 'asm_data' in 'bom_data' umbenannt. Darüber hinaus gibt die Methode nun ein leeres Dict zurück, wenn keine JSON vorliegt oder keine generiert werden konnte. Dies wurde vorgesehen, um im Migrationsüberblick (Treeview) sowie dem Migrationstool (CreoMigrate) auch Teilenummern ohne Stückliste, d.h. ohne JSON abbilden zu können (genaue Funktionsweise siehe mehrzeiliger Kommentar in genannter Methode). Abgesehen davon Methode 'property_names' komplett entfernt, da diese fehlerhaft funktioniert hat, da jedes Mal durch alle Kinder der Assembly geloopt wurde und die Eigenschaften des aktuellen Kindes wie z.B. 'Bezeichnung', 'Parent', etc. ausgelesen wurden. Der Fehler liegt darin, dass die Eigenschaften der Nummer aus der vorherigen Iteration komplett überschrieben, aber nicht ergänzt wurden, falls in der aktuellen Iteration Eigenschaften vorliegen, die in der vorherigen noch nicht vorlagen. Um dieses Problem ganz zu umgehen, wurden die Methoden 'get_prop_val_for_all_ids' und 'all_bom_properties' umgeschrieben, sodass die Eigenschaften direkt innerhalb dieser Funktionen geholt werden 2025-04-20 12:05:46 +02:00
s.steuer 0c54145655 In update_database.py Funktion 'get_sivas_dbase' in 'get_sivas_bom' umbenannt, da mit dieser Funktion ausschließlich die Stückliste geholt wird und somit spezifischer ist. In der Datei 'manage_configs.py' Funktionen folglich analog umbenannt. Ansonsten Funktionen in 'update_database.py' denested, um Lesbarkeit zu verbessern und Print-Statements in Deutsch geändert, da aktuell ein Mix aus Deutsch und Englisch vorliegt, was zu Verwirrung führen kann. Zudem Docstrings ergänzt und Fehler in den Print-statements behoben. Keine funktionalen Änderungen vorgenommen 2025-04-19 16:40:53 +02:00
s.steuer fe302ef950 In der Methode 'child_ids' war es unnötig für die Ermittlung aller Stücklistenpositionen das 'Parent'-Attribut der aufgelisteten Teilenummern in der JSON zu betrachten, da die Teilenummern in der JSON bereits alle Kinder der ASM darstellen / Methode 'extend_asm_bom' ergänzt, damit die Stückliste um eine Nummer ergänzt werden kann (z.B. die Nummer der Oberbaugruppe selbst, da diese aktuell in der JSON nicht ausgegeben wird). Dies wurde ergänzt, damit zukünftig auch der Migrationsstand von einzelnen Teilenummern, die keine Baugruppen sind, angezeigt werden kann, bzw. einzelne Teilenummern migriert werden können. Die entsprechende Anpassung des Treeview- bzw. GUI-Programms erfolgt in einem späteren Commit. Zudem wurde die Methode 'get_prop_val_for_single_id' ergänzt, da im Treeview-Programm bisher bei jedem Eintrag des Baums die Methode 'get_prop_val_for_all_ids' aufgerufen wurde, in der jedes Mal eine bestimmte Eigenschaft, wie z.B. 'Bezeichnung' für alle Stücklistenpositionen der Hauptbaugruppe ermittelt wurde. Das war sehr ineffizient, weil die Eigenschaft nur für den aktuellen Eintrag, d.h. die aktuelle Teilenummer, die im Baum dargestellt werden soll, benötigt wird, aber nicht für alle Stücklistenpositionen. 2025-04-18 22:03:03 +02:00
s.steuer 22b0cf8afc In Treeview bzw. Excel-Export des Migrationsüberblicks werden Nummern nun blau markiert, wenn diese zwar in RuleDesigner migriert wurden, dort aber nocht keine Freigabe erfolgt ist. Hierfür wird der RuleDesigner-Status der Nummern live aus der RuleDesigner-Datenbank abgerufen. Dadurch ergibt sich ein detaillierterer Überblick über den aktuellen Migrationsstand, da der Großteil der Migrationsarbeit erst nach der Migration ins PDM erfolgt (Aufbereitung der Modelle, Zusammenbau der Baugruppe, etc.). Abgesehen davon wird die Bezeichnung der obersten Baugruppe jetzt ebenfalls im Migrationsüberblick angezeigt, was bisher nicht der Fall war. Hierfür wird eine CSV-Datei des SIVAS-Teilestamms zur Baugruppennummer abgeleitet daraus 'Bezeichnung 1' ausgelesen. 2025-03-29 22:19:59 +01:00
s.steuer e2bfa2aac6 FIX - An erstes Argument (BG-ID) in Methode 'get_sivas_dbase' in 'update_database.py' wurde der komplette Dateipfad zur JSON übergeben, obwohl nur die Teilenummer, bzw. max. die Teilenummer mit Dateiendung übergeben werden darf 2025-03-09 21:40:36 +01:00
s.steuer 5f3615548b Treeview angepasst, damit die Bezeichnung der obersten Baugruppe angezeigt wird, da dies bisher nicht der Fall war. Da die Bezeichnung nicht in der Baugruppen-JSON aufgeführt ist, ist es erforderlich die CSV mit den Teilestamm-Metadaten zur Baugruppennummer herunterzuladen. Damit dies möglich ist, wurde wurde in manage_configs.py eine neue Subclass 'TeilestammMetadata' ergänzt. In compare_lists.py wurden dabei weitere Flags ergänzt, mit denen gesteuert werden kann, ob die Bezeichnung aus der lokalen CSV-Datei gezogen werden sollen, oder ob die CSV mit jedem Programmlauf neu erstellt wird. Defaultmäßig wird sie mit jedem Programmlauf neu erstellt 2025-03-09 21:22:15 +01:00
s.steuer 6f188649ff Großes Refactoring - Dekorator für lazy-Initialisierung durch die in Python für diese Aufgabe vorgesehenen Property-Dekoratoren ersetzt. Durch diese Dekoratoren können zukünftig auch einfach Setter-Methoden ergänzt werden. Das Holen/Laden der JSON- und CSV-Dateien wurde zudem nun so umgebaut, dass dies nicht mehr in der Klasse 'MigrationsStatus' erfolgt, sondern in den Klassen 'SivasAssemblyData' und 'RuleDesignerDatabaseConfig', da dies thematisch dort auch hingehört. Die bisherige Vorgehensweise war einerseits verwirrend und zweitens ineffizient, weil in der Klasse 'MigrationsStatus' nochmal Objekte der Klassen 'SivasAssemblyData' und 'RuleDesignerDatabaseConfig' initialisiert werden mussten. Durch die Anpassung wird nun zudem die Datei 'get_teilestamm.py' nicht länger benötigt 2025-03-09 00:28:09 +01:00
s.steuer 09b8ee7e6e 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. 2024-06-16 21:59:47 +02:00
Benjamin_Mueller 07a22c5c11 Userspezifische GUI-Configs nun möglich 2024-04-09 13:29:41 +02:00
Benjamin_Mueller dcb8830d8c Steuerung der Oberfläche über eine cfg-Datei 2024-04-09 12:44:40 +02:00
Benjamin_Mueller ba11ad68ea POM in Config aufgenommen 2024-03-19 15:13:58 +01:00
Benjamin_Mueller 1c18ca98bf gui.bat lädt jetzt die virtuelle Umgebung. Fix der Abfrage eines Bauteils als Assembly implementiert. Kein Exit im Code mehr, der als Library verwendet werden soll. 2024-03-19 14:02:54 +01:00
m.stangl a785eecbc2 Alle Check Logiken Implementiert 2024-03-14 14:24:37 +01:00
m.stangl 8f74aac945 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 2024-03-13 11:44:12 +01:00
m.stangl 1e917e5bbd Check der Inhalte mit beider Spalten mit nur einem Rückgabewert versehen. Ansonsten unverständliche für den Nutzer. 3D Druck Keyword im Ruledesigner unterschiedlich. Beide Varianten erlaubt. Rückgabe von keiner Fertigungsart führt zu keinen Defaultwert der folgenden Comboboxen. Keine Exception deswegen mehr 2024-03-12 17:28:58 +01:00
m.stangl 1b6d3feaa4 blacklist auslesen impl. 2024-03-12 14:54:24 +01:00
m.stangl 1b8270b908 Statusänderungen der Knöpfe begonnen. Treeview ist noch nicht korrekt. 2024-03-07 17:16:08 +01:00
m.stangl 85fec18c4a Doppelpunkt ':' als delimiter in der Config deaktiviert 2024-03-04 17:49:11 +01:00
m.stangl 466ae4afd5 Methode zur Ausgabe aller Werkstoffe in der Werkstoff.cfg 2024-02-29 19:04:44 +01:00
m.stangl 5e65dc2b36 Default methoden für alle callbackroutinen rein. Umbau des Aufrufs der gui, um auch assemblies laden zu könenn 2024-02-20 12:51:38 +01:00
m.stangl f21e218420 data/RD_Teilenummern.csv auch mit im Config Objekt verwalten 2024-02-15 18:52:25 +01:00
m.stangl 76fde13623 get Funktion für IniConfigParser dazu 2024-02-14 16:04:47 +01:00
m.stangl b527faf086 Schalter -use_local dazu. Keine Datenbankabfrage vom Server, wenn die Dateien schon da sind. EInige Attribute im config manager privatisiert. In die Logik auch die Abhängigkeit der comboboxen definiert. Controller ist jetzt ein Observer (der einzige) 2024-02-12 17:19:42 +01:00
s.steuer e87c1b930c Extrahierung der migrierten oder nicht migrierten Teilenummern der Baugruppenstückliste eingebaut 2024-02-06 14:57:57 +01:00
m.stangl 6a50eef3ed Routine zur Abfrage aller Oberflächenbehandlungen dazu 2024-02-05 22:01:20 +01:00
m.stangl fc00c3eafa Merge branch 'main' of http://gitea.schoenenberger.de/mistangl/CreoMigrate 2024-01-31 13:44:49 +01:00
m.stangl 7dda641aed Environment mit der Config übergeben 2024-01-31 13:44:18 +01:00
s.steuer a59afd70e7 Klassen zum Laden von CSV's + Auslesen der Assembly-json's aus Sivas + Rückgabe des aktuellen Migrationsstandes (ob Teilenummern bereits in RuleDesigner migriert wurden, oder nicht) aus compare_lists.py in Library umgezogen, da sie teilweise auch im Haupt-Migrationsprogramm benötigt werden 2024-01-31 11:44:31 +01:00
m.stangl b438c90dfb Alle Werkstoffarten aus der ersten Sektion holen. Nicht aus allen überhaupt existierenden Sektionen 2024-01-24 17:09:47 +01:00
m.stangl 727e1812f3 Beim Einlesen von encoding utf-8 in den configs ausgehen 2024-01-18 17:33:54 +01:00
m.stangl 725321fa88 um allgmeine Klasse zur Verwaltung aller ergänzt. Pfadprüfung eingebaut. 2024-01-17 16:18:32 +01:00
m.stangl b4eda08674 bauen der widgets in eigene lib namens gui ausgelagert. Umbau von test_gui in richtung Applikation in CreoMigrateGui 2024-01-17 12:03:58 +01:00
m.stangl 7c220dce28 Configlibarry zum Auslesen aller Werte aller benötigten Informationen aus den Config files erstellt 2023-12-19 15:35:12 +01:00
m.stangl 0a6a9d5a07 eigene Abstrakte Klasse für alle Config basierten Abfragen eingeführt 2023-12-14 17:22:52 +01:00
m.stangl 7120a762eb Abstrakte Klasse zu allen Configs hinzugefügt. Tests zum Auslesen für Werkstoffe und Materialien (Übergang alt -> neu) erstellt 2023-12-14 16:52:13 +01:00
m.stangl 9ef4869a45 Defaultargumente für den Konstruktor, so dass auch keine Pfade übergeben werden können 2023-12-14 12:41:27 +01:00
m.stangl 75076f51ea Pfade aus den Umgebungsvariablen gleich dem Konstruktor mitgeben. So kennt die Library das aktuelle Projekt nicht mehr und wird universeller verwendbar 2023-12-11 16:29:02 +01:00
m.stangl 61db3b15d5 Materialliste ebenfalls aus .json config auslesen. Erste Fassung der Klasse implementiert 2023-12-06 15:59:49 +01:00
m.stangl 6eebe7c94a Klasse für TOS Config und alle zukünftigen in eigene Datei manage_configs ausgelagert 2023-12-06 15:25:12 +01:00