A lot of changes going on

This commit is contained in:
2025-05-13 16:40:48 +02:00
parent 3ff830b3e2
commit 5b16432767
37 changed files with 4332 additions and 183 deletions

View File

@@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Dialogs
import "../js/qmldict.js" as JsLib
import Js
ColumnLayout
{

View File

@@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Dialogs
import "../js/qmldict.js" as JsLib
import Js
ColumnLayout
{
@@ -70,8 +70,13 @@ ColumnLayout
text: qsTr("Speichern")
enabled: false
onClicked:
{
new_object = JsLib.parseForm(newObject)
// For Debugging
console.log(JSON.stringify(new_object))
//
new_object['lift'] = new_object['lift'] === 'Ja' ? 1 : 0
new_object['mezzanin'] = new_object['mezzanin'] === 'Ja' ? 1 : 0
object_model.addObject(new_object)

View File

@@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Dialogs
import QtCore
import "../js/qmldict.js" as JsLib
import Js

View File

@@ -1,8 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import "../../js/qmldict.js" as JsLib
import Js
ColumnLayout {
id: colPar
@@ -46,7 +45,7 @@ ColumnLayout {
Layout.fillWidth: true
Layout.horizontalStretchFactor: 1
ApplicantPersonalData {
EmployeePersonalData {
id: personalData
implicitWidth: parent.width
@@ -61,14 +60,14 @@ ColumnLayout {
Layout.alignment: Qt.AlignTop
implicitWidth: parent.width
ApplicantBankData {
EmployeeBankData {
id: bankAccount
}
ApplicantNationalInsurance {
EmployeeNationalInsurance {
id: nationalInsurance
}
ApplicantVarious {
EmployeeVarious {
id: applicantVarious
}

View File

@@ -3,7 +3,8 @@ import QtQuick.Controls.impl
import QtQuick.Layouts
import TeroStyle
ColumnLayout {
ColumnLayout
{
readonly property int fieldM: 235
readonly property int fieldS: 110
readonly property bool valid: city.acceptableInput && email.acceptableInput && firstname.acceptableInput && lastname.acceptableInput && mobile.acceptableInput && phone.acceptableInput && postcode.acceptableInput && formofaddress.acceptableInput && title.acceptableInput

View File

@@ -52,7 +52,7 @@ ColumnLayout {
BarButton {
ButtonGroup.group: mainNav
icon.source: "qrc:/images/RectangleStack-Outline.svg"
target: "/Gui/OffersTable.qml"
target: "/Gui/Offers/OffersTable.qml"
text: qsTr("Angebote")
visible: !onSubPage
}

View File

@@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import "../js/qmldict.js" as JsLib
import Js
Frame
{

View File

@@ -52,37 +52,6 @@ GridLayout
//// New grid row
Label
{
text: qsTr("Straße")
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
}
TextField
{
property string name: "street"
id: street
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
// onTextChanged: checkFields()
}
Label
{
text: qsTr("Nr.*")
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
}
TextField
{
property string name: "houseno"
id: houseno
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
// onTextChanged: checkFields()
}
// New grid row
Label
{
text: qsTr("PLZ")
@@ -102,7 +71,11 @@ GridLayout
textRole: "display"
popup.height: 300
currentIndex: -1
onCurrentIndexChanged: city.currentIndex = postcode.currentIndex
onCurrentIndexChanged:
{
city.currentIndex = postcode.currentIndex
}
validator: RegularExpressionValidator
{
@@ -131,6 +104,41 @@ GridLayout
currentIndex: -1
}
Label
{
text: qsTr("Straße")
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
}
ComboBox
{
property string name: "street"
id: street
model: object_model
textRole: "StreetInPostcode"
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
// onTextChanged: checkFields()
}
Label
{
text: qsTr("Nr.*")
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
}
ComboBox
{
property string name: "houseno"
id: houseno
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
// onTextChanged: checkFields()
}
// New grid row
//New Grid
Label
{
@@ -184,6 +192,7 @@ GridLayout
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
}
Item
{
Layout.columnSpan: 2
@@ -194,16 +203,13 @@ GridLayout
text: qsTr("Leistungen:")
Layout.alignment: Qt.AlignRight
font: Typography.h2
}
Item
{
Layout.columnSpan: 3
}
Item
{
Layout.fillHeight: true

View File

@@ -2,7 +2,8 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Dialogs
import "../js/qmldict.js" as JsLib
import Js
ColumnLayout
{
@@ -27,16 +28,13 @@ ColumnLayout
Layout.fillHeight: true
spacing: 45
Frame
{
Layout.alignment: Qt.AlignTop
Layout.fillWidth: true
AddNewOffer
{
id: newOffer
width: parent.width
}
}
}
@@ -51,16 +49,17 @@ ColumnLayout
}
Button
{
property var new_object: null
id: saveBtn
text: qsTr("Speichern")
enabled: false
// 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
// object_model.addObject(new_object)
}
}
}

View File

@@ -57,7 +57,7 @@ ColumnLayout
icon.source: "qrc:/images/PlusCircle.svg"
Layout.alignment: Qt.AlignRight
flat: true
onClicked: appLoader.source = "AddOffer.qml"
onClicked: contentStack.push("AddOffer.qml")
}
}
Item {

1
Gui/Offers/qmldir Normal file
View File

@@ -0,0 +1 @@
module Offers

View File

@@ -1,87 +0,0 @@
import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import Qt.labs.qmlmodels
ColumnLayout {
function viewOffers(criterion) {
//offer_model.viewCriterion(criterion)
}
anchors.fill: parent
spacing: Dimensions.l
RowLayout {
Layout.fillWidth: true
spacing: Dimensions.l
SearchBar {
id: searchBar
}
<<<<<<< HEAD
QuickFilter
{
onSelectedChanged: (name) =>
{
business_model.viewCriterion(name)
}
model: ListModel
{
ListElement
{
=======
QuickFilter {
model: ListModel {
ListElement {
>>>>>>> main
name: "Alle"
selected: true
text: qsTr("Alle")
}
ListElement {
name: "Offen"
selected: false
text: qsTr("Offen")
}
<<<<<<< HEAD
ListElement
{
name: "Abgesagt"
text: qsTr("Abgesagt")
=======
ListElement {
name: "Abgeschlossen"
selected: false
text: qsTr("Abgeschlossen")
}
ListElement {
name: "Erledigt"
>>>>>>> main
selected: false
text: qsTr("Erledigt")
}
}
onSelectedChanged: name => {
business_model.viewCriterion(name);
}
}
Button {
id: addOfferBtn
Layout.alignment: Qt.AlignRight
flat: true
icon.source: "qrc:/images/PlusCircle.svg"
text: qsTr("Angebote Hinzufügen")
onClicked: contentStack.push("AddOffer.qml")
}
}
Item {
id: spacer
Layout.fillHeight: true
}
}

70
Js/qmldict.js Normal file
View File

@@ -0,0 +1,70 @@
.pragma library
function firstConf(tabs)
{
let pyqcrm_conf = {};
pyqcrm_conf[tabs.name] = {}
for (var i = 0; i < tabs.children.length; i++)
{
if (tabs.children[i].name)
{
if (!tabs.children[i].text.trim())
return false
if (pyqcrm_conf[tabs.name][tabs.children[i].name] !== "DB_PASS")
pyqcrm_conf[tabs.name] [tabs.children[i].name] = tabs.children[i].text.trim()
else
pyqcrm_conf[tabs.name] [tabs.children[i].name] = tabs.children[i].text
}
}
return pyqcrm_conf
}
function parseForm(...form)
{
let data_form = {};
for (var i = 0; i < form.length; i++)
{
for (var j = 0; j < form[i].children.length; j++)
{
if (form[i].children[j].toString().startsWith("Combo"))
{
if(form[i].children[j].editText)
{
data_form[form[i].children[j].name] = form[i].children[j].editText
}
else
{
data_form[form[i].children[j].name] = form[i].children[j].currentText
}
}
else if (form[i].children[j].toString().startsWith("TextField"))
{
data_form[form[i].children[j].name] = form[i].children[j].text.trim()
}
else if (form[i].children[j].toString().startsWith("Scroll"))
{
data_form[form[i].children[j].contentChildren[0].name] = form[i].children[j].contentChildren[0].text.trim()
}
else if (form[i].children[j].toString().startsWith("CheckBox"))
{
data_form[form[i].children[j].name] = form[i].children[j].checked
}
else if (form[i].children[j].toString().startsWith("SpinBox"))
{
data_form[form[i].children[j].name] = form[i].children[j].value
}
// else if (form[i].children[j].toString().startsWith("QQuickContentItem"))
// {
// console.log(form[i].children[j].children.children)
// for (var k = 0; k < form[i].children[j].length; k++)
// {
// console.log(form[i].children[j].name)
// }
// }
}
}
return data_form
}

2
Js/qmldir Normal file
View File

@@ -0,0 +1,2 @@
module Js
JsLib 1.0 JsLib.js

View File

@@ -0,0 +1,192 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36" version="27.0.2">
<diagram name="Seite-1" id="riPTszubbY08c-Ci63mD">
<mxGraphModel dx="2951" dy="1541" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="NvYeTt0xDQWk2u7kX_r0-1" value="" style="ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="420" y="35" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-2" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="NvYeTt0xDQWk2u7kX_r0-1" parent="1" target="NvYeTt0xDQWk2u7kX_r0-3">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="50" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-3" value="Check Country" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="500" y="20" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-4" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="520" y="125" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-5" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-3" target="NvYeTt0xDQWk2u7kX_r0-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="550" y="525" as="sourcePoint" />
<mxPoint x="600" y="475" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-6" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-4" target="NvYeTt0xDQWk2u7kX_r0-9">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="550" y="475" as="sourcePoint" />
<mxPoint x="740" y="205" as="targetPoint" />
<Array as="points">
<mxPoint x="680" y="165" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-8" value="Check City" style="rounded=1;whiteSpace=wrap;html=1;direction=east;" vertex="1" parent="1">
<mxGeometry x="399.5" y="345" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-9" value="addCountry" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="620" y="225" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-10" value="[exists]" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="460" y="135" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-11" value="[not exists]" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="610" y="135" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-12" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="419.5" y="445" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-13" value="addCity" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="539.5" y="535" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-14" value="Check Postcode" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="259.25" y="645" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-15" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-12" target="NvYeTt0xDQWk2u7kX_r0-13">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.5" y="565" as="sourcePoint" />
<mxPoint x="600" y="530" as="targetPoint" />
<Array as="points">
<mxPoint x="599.5" y="485" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.5" y="565" as="sourcePoint" />
<mxPoint x="319.5" y="545" as="targetPoint" />
<Array as="points">
<mxPoint x="319.5" y="485" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-17" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-8" target="NvYeTt0xDQWk2u7kX_r0-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.5" y="605" as="sourcePoint" />
<mxPoint x="699.5" y="555" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-19" value="[exists]" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="329.5" y="455" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-20" value="[not exists]" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="529.5" y="455" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-21" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="279.25" y="745" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-22" value="addPostcode" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="399.5" y="845" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-24" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-21" target="NvYeTt0xDQWk2u7kX_r0-22">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="509.25" y="865" as="sourcePoint" />
<mxPoint x="559.25" y="815" as="targetPoint" />
<Array as="points">
<mxPoint x="459.25" y="785" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-25" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-21" target="NvYeTt0xDQWk2u7kX_r0-39">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="509.25" y="865" as="sourcePoint" />
<mxPoint x="179.25" y="855" as="targetPoint" />
<Array as="points">
<mxPoint x="179.25" y="785" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-26" value="[exists]" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="189.25" y="755" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-27" value="[not exists]" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="389.25" y="755" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-28" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-14" target="NvYeTt0xDQWk2u7kX_r0-21">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.25" y="985" as="sourcePoint" />
<mxPoint x="699.25" y="935" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-30" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="159.5" y="1085" width="41" height="40" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-31" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="420" y="215" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-32" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-4" target="NvYeTt0xDQWk2u7kX_r0-31">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="550" y="355" as="sourcePoint" />
<mxPoint x="600" y="305" as="targetPoint" />
<Array as="points">
<mxPoint x="460" y="165" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-33" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-9" target="NvYeTt0xDQWk2u7kX_r0-31">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="255" as="sourcePoint" />
<mxPoint x="600" y="305" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-34" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-31" target="NvYeTt0xDQWk2u7kX_r0-8">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="719.5" y="225" as="sourcePoint" />
<mxPoint x="699.5" y="285" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-36" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="279.5" y="525" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-37" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-13" target="NvYeTt0xDQWk2u7kX_r0-36">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.5" y="875" as="sourcePoint" />
<mxPoint x="699.5" y="825" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-38" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-36" target="NvYeTt0xDQWk2u7kX_r0-14">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.5" y="935" as="sourcePoint" />
<mxPoint x="699.5" y="885" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-39" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="140" y="835" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-40" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-22" target="NvYeTt0xDQWk2u7kX_r0-39">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.5" y="765" as="sourcePoint" />
<mxPoint x="699.5" y="715" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-41" value="addID&#39;s to Adress" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="955" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-42" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-39" target="NvYeTt0xDQWk2u7kX_r0-41">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.25" y="865" as="sourcePoint" />
<mxPoint x="699.25" y="815" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NvYeTt0xDQWk2u7kX_r0-43" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NvYeTt0xDQWk2u7kX_r0-41" target="NvYeTt0xDQWk2u7kX_r0-30">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="649.5" y="755" as="sourcePoint" />
<mxPoint x="699.5" y="705" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

320
doc/ER-Offer.drawio Normal file
View File

@@ -0,0 +1,320 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36" version="27.0.2">
<diagram name="Seite-1" id="-Jvt9mGG8Li5CNeMcOU4">
<mxGraphModel dx="2066" dy="1107" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="r5czroBNAvCpoAouLHI1-1" value="Street" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
<mxGeometry x="60" y="800" width="180" height="90" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-2" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-1">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-3" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-2">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-4" value="streetID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-2">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-5" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-1">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-6" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-5">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-7" value="name" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-5">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-14" value="City" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
<mxGeometry x="370" y="80" width="180" height="90" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-15" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-14">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-16" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-15">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-17" value="cityID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-15">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-18" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-14">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-19" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-18">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-20" value="name" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-18">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-27" value="Country" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
<mxGeometry x="80" y="90" width="180" height="150" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-28" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-27">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-29" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-28">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-30" value="countryID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-28">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-31" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-27">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-32" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-31">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-33" value="country" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-31">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-34" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-27">
<mxGeometry y="90" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-35" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-34">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-36" value="countryshort" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-34">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-37" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-27">
<mxGeometry y="120" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-38" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-37">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-39" value="nationality" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-37">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-40" value="Country/City/Postcode" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
<mxGeometry x="260" y="290" width="180" height="150" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-41" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-40">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-42" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-41">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-43" value="ccpID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-41">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-44" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-40">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-45" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-44">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-46" value="countryID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-44">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-47" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-40">
<mxGeometry y="90" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-48" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-47">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-49" value="cityID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-47">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-50" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-40">
<mxGeometry y="120" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-51" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-50">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-52" value="postcodeID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-50">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-53" value="House" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
<mxGeometry x="480" y="800" width="180" height="90" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-54" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-53">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-55" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-54">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-56" value="houseID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-54">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-57" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-53">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-58" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-57">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-59" value="number" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-57">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-66" value="Postcode" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
<mxGeometry x="520" y="230" width="180" height="90" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-67" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-66">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-68" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-67">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-69" value="postcodeID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-67">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-70" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-66">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-71" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-70">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-72" value="number" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-70">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-79" value="Street/House" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
<mxGeometry x="260" y="650" width="180" height="120" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-80" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-79">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-81" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-80">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-82" value="streetHouseID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-80">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-83" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-79">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-84" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-83">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-85" value="streetID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-83">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-86" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-79">
<mxGeometry y="90" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-87" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-86">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-88" value="houseID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-86">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-92" value="FullAddress" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
<mxGeometry x="260" y="470" width="180" height="120" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-93" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-92">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-94" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-93">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-95" value="fullAddressID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-93">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-96" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-92">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-97" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-96">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-98" value="ccpID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-96">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-99" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="r5czroBNAvCpoAouLHI1-92">
<mxGeometry y="90" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-100" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-99">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="r5czroBNAvCpoAouLHI1-101" value="streetHouseID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="r5czroBNAvCpoAouLHI1-99">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,40 @@
/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.11-MariaDB, for Linux (x86_64)
--
-- Host: bearybot.selfhost.co Database: pyqcrm
-- ------------------------------------------------------
-- Server version 10.11.11-MariaDB-0ubuntu0.24.04.2-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `address`
--
DROP TABLE IF EXISTS `address`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `address` (
`addressid` int(11) NOT NULL AUTO_INCREMENT,
`countryid` int(11) NOT NULL,
`cityid` int(11) NOT NULL,
`postcodeid` int(11) NOT NULL,
PRIMARY KEY (`addressid`),
KEY `address_country_FK` (`countryid`)
) ENGINE=InnoDB AUTO_INCREMENT=6956 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Temporary table structure for view `addressesview`
--
DROP TABLE IF EXISTS `addressesview`;

View File

@@ -0,0 +1,40 @@
/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.11-MariaDB, for Linux (x86_64)
--
-- Host: bearybot.selfhost.co Database: pyqcrm
-- ------------------------------------------------------
-- Server version 10.11.11-MariaDB-0ubuntu0.24.04.2-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `address`
--
DROP TABLE IF EXISTS `address`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `address` (
`addressid` int(11) NOT NULL AUTO_INCREMENT,
`countryid` int(11) NOT NULL,
`cityid` int(11) NOT NULL,
`postcodeid` int(11) NOT NULL,
PRIMARY KEY (`addressid`),
KEY `address_country_FK` (`countryid`)
) ENGINE=InnoDB AUTO_INCREMENT=6956 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Temporary table structure for view `addressesview`
--
DROP TABLE IF EXISTS `addressesview`;

View File

@@ -0,0 +1,40 @@
/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.11-MariaDB, for Linux (x86_64)
--
-- Host: bearybot.selfhost.co Database: pyqcrm
-- ------------------------------------------------------
-- Server version 10.11.11-MariaDB-0ubuntu0.24.04.2-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `address`
--
DROP TABLE IF EXISTS `address`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `address` (
`addressid` int(11) NOT NULL AUTO_INCREMENT,
`countryid` int(11) NOT NULL,
`cityid` int(11) NOT NULL,
`postcodeid` int(11) NOT NULL,
PRIMARY KEY (`addressid`),
KEY `address_country_FK` (`countryid`)
) ENGINE=InnoDB AUTO_INCREMENT=6956 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Temporary table structure for view `addressesview`
--
DROP TABLE IF EXISTS `addressesview`;

View File

@@ -0,0 +1,40 @@
/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.11-MariaDB, for Linux (x86_64)
--
-- Host: bearybot.selfhost.co Database: pyqcrm
-- ------------------------------------------------------
-- Server version 10.11.11-MariaDB-0ubuntu0.24.04.2-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `address`
--
DROP TABLE IF EXISTS `address`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `address` (
`addressid` int(11) NOT NULL AUTO_INCREMENT,
`countryid` int(11) NOT NULL,
`cityid` int(11) NOT NULL,
`postcodeid` int(11) NOT NULL,
PRIMARY KEY (`addressid`),
KEY `address_country_FK` (`countryid`)
) ENGINE=InnoDB AUTO_INCREMENT=6956 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Temporary table structure for view `addressesview`
--
DROP TABLE IF EXISTS `addressesview`;

File diff suppressed because it is too large Load Diff

1
doc/postleitzahl.json Normal file

File diff suppressed because one or more lines are too long

1
doc/staaten.json Normal file

File diff suppressed because one or more lines are too long

1
doc/states.json Normal file

File diff suppressed because one or more lines are too long

View File

@@ -14,11 +14,11 @@ class AddressDAO:
def __importPlz(self):
with open("pfad zur datei", "r") as plz:
with open("/home/dstoppek/Coden/Projekte/pyqcrm/doc/postleitzahl.json", "r") as plz:
postcodes = json.load(plz)
irgendwas = ""
country = "Deutschland"
try:
for i in postcodes:
test =i["plz_name"].split(",")
@@ -28,8 +28,8 @@ class AddressDAO:
town = town.strip()
if town:
print(f"PROCESSING {i['name']} {town}")
self.__cur.callproc("addZipCodes", (i["name"], town, irgendwas,))
#self.__cur.callproc("addZipCodes", ("56271", "Kleinmaischeid", irgendwas,))
self.__cur.callproc("importLocation", (country, town, i["name"],))
except mariadb.OperationalError as e:
print(f"Database Error: {e}")
finally:
@@ -37,7 +37,7 @@ class AddressDAO:
print("FINISHED")#
def __importCountry(self):
with open("pfad zur datei", "r") as country:
with open("/home/dstoppek/Coden/Projekte/pyqcrm/doc/staaten.json", "r") as country:
countries = json.load(country)
old = ""
try:
@@ -78,3 +78,4 @@ class AddressDAO:
print(str(e))

View File

@@ -14,10 +14,10 @@ class AddressModel(QAbstractListModel):
def data(self, index, role = Qt.DisplayRole):
row = index.row()
if role == Qt.DisplayRole:
data = self.__address_data[row][2]
data = self.__address_data[row][5]
return data
elif role == PyqcrmDataRoles.CITY_ROLE:
data = self.__address_data[row][3]
data = self.__address_data[row][4]
return data
return None

View File

@@ -75,7 +75,7 @@ class BusinessModel(QAbstractTableModel):
self.__business_dao.newBusinessAdded.connect(self.__refreshView)
self.__conf = ConfigLoader().getConfig()
self.__key = self.__conf['pyqcrm']['ENCRYPTION_KEY']
self.__getData()
# self.__getData()
def __getData(self, criterion = "Alle"):
self.beginResetModel()

View File

@@ -50,14 +50,15 @@ class ContactDAO(QObject):
self.newObjectContactAdded.emit(False)
def getContact(self, contact_id, enc_key = None):
try:
if self.__cur:
self.__cur.callproc("getCustomerContact", (contact_id, enc_key,))
#self.__all_cols = [desc[0] for desc in self.__cur.description]
return self.__cur.fetchall() #, self.__all_cols
else:
return None #, None
except mariadb.Error as e:
print(str(e))
# try:
# if self.__cur:
# self.__cur.callproc("getCustomerContact", (contact_id, enc_key,))
# #self.__all_cols = [desc[0] for desc in self.__cur.description]
# return self.__cur.fetchall() #, self.__all_cols
# else:
# return None #, None
# except mariadb.Error as e:
# print(str(e))
pass

View File

@@ -1,6 +1,7 @@
from PySide6.QtCore import QAbstractTableModel, QModelIndex, Qt, Slot, Signal
from .ObjectDAO import ObjectDAO
from ..ConfigLoader import ConfigLoader
from ..PyqcrmDataRoles import PyqcrmDataRoles
import re
import json
@@ -66,8 +67,16 @@ class ObjectModel(QAbstractTableModel):
if object_col > 4 and tr:
tr = re.sub("Keine Angabe ","", tr)
return tr
elif role == PyqcrmDataRoles.STREET_IN_POSTCODE:
pass
return None
def roleNames(self):
return {
Qt.DisplayRole: b"display",
PyqcrmDataRoles.STREET_IN_POSTCODE: b"StreetInPostcode",
}
def headerData(self, section, orientation, role = Qt.DisplayRole):
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
self.__col_name = self.__visible_columns[section + self.__col_skip]

View File

@@ -5,5 +5,6 @@ from enum import IntEnum
class PyqcrmDataRoles(IntEnum):
CITY_ROLE = Qt.UserRole + 100
STREET_IN_POSTCODE = CITY_ROLE + 1

10
main.py
View File

@@ -58,12 +58,12 @@ def initializeProgram():
if DbManager().getConnection():
db_con = True
user = UserManager()
business_model = BusinessModel()
# business_model = BusinessModel()
address_model = AddressModel()
business_type = BTypeModel()
contact_model = ContactModel()
employee_model = EmployeeModel()
object_model = ObjectModel()
# business_type = BTypeModel()
# contact_model = ContactModel()
# employee_model = EmployeeModel()
# object_model = ObjectModel()
publishContext()

22
qml.qrc
View File

@@ -9,7 +9,6 @@
<file>Gui/AddCustomer.qml</file>
<file>Gui/Dashboard.qml</file>
<file>Gui/main.qml</file>
<file>js/qmldict.js</file>
<file>Gui/CustomerView.qml</file>
<file>Gui/NoDbConnection.qml</file>
<file>Gui/Notifications.qml</file>
@@ -36,14 +35,13 @@
<file>Gui/BackupSettings.qml</file>
<file>Gui/MiscConf.qml</file>
<file>Gui/UtilityDialogs.qml</file>
<file>Gui/OffersTable.qml</file>
<file>Gui/Employees/AddApplicant.qml</file>
<file>Gui/Employees/AddEmployee.qml</file>
<file>Gui/Employees/ApplicantPersonalData.qml</file>
<file>Gui/Employees/ApplicantBankData.qml</file>
<file>Gui/Employees/EmployeePersonalData.qml</file>
<file>Gui/Employees/EmployeeBankData.qml</file>
<file>Gui/Employees/ApplicantForm.qml</file>
<file>Gui/Employees/ApplicantNationalInsurance.qml</file>
<file>Gui/Employees/ApplicantVarious.qml</file>
<file>Gui/Employees/EmployeeNationalInsurance.qml</file>
<file>Gui/Employees/EmployeeVarious.qml</file>
<file>Gui/Employees/EmployeeDetails.qml</file>
<file>Gui/Employees/EmployeesTable.qml</file>
<file>Gui/Employees/qmldir</file>
@@ -67,9 +65,15 @@
<file>TeroStyle/SearchBar.qml</file>
<file>TeroStyle/TextField.qml</file>
<file>TeroStyle/Typography.qml</file>
<file>Gui/AddOffer.qml</file>
<file>Gui/AddNewOffer.qml</file>
<file>Gui/qmldir</file>
<file>Gui/test.qml</file>
<file>Gui/Offers/OffersTable.qml</file>
<file>Gui/Offers/qmldir</file>
<file>Gui/Offers/AddOffer.qml</file>
<file>Gui/Offers/AddNewOffer.qml</file>
<file>Js/qmldir</file>
<file>Js/JsLib.js</file>
<file>Js/qmldict.js</file>
</qresource>
<qresource prefix="/Common"/>
<qresource prefix="/TeroStyle"/>
</RCC>