From 8e9fe46b965cc0c4a4c4d2d4758633cf18fd6d97af882c7aa18335b2c97383ae Mon Sep 17 00:00:00 2001 From: Daniel Stoppek Date: Fri, 24 Jan 2025 15:47:18 +0100 Subject: [PATCH] checkfield ApplicantNationalInsurance and ApplicantVarious not ready yet --- Gui/AddApplicant.qml | 272 +++++++++++++---------------- Gui/ApplicantBankData.qml | 10 +- Gui/ApplicantNationalInsurance.qml | 11 ++ Gui/ApplicantPersonalData.qml | 22 ++- 4 files changed, 159 insertions(+), 156 deletions(-) diff --git a/Gui/AddApplicant.qml b/Gui/AddApplicant.qml index 35428e4..0bfeac0 100644 --- a/Gui/AddApplicant.qml +++ b/Gui/AddApplicant.qml @@ -3,166 +3,140 @@ import QtQuick.Controls import QtQuick.Layouts import "../js/qmldict.js" as JsLib -// ScrollView -// { -// anchors.fill: parent -// ScrollBar.vertical: ScrollBar -// { -// policy: ScrollBar.AlwaysOn -// } - ColumnLayout - { - id: colPar - anchors.fill: parent - Label - { - Layout.alignment: Qt.AlignHCenter | Qt.AlignTop - id: headline - text: qsTr("Mitarbeiter / Bewerber hinzufügen") - font.pixelSize: 35 - } - ButtonGroup +ColumnLayout +{ + id: colPar + anchors.fill: parent + Label + { + Layout.alignment: Qt.AlignHCenter | Qt.AlignTop + id: headline + text: qsTr("Mitarbeiter / Bewerber hinzufügen") + font.pixelSize: 35 + } + ButtonGroup + { + buttons: radio.children + onClicked: { - buttons: radio.children + checkFields() + personalData.requiredField() + } + } + + Row + { + Layout.fillWidth: true + id: radio + Layout.columnSpan: 2 + RadioButton + { + checked: true + text: qsTr("Bewerber") + } + RadioButton + { + text: qsTr("Mitarbeiter") + } + } + RowLayout + { + Layout.fillWidth: true + spacing: 50 + + Frame + { + Layout.alignment: Qt.AlignTop + Layout.fillWidth: true + ApplicantPersonalData + { + id: personalData + width: parent.width + } + } + + Frame + { + Layout.alignment: Qt.AlignTop + Layout.fillWidth: true + visible: radio.children[1].checked + ColumnLayout + { + Layout.alignment: Qt.AlignTop + width: parent.width + + ApplicantBankData + { + id: bankAccount + } + + ApplicantNationalInsurance + { + id: nationalInsurance + } + + ApplicantVarious + { + id: applicantVarious + } + } + } + } + + RowLayout + { + Layout.fillHeight: true + Layout.alignment: Qt.AlignRight + Button + { + text: qsTr("Abbrechen") + onClicked: appLoader.source = "EmployeeTable.qml" + } + Button + { + id: saveBtn + text: qsTr("Speichern") + enabled: false onClicked: { - checkFields() - personalData.requiredField() - } - - } - - Row - { - Layout.fillWidth: true - id: radio - Layout.columnSpan: 2 - RadioButton - { - checked: true - text: qsTr("Bewerber") - } - RadioButton - { - text: qsTr("Mitarbeiter") - - } - } - RowLayout - { - Layout.fillWidth: true - spacing: 50 - - Frame - { - Layout.alignment: Qt.AlignTop - Layout.fillWidth: true - ApplicantPersonalData + var new_applicant + if (radio.children[0].checked) { - id: personalData - width: parent.width + new_applicant = JsLib.parseForm(personalData) + // business_model.addApplicant(new_business, 0) + // appLoader.source = "EmployeeTable.qml" + console.log(JSON.stringify (new_applicant)) } - } - - Frame - { - Layout.alignment: Qt.AlignTop - Layout.fillWidth: true - visible: radio.children[1].checked - ColumnLayout - { - Layout.alignment: Qt.AlignTop - width: parent.width - // CheckBox - // { - // id: checkcontactdata - // Layout.fillWidth: true - // text: qsTr("Kontaktdaten") - // checked: false - // } - - // ApplicantContactData - // { - // visible: checkcontactdata.checked - // } - - - - ApplicantBankData - { - id: bankAccount - } - - ApplicantNationalInsurance - { - id: nationalInsurance - } - - ApplicantVarious - { - id: applicantVarious - } - } - } - } - - - - RowLayout - { - Layout.fillHeight: true - Layout.alignment: Qt.AlignRight - Button - { - text: qsTr("Abbrechen") - onClicked: appLoader.source = "EmployeeTable.qml" - } - Button - { - - id: saveBtn - text: qsTr("Speichern") - enabled: false - onClicked: - { - var new_applicant - if (radio.children[0].checked) - { - new_applicant = JsLib.parseForm(personalData) - // business_model.addApplicant(new_business, 0) - // appLoader.source = "EmployeeTable.qml" - console.log(JSON.stringify (new_applicant)) - } - else - { - // console.log(personalData, bankAccount, nationalInsurance, applicantVarious) - new_applicant = JsLib.parseForm(personalData, bankAccount, nationalInsurance, applicantVarious) - // var new_contact = JsLib.addApplicant(addContactLayout) - // contact_model.addContact(new_contact) - console.log(JSON.stringify (new_applicant)) - } - } - } - } - Item - { - Layout.fillHeight: true - } - function checkFields() - { - if(radio.children[1].checked) - { - if(!personalData.checkPersonalField() || !bankAccount.checkBankField() ) - saveBtn.enabled = false else - saveBtn.enabled = true + { + // console.log(personalData, bankAccount, nationalInsurance, applicantVarious) + new_applicant = JsLib.parseForm(personalData, bankAccount, nationalInsurance, applicantVarious) + // var new_contact = JsLib.addApplicant(addContactLayout) + // contact_model.addContact(new_contact) + console.log(JSON.stringify (new_applicant)) + } } - else if (!personalData.checkPersonalField()) + } + } + Item + { + Layout.fillHeight: true + } + function checkFields() + { + if(radio.children[1].checked) + { + if(!personalData.checkPersonalField() || !bankAccount.checkBankField() || !nationalInsurance.checkNationalInsuranceField() ) saveBtn.enabled = false else saveBtn.enabled = true } + else if (!personalData.checkPersonalField()) + saveBtn.enabled = false + else + saveBtn.enabled = true } -//} +} + diff --git a/Gui/ApplicantBankData.qml b/Gui/ApplicantBankData.qml index d16df25..4acd213 100644 --- a/Gui/ApplicantBankData.qml +++ b/Gui/ApplicantBankData.qml @@ -32,6 +32,7 @@ GridLayout Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" + onTextChanged: checkFields() } Label { @@ -44,13 +45,16 @@ GridLayout property string name: "bank" id: bankname Layout.fillWidth: true - model: [qsTr("Sparkasse"),qsTr("Volksbank")] + model: ["",qsTr("Sparkasse"),qsTr("Volksbank")] + editable: true + onCurrentTextChanged: checkFields() + onEditTextChanged: checkFields() + } function checkBankField() { - // return (iban.text.trim() && bankname.text.trim()) - return (iban.text.trim()) + return (iban.text.trim() && (bankname.currentText.trim() || bankname.editText.trim())) } } diff --git a/Gui/ApplicantNationalInsurance.qml b/Gui/ApplicantNationalInsurance.qml index c29f329..e6d9ec9 100644 --- a/Gui/ApplicantNationalInsurance.qml +++ b/Gui/ApplicantNationalInsurance.qml @@ -34,6 +34,7 @@ GridLayout Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" + onTextChanged: checkFields() } Label @@ -48,6 +49,7 @@ GridLayout Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" + onTextChanged: checkFields() } Label @@ -62,6 +64,7 @@ GridLayout Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" + onTextChanged: checkFields() } CheckBox @@ -99,6 +102,14 @@ GridLayout placeholderText: "Pflichtfeld" placeholderTextColor: "red" } + function checkNationalInsuranceField() + { + if (nation.currentText === "Deutschland") + { + + return (socialnumber.text.trim() && taxnumber.text.trim() && medicalinsurance.text.trim()) + } + } } diff --git a/Gui/ApplicantPersonalData.qml b/Gui/ApplicantPersonalData.qml index 6afe244..ea6ee54 100644 --- a/Gui/ApplicantPersonalData.qml +++ b/Gui/ApplicantPersonalData.qml @@ -77,6 +77,7 @@ GridLayout id: street Layout.fillWidth: true placeholderTextColor: "red" + onTextChanged: checkFields() } Label @@ -90,6 +91,7 @@ GridLayout id: houseno Layout.fillWidth: true placeholderTextColor: "red" + onTextChanged: checkFields() } Label @@ -107,8 +109,8 @@ GridLayout id: postcode Layout.fillWidth: true editable: true - onCurrentTextChanged: checkFields() onEditTextChanged: checkFields() + onCurrentTextChanged: checkFields() onActivated: currentValue model: address_model textRole: "display" @@ -118,7 +120,7 @@ GridLayout onCurrentIndexChanged: city.currentIndex = postcode.currentIndex validator: RegularExpressionValidator { - regularExpression: /([0-9]{1,5})/ + regularExpression: /([^$][0-9]{1,4})/ } } @@ -157,6 +159,7 @@ GridLayout Layout.fillWidth: true placeholderTextColor: "red" Layout.columnSpan: 3 + onTextChanged: checkFields() } Label { @@ -170,6 +173,7 @@ GridLayout Layout.fillWidth: true placeholderTextColor: "red" Layout.columnSpan: 3 + onTextChanged: checkFields() } Label { @@ -183,6 +187,7 @@ GridLayout Layout.fillWidth: true placeholderTextColor: "red" Layout.columnSpan: 3 + onTextChanged: checkFields() } Label { @@ -214,6 +219,7 @@ GridLayout visible: radio.children[1].checked placeholderTextColor: "red" Layout.columnSpan: 3 + onTextChanged: checkFields() } Label { @@ -229,6 +235,7 @@ GridLayout visible: radio.children[1].checked placeholderTextColor: "red" Layout.columnSpan: 3 + onTextChanged: checkFields() } Label { @@ -244,6 +251,7 @@ GridLayout visible: radio.children[1].checked placeholderTextColor: "red" Layout.columnSpan: 3 + onTextChanged: checkFields() } Label { @@ -259,6 +267,7 @@ GridLayout visible: radio.children[1].checked placeholderTextColor: "red" Layout.columnSpan: 3 + onTextChanged: checkFields() } Label { @@ -272,6 +281,7 @@ GridLayout Layout.fillWidth: true placeholderTextColor: "red" Layout.columnSpan: 3 + onTextChanged: checkFields() } Item @@ -287,8 +297,11 @@ GridLayout } else { - console.log("Mitarbeiter") - return (firstname.text.trim() && lastname.text.trim()) + return (firstname.text.trim() && lastname.text.trim() && street.text.trim() && houseno.text.trim() + && (postcode.editText.trim() || postcode.currentText.trim()) + && (city.editText.trim() || city.currentText.trim()) && phonenumber.text.trim() + && cellphone.text.trim() && email.text.trim() && jobdescription.text.trim() + && workstart.text.trim() && workend.text.trim() && timetowork.text.trim() && briefAnrede.text.trim()) } } function requiredField() @@ -303,5 +316,6 @@ GridLayout workend.placeholderText = pf timetowork.placeholderText = pf briefAnrede.placeholderText = pf + houseno.placeholderText = pf } }