From 3738bf1c6e75238c2c60a7dbb5d805f23966a5b912dbe49f4957623dfbe16381 Mon Sep 17 00:00:00 2001 From: Marco Gatzen Date: Wed, 26 Feb 2025 10:33:01 +0100 Subject: [PATCH 1/2] Mitarbeiter anlegen funktioniert --- Gui/AddApplicant.qml | 13 +++++++++++++ lib/DB/EmployeeDAO.py | 5 +++-- lib/DB/EmployeeModel.py | 14 +++++++++----- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Gui/AddApplicant.qml b/Gui/AddApplicant.qml index c8ab042..b14861c 100644 --- a/Gui/AddApplicant.qml +++ b/Gui/AddApplicant.qml @@ -145,8 +145,21 @@ ColumnLayout } } } + Component.onCompleted: + { + employee_model.addedNewEmployee.connect(onAddNewEmployee) + } + // } // } // ScrollView + function onAddNewEmployee(added) + { + if (added) + console.log('addedsuccesfully') + else + console.log('failedtoadd') + appLoader.source = 'EmployeeTable.qml' + } function checkFields() { diff --git a/lib/DB/EmployeeDAO.py b/lib/DB/EmployeeDAO.py index 1f8b6f3..34de9af 100644 --- a/lib/DB/EmployeeDAO.py +++ b/lib/DB/EmployeeDAO.py @@ -6,7 +6,7 @@ from ..PyqcrmFlags import PyqcrmAppliEmpyFlags class EmployeeDAO(QObject): - newEmployeeAdded = Signal() + newEmployeeAdded = Signal(bool) __cur = None __all_cols = None @@ -44,7 +44,8 @@ class EmployeeDAO(QObject): if self.__cur: self.__cur.callproc("addApplicant", (json.dumps(data), applicant, enc_key,)) self.__con.commit() - self.newEmployeeAdded.emit() + self.newEmployeeAdded.emit(True) except mariadb.Error as e: print(str(e)) + self.newEmployeeAdded.emit(False) diff --git a/lib/DB/EmployeeModel.py b/lib/DB/EmployeeModel.py index 821218c..d1c3862 100644 --- a/lib/DB/EmployeeModel.py +++ b/lib/DB/EmployeeModel.py @@ -6,6 +6,7 @@ import re class EmployeeModel(QAbstractTableModel): + addedNewEmployee = Signal(bool) __data = None __employee_dao = None __visible_index = None @@ -26,17 +27,20 @@ class EmployeeModel(QAbstractTableModel): @Slot(dict, bool) def addEmployee(self, new_employee, applicant = True): - new_employee['worklicense'] = int(new_employee['worklicense']) - new_employee['residencetype'] = int(new_employee['residencetype']) + if 'worklicense' in new_employee: + new_employee['worklicense'] = int(new_employee['worklicense']) + new_employee['residencetype'] = int(new_employee['residencetype']) self.__employee_dao.addEmployee(new_employee, self.__key, applicant) @Slot(str) def viewCriterion(self, criterion, processed = False, fired = False): self.__getData(criterion, processed, fired) - @Slot() - def __refreshView(self): - self.__getData() + @Slot(bool) + def __refreshView(self, added): + if added: + self.__getData() + self.addedNewEmployee.emit(added) def __getData(self, criterion = "Alle", processed = False, fired = False, every_state = True): self.beginResetModel() From d7928d25fcb6cb6c37cd769c71b07b5e249c43580e6f394082e5aa07be9e0aa4 Mon Sep 17 00:00:00 2001 From: Marco Gatzen Date: Wed, 26 Feb 2025 16:59:20 +0100 Subject: [PATCH 2/2] Objekte anlegen --- Gui/AddNewObject.qml | 27 ++++++--------------------- Gui/AddObject.qml | 9 +++++---- lib/DB/ObjectModel.py | 2 +- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/Gui/AddNewObject.qml b/Gui/AddNewObject.qml index a2b3bed..d3ffd6a 100644 --- a/Gui/AddNewObject.qml +++ b/Gui/AddNewObject.qml @@ -11,22 +11,6 @@ GridLayout Layout.fillHeight: true rowSpacing: 9 - Label - { - text: qsTr("Firma") - Layout.alignment: Qt.AlignRight | Qt.AlignVCenter - } - ComboBox - { - property string name: "business" - id: business - editable: true - Layout.fillWidth: true - Layout.columnSpan: 3 - onEditTextChanged: checkFields() - onCurrentTextChanged: checkFields() - } - //// New grid row Label @@ -160,7 +144,7 @@ GridLayout id: mezzanin Layout.fillWidth: true editable: false - model: [qsTr("Jööö"), qsTr("Nöööööööööööööööööööööööööö")] + model: [qsTr("Ja"), qsTr("Nein")] } Label @@ -175,7 +159,7 @@ GridLayout id: lift Layout.fillWidth: true editable: false - model: [qsTr("Jööö"), qsTr("Nöööööööööööööööööööööööööö")] + model: [qsTr("Ja"), qsTr("Nein")] } //New grid row @@ -190,6 +174,8 @@ GridLayout id: objectno Layout.fillWidth: true Layout.alignment: Qt.AlignVCenter + placeholderText: qsTr("0 oder leer um eine Nummer automatisch zu generieren") + placeholderTextColor: "pink" } @@ -232,11 +218,10 @@ GridLayout function checkObjectField() { - return ((business.editText.trim() || business.currentText.trim()) && - street.text.trim() && houseno.text.trim() && + return street.text.trim() && houseno.text.trim() && (postcode.editText.trim() || postcode.currentText.trim()) && (city.editText.trim() || city.currentText.trim()) && - cleaningproducts.text.trim()) + cleaningproducts.text.trim() } } diff --git a/Gui/AddObject.qml b/Gui/AddObject.qml index a61439e..092b882 100644 --- a/Gui/AddObject.qml +++ b/Gui/AddObject.qml @@ -71,19 +71,20 @@ ColumnLayout enabled: false onClicked: { + new_object = JsLib.parseForm(newObject) + new_object['lift'] = new_object['lift'] === 'Ja' ? 1 : 0 + new_object['mezzanin'] = new_object['mezzanin'] === 'Ja' ? 1 : 0 if (!checkAddContact.checked) { var list = [] - new_object = JsLib.parseForm(newObject) - object_model.addObject(new_object, list) + object_model.addObject(new_object, list, false) } else { - new_object = JsLib.parseForm(newObject) var new_objecto = addObjectLayout.getForm() - object_model.addObject(new_object, new_objecto) + object_model.addObject(new_object, new_objecto, true) } } } diff --git a/lib/DB/ObjectModel.py b/lib/DB/ObjectModel.py index 5be6762..abc99f6 100644 --- a/lib/DB/ObjectModel.py +++ b/lib/DB/ObjectModel.py @@ -25,7 +25,7 @@ class ObjectModel(QAbstractTableModel): #self.__getData() @Slot(dict, list, bool) - def addObject(self, new_object, new_objcontact): + def addObject(self, new_object, new_objcontact = None, new_contact = False): print(new_object) print(new_objcontact)