import QtQuick
import QtQuick.Controls
import QtQuick.Layouts

GridLayout
{
    id: customerView
    columns: 4
    Layout.fillWidth: true
    Layout.fillHeight: true
    rowSpacing: 9
    property alias businesstxt: firmenName
    property alias street: streetid
    property alias postcodetxt: postcode
    property alias citytxt: city
    Label
    {
        id: lblFirmenName
        text: qsTr("Firmenname*")
        Layout.alignment: Qt.AlignRight | Qt.AlignVCenter

    }
    TextField
    {
        property string name: "business"

        id: firmenName
        Layout.fillWidth: true
        Layout.alignment: Qt.AlignVCenter
        onTextChanged: checkFields()
        Layout.columnSpan: 3
    }

    Label
    {
        text: qsTr("Straße*")
        Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
    }

    TextField
    {
        property string name: "street"
        id: streetid
        Layout.fillWidth: true
        onTextChanged: checkFields()
    }

    Label
    {
        text: qsTr("Nr.*")
        Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
    }

    TextField
    {
        property string name: "houseno"
        id: housenoid
        Layout.fillWidth: true
        onTextChanged: checkFields()
        validator: RegularExpressionValidator
        {
            regularExpression: /([0-9a-zA-Z\-]{1,6})/
        }
    }


    Label
    {
        text: qsTr("PLZ")
        Layout.alignment: Qt.AlignRight
    }




    ComboBox
    {
        property string name: "postcode"
        id: postcode
        Layout.fillWidth: true
        editable: true
        onCurrentTextChanged: checkFields()
        onEditTextChanged: checkFields()
        onActivated: currentValue
        model: address_model
        textRole: "display"
        popup.height: 300
        currentIndex: -1
        onCurrentIndexChanged: city.currentIndex = postcode.currentIndex
        Layout.columnSpan: 3
        validator: RegularExpressionValidator
        {
            regularExpression: /([0-9]{1,5})/
        }

    }

    Label
    {
        text: qsTr("Ort")
        Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
    }
    ComboBox
    {
        property string name: "city"
        id: city
        Layout.fillWidth: true
        editable: true
        onEditTextChanged: checkFields()
        onCurrentTextChanged: checkFields()
        model: address_model
        textRole: "city"
        popup.height: 300
        currentIndex: -1
        Layout.columnSpan: 3
    }

    Label
    {
        text: qsTr("Telefon")
        Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
    }
    TextField
    {
        property string name: "telephone"
        id: telephone
        Layout.fillWidth: true
        Layout.columnSpan: 3
        validator: RegularExpressionValidator
        {
            regularExpression: /([+0-9]{1})([0-9]{1,17})/
        }

    }

    Label
    {
        text: qsTr("Mobil")
        Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
    }
    TextField
    {
        property string name: "cellphone"
        id: cellphone
        Layout.fillWidth: true
        Layout.columnSpan: 3
        validator: RegularExpressionValidator
        {
            regularExpression: /([+0-9]{1})([0-9]{1,17})/
        }
    }

    Label
    {
        text: qsTr("E-Mail")
        Layout.alignment: Qt.AlignRight
    }
    TextField
    {
        property string name: "email"
        id: email
        Layout.fillWidth: true
        placeholderText: qsTr("beispiel@domain.de")
        Layout.columnSpan: 3
        validator: RegularExpressionValidator
        {
            regularExpression: /([\+!#$%&‘\*\–\/\=?\^_`\.{|}\~\-\_0-9A-Za-z]{1,185})@([0-9A-Za-z\.\-\_]{1,64})\.([a-zA-z]{2,5})/
        }
    }

    Label
    {
        text: qsTr("Homepage")
        Layout.alignment: Qt.AlignRight
    }
    TextField
    {
        property string name: "homepage"
        id: homepage
        Layout.fillWidth: true
        Layout.columnSpan: 3
        placeholderText: "www.oschkarischtverhaftetwegensexy.jinx"
    }

    Label
    {
        text: qsTr("Geschäftsführer")
        Layout.alignment: Qt.AlignRight
    }
    TextField
    {
        property string name: "ceo"
        id: ceo
        Layout.fillWidth: true
        Layout.columnSpan: 3
    }

    Label
    {
        text: qsTr("USt-IdNr")
        Layout.alignment: Qt.AlignRight
    }
    TextField
    {
        property string name: "taxno"
        id: taxno
        Layout.fillWidth: true
        Layout.columnSpan: 3
    }
    Label
    {
        text: qsTr("Typ")
        Layout.alignment: Qt.AlignRight
    }
    ComboBox
    {
        property string name: "typeid"
        id: typeid
        Layout.fillWidth: true
        editable: false
        model: business_type
        textRole: "display"
        Layout.columnSpan: 3
    }
    Label
    {
        text: qsTr("Info")
        Layout.alignment: Qt.AlignRight | Qt.AlignTop
    }

    ScrollView
    {
        id: infoView
        Layout.fillWidth: true
        Layout.preferredHeight: 100
        Layout.columnSpan: 3
        ScrollBar.horizontal: ScrollBar
        {
            policy: ScrollBar.AlwaysOn
        }

        TextArea
        {
            property string name: "customerinfo"
            id: customerInfo
            implicitWidth: parent.width
            wrapMode: TextEdit.Wrap
            background: Rectangle
            {
                color: customerInfo.palette.base
                border.color: customerInfo.activeFocus? customerInfo.palette.highlight: customerInfo.palette.base
            }
        }
    }
    function checkBusinessField()
    {
        if (!firmenName.text.trim() || !streetid.text.trim())
        {
            return false

        }
        else
        {
            if (!postcode.editText.trim() || !postcode.currentText || !city.editText.trim() || !city.currentText)
                return false
            else
                return true
        }

    }
}
