diff --git a/doc/.$datenbank.drawio.dtmp b/doc/.$datenbank.drawio.dtmp
new file mode 100644
index 0000000..2db6c9a
--- /dev/null
+++ b/doc/.$datenbank.drawio.dtmp
@@ -0,0 +1,2527 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/datenbank.drawio b/doc/datenbank.drawio
index 3b0a806..99bce81 100644
--- a/doc/datenbank.drawio
+++ b/doc/datenbank.drawio
@@ -1,29 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
@@ -33,7 +23,7 @@
-
+
@@ -43,7 +33,7 @@
-
+
@@ -53,7 +43,7 @@
-
+
@@ -62,9 +52,6 @@
-
-
-
@@ -189,54 +176,12 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -266,19 +211,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -321,12 +253,15 @@
-
+
-
+
-
+
+
+
+
@@ -367,7 +302,7 @@
-
+
@@ -402,7 +337,9 @@
-
+
+
+
@@ -441,10 +378,12 @@
-
+
-
+
+
+
@@ -456,6 +395,7 @@
+
@@ -655,7 +595,7 @@
-
+
@@ -686,208 +626,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1356,13 +1094,13 @@
-
+
-
-
+
+
@@ -1377,7 +1115,7 @@
-
+
@@ -1431,23 +1169,23 @@
-
+
-
-
+
+
-
+
-
-
+
+
@@ -1456,8 +1194,8 @@
-
-
+
+
@@ -1479,20 +1217,21 @@
-
-
-
+
+
+
-
+
+
@@ -1989,8 +1728,8 @@
-
-
+
+
@@ -2134,7 +1873,11 @@
-
+
+
+
+
+
@@ -2298,49 +2041,49 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2350,6 +2093,434 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/db_schemer_v1.1-pyqcrm-202501210906.sql b/doc/db_schemer_v1.1-pyqcrm-202501210906.sql
new file mode 100644
index 0000000..ab38423
--- /dev/null
+++ b/doc/db_schemer_v1.1-pyqcrm-202501210906.sql
@@ -0,0 +1,1594 @@
+/*M!999999\- enable the sandbox mode */
+-- MariaDB dump 10.19 Distrib 10.11.10-MariaDB, for Linux (x86_64)
+--
+-- Host: bearybot.selfhost.co Database: pyqcrm
+-- ------------------------------------------------------
+-- Server version 10.11.8-MariaDB-0ubuntu0.24.04.1
+
+/*!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 = utf8 */;
+CREATE TABLE `address` (
+ `addressid` int(11) NOT NULL AUTO_INCREMENT,
+ `city` varchar(50) NOT NULL,
+ `countryid` int(11) NOT NULL,
+ PRIMARY KEY (`addressid`),
+ KEY `address_country_FK` (`countryid`),
+ CONSTRAINT `address_country_FK` FOREIGN KEY (`countryid`) REFERENCES `country` (`countryid`)
+) ENGINE=InnoDB 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`;
+/*!50001 DROP VIEW IF EXISTS `addressesview`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `addressesview` AS SELECT
+ 1 AS `postcodeid`,
+ 1 AS `addressid`,
+ 1 AS `postcode`,
+ 1 AS `city`,
+ 1 AS `country` */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `assignment`
+--
+
+DROP TABLE IF EXISTS `assignment`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `assignment` (
+ `contractid` int(11) NOT NULL AUTO_INCREMENT,
+ `employeeid` int(11) NOT NULL,
+ UNIQUE KEY `assignment_unique` (`contractid`),
+ KEY `assignment_employee_FK` (`employeeid`),
+ CONSTRAINT `assignment_contract_FK` FOREIGN KEY (`contractid`) REFERENCES `contract` (`contractid`),
+ CONSTRAINT `assignment_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_estonian_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `business`
+--
+
+DROP TABLE IF EXISTS `business`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `business` (
+ `businessid` int(11) NOT NULL AUTO_INCREMENT,
+ `company` varchar(100) NOT NULL,
+ `postcodeid` int(11) NOT NULL,
+ `phone` varchar(50) DEFAULT NULL,
+ `mobilephone` varchar(50) DEFAULT NULL,
+ `email` varchar(255) DEFAULT NULL,
+ `homepage` varchar(255) DEFAULT NULL,
+ `director` varchar(100) DEFAULT NULL,
+ `contactpersonid` int(11) DEFAULT NULL,
+ `info` varchar(500) DEFAULT NULL,
+ `btid` int(11) DEFAULT 1,
+ `taxno` varchar(50) DEFAULT NULL,
+ `enabled` tinyint(1) NOT NULL DEFAULT 1,
+ PRIMARY KEY (`businessid`),
+ UNIQUE KEY `business_unique` (`contactpersonid`),
+ KEY `business_postcode_FK` (`postcodeid`),
+ KEY `business_businesstype_FK` (`btid`),
+ CONSTRAINT `business_businesstype_FK` FOREIGN KEY (`btid`) REFERENCES `businesstype` (`btypeID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `business_contactperson_FK` FOREIGN KEY (`contactpersonid`) REFERENCES `contactperson` (`contactpersonid`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `business_postcode_FK` FOREIGN KEY (`postcodeid`) REFERENCES `postcode` (`postcodeid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `businesstype`
+--
+
+DROP TABLE IF EXISTS `businesstype`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `businesstype` (
+ `btypeID` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(35) NOT NULL,
+ PRIMARY KEY (`btypeID`),
+ UNIQUE KEY `businesstype_unique` (`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary table structure for view `clienteleinfo`
+--
+
+DROP TABLE IF EXISTS `clienteleinfo`;
+/*!50001 DROP VIEW IF EXISTS `clienteleinfo`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `clienteleinfo` AS SELECT
+ 1 AS `BusinessId`,
+ 1 AS `Kundenname`,
+ 1 AS `Straße`,
+ 1 AS `Hausnummer`,
+ 1 AS `PLZ`,
+ 1 AS `Ort`,
+ 1 AS `Anrede`,
+ 1 AS `Vorname`,
+ 1 AS `Nachname` */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `contact`
+--
+
+DROP TABLE IF EXISTS `contact`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `contact` (
+ `contactpersonid` int(11) NOT NULL,
+ `isbusiness` tinyint(1) NOT NULL DEFAULT 1,
+ UNIQUE KEY `contact_unique` (`contactpersonid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `contactperson`
+--
+
+DROP TABLE IF EXISTS `contactperson`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `contactperson` (
+ `contactpersonid` int(11) NOT NULL AUTO_INCREMENT,
+ `priority` tinyint(1) NOT NULL DEFAULT 0,
+ `lastname` varchar(75) NOT NULL,
+ `firstname` varchar(75) NOT NULL,
+ `phone` varchar(75) DEFAULT NULL,
+ `mobilephone` varchar(75) DEFAULT NULL,
+ `pos` varchar(50) DEFAULT NULL,
+ `salutation` varchar(10) DEFAULT NULL,
+ `email` varchar(255) DEFAULT NULL,
+ `birthday` varchar(35) DEFAULT NULL,
+ `active` tinyint(1) NOT NULL DEFAULT 1,
+ `invoice` tinyint(1) NOT NULL DEFAULT 0,
+ `reminder` tinyint(1) NOT NULL DEFAULT 0,
+ PRIMARY KEY (`contactpersonid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary table structure for view `contactpersonview`
+--
+
+DROP TABLE IF EXISTS `contactpersonview`;
+/*!50001 DROP VIEW IF EXISTS `contactpersonview`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `contactpersonview` AS SELECT
+ 1 AS `contactid`,
+ 1 AS `Anrede`,
+ 1 AS `Vorname`,
+ 1 AS `Nachname`,
+ 1 AS `Telefon`,
+ 1 AS `Mobil`,
+ 1 AS `E-Mail`,
+ 1 AS `Position`,
+ 1 AS `Entscheider` */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `contract`
+--
+
+DROP TABLE IF EXISTS `contract`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `contract` (
+ `contractid` int(11) NOT NULL AUTO_INCREMENT,
+ `jobdetailid` int(11) NOT NULL,
+ `tariffid` int(11) NOT NULL,
+ `officeid` int(11) NOT NULL COMMENT 'Kostenstelle',
+ `date` date NOT NULL,
+ PRIMARY KEY (`contractid`),
+ UNIQUE KEY `contract_unique` (`jobdetailid`),
+ KEY `contract_office_FK` (`officeid`),
+ CONSTRAINT `contract_jobdetail_FK` FOREIGN KEY (`jobdetailid`) REFERENCES `jobdetail` (`jobdetailid`),
+ CONSTRAINT `contract_office_FK` FOREIGN KEY (`officeid`) REFERENCES `office` (`officeid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `country`
+--
+
+DROP TABLE IF EXISTS `country`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `country` (
+ `countryid` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(100) NOT NULL,
+ PRIMARY KEY (`countryid`),
+ UNIQUE KEY `country_unique` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary table structure for view `customerinfo`
+--
+
+DROP TABLE IF EXISTS `customerinfo`;
+/*!50001 DROP VIEW IF EXISTS `customerinfo`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `customerinfo` AS SELECT
+ 1 AS `BusinessId`,
+ 1 AS `Kundenname`,
+ 1 AS `Straße`,
+ 1 AS `Hausnummer`,
+ 1 AS `PLZ`,
+ 1 AS `Ort`,
+ 1 AS `Anrede`,
+ 1 AS `Vorname`,
+ 1 AS `Nachname` */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `employee`
+--
+
+DROP TABLE IF EXISTS `employee`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `employee` (
+ `employeeid` int(11) NOT NULL AUTO_INCREMENT,
+ `lastname` varchar(35) NOT NULL,
+ `firstname` varchar(35) NOT NULL,
+ `maritalstatus` varchar(30) DEFAULT NULL,
+ `nationality` varchar(50) NOT NULL,
+ `birthday` date NOT NULL,
+ `postcodeid` int(11) NOT NULL,
+ `phone` varchar(50) DEFAULT NULL,
+ `mobilephone` varchar(50) DEFAULT NULL,
+ `email` varchar(255) DEFAULT NULL,
+ `identificationid` int(11) NOT NULL,
+ `jobstatusid` int(11) NOT NULL,
+ `formofadress` varchar(30) DEFAULT NULL COMMENT 'Briefanrede',
+ `salutation` varchar(10) NOT NULL,
+ `minijob` tinyint(1) NOT NULL DEFAULT 0,
+ `enabled` tinyint(1) NOT NULL DEFAULT 1,
+ PRIMARY KEY (`employeeid`),
+ UNIQUE KEY `employee_unique` (`identificationid`),
+ KEY `employee_jobstatus_FK` (`jobstatusid`),
+ KEY `employee_postcode_FK` (`postcodeid`),
+ CONSTRAINT `employee_identification_FK` FOREIGN KEY (`identificationid`) REFERENCES `identification` (`identificationid`),
+ CONSTRAINT `employee_jobstatus_FK` FOREIGN KEY (`jobstatusid`) REFERENCES `jobstatus` (`jobstatusid`),
+ CONSTRAINT `employee_postcode_FK` FOREIGN KEY (`postcodeid`) REFERENCES `postcode` (`postcodeid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `employeecontract`
+--
+
+DROP TABLE IF EXISTS `employeecontract`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `employeecontract` (
+ `empcontractid` int(11) NOT NULL AUTO_INCREMENT,
+ `employeeid` int(11) NOT NULL,
+ `start` date NOT NULL DEFAULT current_timestamp(),
+ `end` date DEFAULT NULL,
+ `limited` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Befristet/Unbefristet\r\nDefault ist unbefristet, 1 ist befristet',
+ `hours` varchar(100) DEFAULT NULL COMMENT 'Arbeitszeiten',
+ PRIMARY KEY (`empcontractid`),
+ KEY `employeecontract_employee_FK` (`employeeid`),
+ CONSTRAINT `employeecontract_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary table structure for view `employeesview`
+--
+
+DROP TABLE IF EXISTS `employeesview`;
+/*!50001 DROP VIEW IF EXISTS `employeesview`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `employeesview` AS SELECT
+ 1 AS `firstname`,
+ 1 AS `lastname`,
+ 1 AS `salutation`,
+ 1 AS `mobilephone`,
+ 1 AS `phone`,
+ 1 AS `email`,
+ 1 AS `city`,
+ 1 AS `description` */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `entities`
+--
+
+DROP TABLE IF EXISTS `entities`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `entities` (
+ `entityid` int(11) NOT NULL AUTO_INCREMENT,
+ `entity` varchar(35) NOT NULL,
+ PRIMARY KEY (`entityid`),
+ UNIQUE KEY `entities_unique` (`entity`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary table structure for view `finishedinfo`
+--
+
+DROP TABLE IF EXISTS `finishedinfo`;
+/*!50001 DROP VIEW IF EXISTS `finishedinfo`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `finishedinfo` AS SELECT
+ 1 AS `BusinessId`,
+ 1 AS `Kundenname`,
+ 1 AS `Straße`,
+ 1 AS `Hausnummer`,
+ 1 AS `PLZ`,
+ 1 AS `Ort`,
+ 1 AS `Anrede`,
+ 1 AS `Vorname`,
+ 1 AS `Nachname` */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `house`
+--
+
+DROP TABLE IF EXISTS `house`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `house` (
+ `houseid` int(11) NOT NULL AUTO_INCREMENT,
+ `strid` int(11) NOT NULL,
+ `houseno` varchar(6) NOT NULL,
+ PRIMARY KEY (`houseid`),
+ KEY `house_street_FK` (`strid`),
+ CONSTRAINT `house_street_FK` FOREIGN KEY (`strid`) REFERENCES `street` (`strid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `identification`
+--
+
+DROP TABLE IF EXISTS `identification`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `identification` (
+ `identificationid` int(11) NOT NULL AUTO_INCREMENT,
+ `number` varchar(50) NOT NULL,
+ `expiry` date NOT NULL,
+ `issued` date NOT NULL,
+ `authority` varchar(50) NOT NULL,
+ `typeid` int(11) NOT NULL,
+ PRIMARY KEY (`identificationid`),
+ UNIQUE KEY `identification_unique` (`number`),
+ KEY `identification_identificationtype_FK` (`typeid`),
+ CONSTRAINT `identification_identificationtype_FK` FOREIGN KEY (`typeid`) REFERENCES `identificationtype` (`typeid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `identificationtype`
+--
+
+DROP TABLE IF EXISTS `identificationtype`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `identificationtype` (
+ `typeid` int(11) NOT NULL AUTO_INCREMENT,
+ `type` varchar(50) NOT NULL,
+ PRIMARY KEY (`typeid`),
+ UNIQUE KEY `identificationtype_unique` (`type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary table structure for view `interestedinfo`
+--
+
+DROP TABLE IF EXISTS `interestedinfo`;
+/*!50001 DROP VIEW IF EXISTS `interestedinfo`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `interestedinfo` AS SELECT
+ 1 AS `BusinessId`,
+ 1 AS `Kundenname`,
+ 1 AS `Straße`,
+ 1 AS `Hausnummer`,
+ 1 AS `PLZ`,
+ 1 AS `Ort`,
+ 1 AS `Anrede`,
+ 1 AS `Vorname`,
+ 1 AS `Nachname` */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `invoice`
+--
+
+DROP TABLE IF EXISTS `invoice`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `invoice` (
+ `invoiceid` int(11) NOT NULL AUTO_INCREMENT,
+ `issued` date NOT NULL COMMENT 'Rechnungsdatum',
+ `entry` date NOT NULL COMMENT 'Buchungsdatum',
+ `contractid` int(11) NOT NULL,
+ PRIMARY KEY (`invoiceid`),
+ KEY `invoice_contract_FK` (`contractid`),
+ CONSTRAINT `invoice_contract_FK` FOREIGN KEY (`contractid`) REFERENCES `contract` (`contractid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `jobdetail`
+--
+
+DROP TABLE IF EXISTS `jobdetail`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `jobdetail` (
+ `jobdetailid` int(11) NOT NULL AUTO_INCREMENT,
+ `duration` decimal(10,0) NOT NULL,
+ `objectid` int(11) NOT NULL,
+ `period` varchar(15) NOT NULL,
+ `personnel` int(11) NOT NULL DEFAULT 1 COMMENT 'number of employees',
+ `price` decimal(10,0) NOT NULL,
+ PRIMARY KEY (`jobdetailid`),
+ UNIQUE KEY `jobdetail_unique` (`objectid`),
+ CONSTRAINT `jobdetail_object_FK` FOREIGN KEY (`objectid`) REFERENCES `object` (`objectid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `jobstatus`
+--
+
+DROP TABLE IF EXISTS `jobstatus`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `jobstatus` (
+ `jobstatusid` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(30) NOT NULL,
+ PRIMARY KEY (`jobstatusid`),
+ UNIQUE KEY `jobstatus_unique` (`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `logs`
+--
+
+DROP TABLE IF EXISTS `logs`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `logs` (
+ `logid` int(11) NOT NULL AUTO_INCREMENT,
+ `recordid` int(11) DEFAULT NULL,
+ `operationtype` varchar(100) NOT NULL,
+ `message` varchar(100) NOT NULL,
+ `logdate` datetime NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`logid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `medicalcare`
+--
+
+DROP TABLE IF EXISTS `medicalcare`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `medicalcare` (
+ `medicalcareid` int(11) NOT NULL AUTO_INCREMENT,
+ `company` varchar(50) NOT NULL,
+ PRIMARY KEY (`medicalcareid`),
+ UNIQUE KEY `medicalcare_unique` (`company`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `object`
+--
+
+DROP TABLE IF EXISTS `object`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `object` (
+ `objectid` int(11) NOT NULL AUTO_INCREMENT,
+ `postcodeid` int(11) NOT NULL,
+ `contactpersonid` int(11) NOT NULL,
+ `businessid` int(11) NOT NULL,
+ `leistungsort` varchar(50) NOT NULL,
+ `lohnanteil inkl. fahrtkosten` int(11) DEFAULT NULL,
+ `materialanteil` int(11) DEFAULT NULL,
+ `zusatz1` varchar(50) DEFAULT NULL,
+ `zusatz2` varchar(50) DEFAULT NULL,
+ `gesamtnetto` int(11) DEFAULT NULL,
+ `mwst` int(11) DEFAULT NULL,
+ `gesamt` int(11) DEFAULT NULL,
+ `info` varchar(500) DEFAULT NULL,
+ PRIMARY KEY (`objectid`),
+ KEY `object_contactperson_FK` (`contactpersonid`),
+ KEY `object_business_FK` (`businessid`),
+ KEY `object_postcode_FK` (`postcodeid`),
+ CONSTRAINT `object_business_FK` FOREIGN KEY (`businessid`) REFERENCES `business` (`businessid`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `object_contactperson_FK` FOREIGN KEY (`contactpersonid`) REFERENCES `contactperson` (`contactpersonid`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `object_postcode_FK` FOREIGN KEY (`postcodeid`) REFERENCES `postcode` (`postcodeid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `object_mitarbeiter`
+--
+
+DROP TABLE IF EXISTS `object_mitarbeiter`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `object_mitarbeiter` (
+ `employeeid` int(11) NOT NULL,
+ `lohnmitarbeiterprostunde` int(2) NOT NULL,
+ `einsatzdauer` varchar(20) NOT NULL,
+ `reinigungstage` varchar(25) NOT NULL,
+ `tätigkeiten` varchar(50) NOT NULL,
+ `ertrag` int(4) NOT NULL,
+ `objectid` int(11) NOT NULL,
+ KEY `fk_objectid` (`objectid`),
+ KEY `fk_employeeid` (`employeeid`),
+ CONSTRAINT `fk_employeeid` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`),
+ CONSTRAINT `fk_objectid` FOREIGN KEY (`objectid`) REFERENCES `object` (`objectid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `offer`
+--
+
+DROP TABLE IF EXISTS `offer`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `offer` (
+ `offerid` int(11) NOT NULL AUTO_INCREMENT,
+ `jobdetailid` int(11) NOT NULL,
+ `date` date NOT NULL,
+ PRIMARY KEY (`offerid`),
+ KEY `offer_jobdetail_FK` (`jobdetailid`),
+ CONSTRAINT `offer_jobdetail_FK` FOREIGN KEY (`jobdetailid`) REFERENCES `jobdetail` (`jobdetailid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `offers`
+--
+
+DROP TABLE IF EXISTS `offers`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `offers` (
+ `offerid` int(11) NOT NULL,
+ `contractid` int(11) NOT NULL,
+ KEY `offers_offer_FK` (`offerid`),
+ KEY `offers_contract_FK` (`contractid`),
+ CONSTRAINT `offers_contract_FK` FOREIGN KEY (`contractid`) REFERENCES `contract` (`contractid`),
+ CONSTRAINT `offers_offer_FK` FOREIGN KEY (`offerid`) REFERENCES `offer` (`offerid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kreuztabelle Angebot - Auftrag';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `office`
+--
+
+DROP TABLE IF EXISTS `office`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `office` (
+ `officeid` int(11) NOT NULL AUTO_INCREMENT,
+ `office` varchar(50) NOT NULL COMMENT 'Kostenstelle',
+ PRIMARY KEY (`officeid`),
+ UNIQUE KEY `office_unique` (`office`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kostenstelle';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `permissions`
+--
+
+DROP TABLE IF EXISTS `permissions`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `permissions` (
+ `permissionid` int(11) NOT NULL AUTO_INCREMENT,
+ `permission` varchar(50) NOT NULL,
+ PRIMARY KEY (`permissionid`),
+ UNIQUE KEY `berechtigungen_unique` (`permission`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `personalrole`
+--
+
+DROP TABLE IF EXISTS `personalrole`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `personalrole` (
+ `employeeid` int(11) NOT NULL,
+ `roleid` int(11) NOT NULL,
+ KEY `personalrole_employee_FK` (`employeeid`),
+ KEY `personalrole_role_FK` (`roleid`),
+ CONSTRAINT `personalrole_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`),
+ CONSTRAINT `personalrole_role_FK` FOREIGN KEY (`roleid`) REFERENCES `role` (`roleid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kreuztabelle';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `postcode`
+--
+
+DROP TABLE IF EXISTS `postcode`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `postcode` (
+ `postcodeid` int(11) NOT NULL AUTO_INCREMENT,
+ `postcode` varchar(15) NOT NULL,
+ `addressid` int(11) NOT NULL,
+ PRIMARY KEY (`postcodeid`),
+ KEY `postcode_address_FK` (`addressid`),
+ CONSTRAINT `postcode_address_FK` FOREIGN KEY (`addressid`) REFERENCES `address` (`addressid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary table structure for view `providerinfo`
+--
+
+DROP TABLE IF EXISTS `providerinfo`;
+/*!50001 DROP VIEW IF EXISTS `providerinfo`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `providerinfo` AS SELECT
+ 1 AS `BusinessId`,
+ 1 AS `Kundenname`,
+ 1 AS `Straße`,
+ 1 AS `Hausnummer`,
+ 1 AS `PLZ`,
+ 1 AS `Ort`,
+ 1 AS `Anrede`,
+ 1 AS `Vorname`,
+ 1 AS `Nachname` */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `role`
+--
+
+DROP TABLE IF EXISTS `role`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `role` (
+ `roleid` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(50) NOT NULL,
+ PRIMARY KEY (`roleid`),
+ UNIQUE KEY `role_unique` (`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `roles`
+--
+
+DROP TABLE IF EXISTS `roles`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `roles` (
+ `roleid` int(11) NOT NULL,
+ `permissionid` int(11) NOT NULL,
+ `entityid` int(11) NOT NULL,
+ KEY `roles_role_FK` (`roleid`),
+ KEY `roles_permissions_FK` (`permissionid`),
+ KEY `roles_entities_FK` (`entityid`),
+ CONSTRAINT `roles_entities_FK` FOREIGN KEY (`entityid`) REFERENCES `entities` (`entityid`),
+ CONSTRAINT `roles_permissions_FK` FOREIGN KEY (`permissionid`) REFERENCES `permissions` (`permissionid`),
+ CONSTRAINT `roles_role_FK` FOREIGN KEY (`roleid`) REFERENCES `role` (`roleid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `salestax`
+--
+
+DROP TABLE IF EXISTS `salestax`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `salestax` (
+ `salestaxid` varchar(20) NOT NULL,
+ `businessid` int(11) NOT NULL,
+ PRIMARY KEY (`salestaxid`),
+ UNIQUE KEY `salestax_unique` (`businessid`),
+ CONSTRAINT `salestax_business_FK` FOREIGN KEY (`businessid`) REFERENCES `business` (`businessid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `service`
+--
+
+DROP TABLE IF EXISTS `service`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `service` (
+ `servicetypeid` int(11) NOT NULL,
+ `servicedescid` int(11) NOT NULL,
+ `objectid` int(11) NOT NULL,
+ KEY `service_servicedesc_FK` (`servicedescid`),
+ KEY `service_object_FK` (`objectid`),
+ KEY `service_servicetype_FK` (`servicetypeid`),
+ CONSTRAINT `service_object_FK` FOREIGN KEY (`objectid`) REFERENCES `object` (`objectid`),
+ CONSTRAINT `service_servicedesc_FK` FOREIGN KEY (`servicedescid`) REFERENCES `servicedesc` (`servicedescid`),
+ CONSTRAINT `service_servicetype_FK` FOREIGN KEY (`servicetypeid`) REFERENCES `servicetype` (`servicetypeid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `servicedesc`
+--
+
+DROP TABLE IF EXISTS `servicedesc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `servicedesc` (
+ `servicedescid` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(1000) NOT NULL,
+ PRIMARY KEY (`servicedescid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `servicetype`
+--
+
+DROP TABLE IF EXISTS `servicetype`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `servicetype` (
+ `servicetypeid` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(50) NOT NULL,
+ PRIMARY KEY (`servicetypeid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `socialsecurity`
+--
+
+DROP TABLE IF EXISTS `socialsecurity`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `socialsecurity` (
+ `employeeid` int(11) NOT NULL,
+ `socialsecurityno` varchar(30) NOT NULL,
+ `medicalcareid` int(11) NOT NULL,
+ UNIQUE KEY `socialsecurity_unique_1` (`socialsecurityno`),
+ UNIQUE KEY `socialsecurity_unique` (`employeeid`),
+ KEY `socialsecurity_medicalcare_FK` (`medicalcareid`),
+ CONSTRAINT `socialsecurity_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`),
+ CONSTRAINT `socialsecurity_medicalcare_FK` FOREIGN KEY (`medicalcareid`) REFERENCES `medicalcare` (`medicalcareid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `street`
+--
+
+DROP TABLE IF EXISTS `street`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `street` (
+ `strid` int(11) NOT NULL AUTO_INCREMENT,
+ `postcodeid` int(11) NOT NULL,
+ `name` varchar(100) NOT NULL,
+ PRIMARY KEY (`strid`),
+ KEY `street_postcode_FK` (`postcodeid`),
+ CONSTRAINT `street_postcode_FK` FOREIGN KEY (`postcodeid`) REFERENCES `postcode` (`postcodeid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tariff`
+--
+
+DROP TABLE IF EXISTS `tariff`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tariff` (
+ `tariffid` int(11) NOT NULL AUTO_INCREMENT,
+ `tariff` decimal(10,0) NOT NULL COMMENT 'Festgelegter Stundensatz',
+ PRIMARY KEY (`tariffid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Stundensatz Tabelle';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `timetrack`
+--
+
+DROP TABLE IF EXISTS `timetrack`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `timetrack` (
+ `employeeid` int(11) NOT NULL,
+ `start` datetime NOT NULL,
+ `stop` datetime NOT NULL,
+ `vacation` tinyint(1) NOT NULL DEFAULT 0,
+ KEY `timetrack_employee_FK` (`employeeid`),
+ CONSTRAINT `timetrack_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `users`
+--
+
+DROP TABLE IF EXISTS `users`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `users` (
+ `usersid` int(11) NOT NULL AUTO_INCREMENT,
+ `username` varchar(50) NOT NULL,
+ `password` varchar(161) NOT NULL,
+ `enabled` tinyint(1) NOT NULL DEFAULT 1,
+ `roleid` int(11) NOT NULL,
+ `gecos` varchar(75) DEFAULT NULL,
+ PRIMARY KEY (`usersid`),
+ UNIQUE KEY `users_unique` (`username`),
+ KEY `users_role_FK` (`roleid`),
+ CONSTRAINT `users_role_FK` FOREIGN KEY (`roleid`) REFERENCES `role` (`roleid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'pyqcrm'
+--
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `addBusiness` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addBusiness`(IN new_business JSON, IN v_contactpersonid INT (11))
+BEGIN
+ DECLARE v_company VARCHAR(100);
+ DECLARE v_streetid INT(11);
+ DECLARE v_street VARCHAR(100);
+ DECLARE v_postcode INT(11);
+ DECLARE v_phone VARCHAR(50);
+ DECLARE v_cell VARCHAR(50);
+ DECLARE v_email VARCHAR(255);
+ DECLARE v_homepage VARCHAR(255);
+ DECLARE v_director VARCHAR(100);
+ DECLARE v_info VARCHAR(500);
+ DECLARE v_taxno VARCHAR(50);
+ DECLARE v_bt VARCHAR(50);
+ DECLARE v_zipcodeid INT(11);
+ DECLARE v_city VARCHAR (50);
+ DECLARE v_btid INT(11);
+ DECLARE bid INT(11);
+ DECLARE v_houseno VARCHAR(6);
+
+ SET v_company = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.business'));
+ SET v_city = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.city'));
+ SET v_street = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.street'));
+ SET v_postcode = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.postcode'));
+ SET v_phone = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.telephone'));
+ SET v_cell = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.cellphone'));
+ SET v_email = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.email'));
+ SET v_homepage = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.homepage'));
+ SET v_director = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.ceo'));
+ SET v_info = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.customerinfo'));
+ SET v_taxno = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.taxno'));
+ SET v_bt = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.typeid'));
+ SET v_houseno = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.houseno'));
+
+
+ CALL getBtype (v_bt, v_btid);
+
+ CALL checkZipCode (v_postcode, v_city, v_zipcodeid);
+ IF v_zipcodeid IS NOT NULL THEN
+ IF v_street IS NOT NULL THEN
+ CALL checkStreet (v_zipcodeid, v_street, v_houseno, v_streetid);
+ END IF;
+ IF v_contactpersonid = 0 THEN
+ INSERT INTO business (company, postcodeid, phone, mobilephone, email, homepage, director, info, btid, taxno)
+ VALUES (v_company, v_zipcodeid, v_phone, v_cell, v_email, v_homepage, v_director, v_info, v_btid, v_taxno);
+ -- COMMIT;
+ CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addBusiness: New Customer added");
+ ELSE
+ INSERT INTO business (company, postcodeid, phone, mobilephone, email, homepage, director, contactpersonid, info, btid, taxno)
+ VALUES (v_company, v_zipcodeid, v_phone, v_cell, v_email, v_homepage, v_director, v_contactpersonid, v_info, v_btid, v_taxno);
+ -- COMMIT;
+ CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addBusiness: New Customer added");
+ -- INSERT INTO contact(contactpersonid, isbusiness) VALUES(v_contactpersonid, true);
+ END IF;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `addContactPerson` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addContactPerson`(IN encrypt_key VARCHAR(45), IN new_contactperson JSON)
+BEGIN
+ DECLARE x_salutation VARCHAR(10);
+ DECLARE x_fname VARCHAR (75);
+ DECLARE x_lname VARCHAR (75);
+ DECLARE x_phone VARCHAR (75);
+ DECLARE x_cell VARCHAR (75);
+ DECLARE x_position VARCHAR (50);
+ DECLARE x_email VARCHAR (255);
+ DECLARE x_birthday VARCHAR (35);
+ DECLARE x_priority BOOL;
+ DECLARE x_invoice BOOL;
+ DECLARE x_reminder BOOL;
+
+ SET x_salutation = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.title'));
+ SET x_fname = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.firstname'));
+ SET x_fname = CASE WHEN x_fname != "" THEN HEX(AES_ENCRYPT(x_fname, encrypt_key)) END;
+ SET x_lname = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.lastname'));
+ SET x_lname = CASE WHEN x_lname != "" THEN HEX(AES_ENCRYPT(x_lname, encrypt_key)) END;
+ SET x_phone = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.telephonecontact'));
+ SET x_phone = CASE WHEN x_phone != "" THEN HEX(AES_ENCRYPT(x_phone, encrypt_key)) END;
+ SET x_cell = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.cellphone'));
+ SET x_cell = CASE WHEN x_cell != "" THEN HEX(AES_ENCRYPT(x_cell, encrypt_key)) END;
+ SET x_position = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.jobdescription'));
+ SET x_email = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.email'));
+ SET x_email = CASE WHEN x_email != "" THEN HEX(AES_ENCRYPT(x_email, encrypt_key)) END;
+ SET x_birthday = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.birthday'));
+ SET x_birthday = CASE WHEN x_birthday != "" THEN HEX(AES_ENCRYPT(x_birthday, encrypt_key)) END;
+ SET x_priority = if(JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.rank')) = 'Ja', true, false);
+ SET x_invoice = if(JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.invoice')) = 'Ja', true, false);
+ SET x_reminder = if(JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.due')) = 'Ja', true, false);
+
+ INSERT INTO contactperson (lastname, firstname, phone, mobilephone, pos, salutation, email, birthday, priority, invoice, reminder)
+ VALUES (x_lname, x_fname, x_phone, x_cell, x_position, x_salutation, x_email, x_birthday, x_priority, x_invoice, x_reminder);
+ -- CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addContactPerson: New Contactperson added");
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `addHouseno` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addHouseno`(IN v_houseno VARCHAR(6), scid INT(11))
+BEGIN
+ INSERT INTO house (houseno, strid) VALUES (v_houseno, scid);
+ -- COMMIT;
+ CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addHouseno: New Housenumber added from oschkarischtverhaftetwegensexy");
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `addPermission` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addPermission`(IN newpermission VARCHAR(50))
+BEGIN
+ CALL logger ((SELECT LAST_INSERT_ID()), "SELECT", "addPermission: strid selected from oschkarischtverhaftetwegensexy");
+ IF NOT EXISTS (SELECT 1 FROM permissions WHERE permission = newpermission) THEN
+ INSERT INTO permissions(permission) VALUES(newpermission);
+ CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addPermission: New Permission added from oschkarischtverhaftetwegensexy");
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `addRole` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addRole`(IN newdescription VARCHAR(50))
+BEGIN
+ CALL logger ((SELECT LAST_INSERT_ID()), "SELECT", "addRole: strid selected from oschkarischtverhaftetwegensexy");
+ IF NOT EXISTS (SELECT 1 FROM `role` WHERE description = newdescription) THEN
+ INSERT INTO `role`(description) VALUES(newdescription);
+ CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addRole: New Role added from oschkarischtverhaftetwegensexy");
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `addStreet` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addStreet`(IN zipcodeid INT(11), IN streetname VARCHAR(100), OUT scid INT(11))
+BEGIN
+ CALL logger ((SELECT LAST_INSERT_ID()), "SELECT", "addStreet: 1 selected from oschkarischtverhaftetwegensexy");
+ IF NOT EXISTS (SELECT 1 FROM street WHERE name = streetname) THEN
+ INSERT INTO street(postcodeid, name) VALUES(zipcodeid, streetname);
+ SET scid = LAST_INSERT_ID();
+ CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addStreet: New Customer added from oschkarischtverhaftetwegensexy");
+ ELSE
+ SELECT strid INTO scid FROM street WHERE name = streetname;
+ CALL logger (scid, "SELECT", "addStreet: strid selected from oschkarischtverhaftetwegensexy");
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `addZipCodes` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addZipCodes`(IN zipcode VARCHAR(15), IN town VARCHAR(50), OUT nzcid VARCHAR (15))
+BEGIN
+ DECLARE zip_town INT;
+
+ IF NOT EXISTS (SELECT 1 FROM address WHERE city = town) THEN
+ INSERT INTO address(country, city) VALUES("Deutschland", town);
+ SET zip_town = LAST_INSERT_ID();
+ CALL logger (zip_town, "INSERT", "addZipCodes: New Address added from oschkarischtverhaftetwegensexy");
+ ELSE
+ SELECT addressid INTO zip_town FROM address WHERE city = town;
+ CALL logger (zip_town, "SELECT", "addZipCodes: Addressid selected from oschkarischtverhaftetwegensexy");
+ END IF;
+ SET nzcid = (SELECT postcodeid FROM postcode WHERE postcode = zipcode);
+ CALL logger (zip_town, "SELECT", "addZipCodes: Postcodeid selected from oschkarischtverhaftetwegensexy");
+ IF nzcid IS NULL THEN
+ INSERT INTO postcode(postcode, addressid) VALUES(zipcode, zip_town);
+ SET nzcid = LAST_INSERT_ID();
+ CALL logger (nzcid, "INSERT", "addZipCodes: New Postcode added from oschkarischtverhaftetwegensexy");
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `checkAdmin` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkAdmin`()
+BEGIN
+ SELECT 1 FROM users WHERE roleid = 1 AND enabled = TRUE LIMIT 1;
+ CALL logger (NULL, "SELECT", "checkAdmin: Check Admin User VALID written by OSCHKAR");
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `checkStreet` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkStreet`(IN zipcodeid INT(11), IN streetname VARCHAR (100), IN v_houseno VARCHAR(6), OUT scid INT(11))
+BEGIN
+ SET scid = ( SELECT st.strid FROM street AS st
+ JOIN postcode AS pc ON st.postcodeid = pc.postcodeid WHERE pc.postcodeid = zipcodeid);
+ CALL logger (NULL, "SELECT", "checkStreet: Check if street exists written by OSCHKAR");
+ IF scid IS NULL THEN
+ CALL addStreet (zipcodeid, streetname, scid);
+ CALL addHouseno (v_houseno, scid);
+
+ ELSE
+ CALL logger (NULL, "SELECT", "checkStreet: Check if Housenumber exists written by OSCHKAR");
+ IF (SELECT 1 FROM house WHERE strid = scid AND v_houseno = houseno) IS NULL THEN
+ CALL addHouseno (v_houseno, scid);
+ END IF;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `checkZipCode` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkZipCode`(IN zipcode VARCHAR(15), IN town VARCHAR(50), OUT zcid INT)
+BEGIN
+ SET zcid = ( SELECT pc.postcodeid FROM address AS ad
+ JOIN postcode AS pc ON ad.addressid = pc.addressid WHERE pc.postcode = zipcode);
+ CALL logger (zcid, "SELECT", "checkZipCode: Check if postcode exists written by OSCHKAR");
+ IF zcid IS NULL THEN
+ CALL addZipCodes (zipcode, town, zcid);
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `createUser` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `createUser`(IN uname VARCHAR(35), IN password VARCHAR(161), IN gecos VARCHAR(75), IN admin BOOL)
+BEGIN
+ DECLARE userrole INT;
+ SET userrole = 2;
+ IF admin = 1 THEN
+ SET userrole = 1;
+ END IF;
+ CALL logger (NULL, "SELECT", "createUser: Check if user exists written by OSCHKAR");
+ IF NOT EXISTS (SELECT 1 FROM users WHERE username = uname) THEN
+ INSERT INTO users(username, password, gecos, roleid) VALUES(uname, password, gecos, userrole);
+ CALL logger ((SELECT LAST_INSERT_ID()) , "INSERT", "createUser: User created written by OSCHKAR");
+ ELSE
+ SIGNAL SQLSTATE '45000' SET
+ MESSAGE_TEXT = 'Username already in use';
+ END IF;
+ END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getAddress` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getAddress`(IN all_address BOOL, IN zipcode VARCHAR(15))
+BEGIN
+ IF all_address = 1 THEN
+ SELECT * FROM addressesview;
+ CALL logger (NULL, "SELECT", "getAddress: All from addressview written by OSCHKAR");
+ ELSE
+ SELECT pc.postcodeid, pc.addressid, pc.postcode, ad.city, ad.country FROM address AS ad
+ JOIN postcode AS pc ON ad.addressid = pc.addressid WHERE pc.postcode = zipcode ORDER BY pc.postcode ASC;
+ CALL logger (NULL, "SELECT", "getAddress: Select one adress written by OSCHKAR");
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getBtype` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getBtype`(IN businessdesc VARCHAR (35), OUT typeid INT (11))
+BEGIN
+ IF businessdesc IS NULL THEN
+ SELECT * FROM businesstype ORDER BY btypeID;
+ CALL logger (NULL, "SELECT", "getBtype: All from businesstype written by OSCHKAR");
+ ELSE
+ SET typeid = (SELECT btypeID FROM businesstype WHERE description = businessdesc);
+ CALL logger (typeid, "SELECT", "getBtype: Select one businesstype written by OSCHKAR");
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getBusiness` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getBusiness`(IN businesstype VARCHAR(35))
+BEGIN
+ SELECT * FROM business;
+ CALL logger (NULL, "SELECT", "getBusiness: All from business written by OSCHKAR");
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getContactPersonView` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getContactPersonView`(IN decrypt_key VARCHAR(45))
+BEGIN
+ SELECT contactid, CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ",
+ AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Kontakt,
+ CASE WHEN Telefon != "" THEN AES_DECRYPT(UNHEX(Telefon), decrypt_key) END AS Telefon,
+ CASE WHEN Mobil != "" THEN AES_DECRYPT(UNHEX(Mobil), decrypt_key) END AS Handy,
+ CASE WHEN `E-Mail` != "" THEN AES_DECRYPT(UNHEX(`E-Mail`), decrypt_key) END AS `E-Mail`,
+ `Position`, Entscheider AS Entscheider FROM contactpersonview;
+ CALL logger (NULL, "SELECT", "getContactPersonView: All from getContactPersonView written by OSCHKAR");
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getCustomerView` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getCustomerView`(IN decrypt_key VARCHAR(45), IN criterion VARCHAR(35))
+BEGIN
+ IF criterion = "Interessent" THEN
+ SELECT BusinessId AS customer, `Kundenname`, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort,
+ CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ",
+ AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner
+ FROM interestedinfo ORDER BY Kundenname ASC;
+ CALL logger (NULL, "SELECT", "getCustomerView: Get all Interessent written by OSCHKAR");
+ ELSEIF criterion = "Kunden" THEN
+ SELECT BusinessId AS customer, Kundenname, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort,
+ CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ",
+ AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner
+ FROM clienteleinfo ORDER BY Kundenname ASC;
+ CALL logger (NULL, "SELECT", "getCustomerView: Get all Kunden written by OSCHKAR");
+ ELSEIF criterion = "Lieferant" THEN
+ SELECT BusinessId AS customer, Kundenname, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort,
+ CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ",
+ AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner
+ FROM providerinfo ORDER BY Kundenname ASC;
+ CALL logger (NULL, "SELECT", "getCustomerView: Get all Lieferant written by OSCHKAR");
+ ELSEIF criterion = "Erledigt" THEN
+ SELECT BusinessId AS customer, Kundenname, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort,
+ CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ",
+ AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner
+ FROM finishedinfo ORDER BY Kundenname ASC;
+ CALL logger (NULL, "SELECT", "getCustomerView: Get all Erledigt written by OSCHKAR");
+ ELSE
+ SELECT BusinessId AS customer, `Kundenname`, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort,
+ CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ",
+ AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner
+ FROM customerinfo ORDER BY Kundenname ASC;
+ CALL logger (NULL, "SELECT", "getCustomerView: Get all Customer written by OSCHKAR");
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getLastInsertId` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getLastInsertId`()
+BEGIN
+ SELECT LAST_INSERT_ID();
+ CALL logger ((SELECT LAST_INSERT_ID()), "SELECT", "getLastInsertId: Select LastInsertID written by OSCHKAR");
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getUser` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getUser`( IN uname VARCHAR(50))
+BEGIN
+ SELECT * FROM users WHERE username = uname AND enabled = 1;
+ CALL logger (NULL, "SELECT", "getUser: Select User written by OSCHKAR");
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `logger` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `logger`(recid INT(11), operation VARCHAR(100), msg VARCHAR(500))
+BEGIN
+ INSERT INTO logs (recordid, operationtype, message) VALUES (recid, operation, msg);
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Final view structure for view `addressesview`
+--
+
+/*!50001 DROP VIEW IF EXISTS `addressesview`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `addressesview` AS select `pc`.`postcodeid` AS `postcodeid`,`pc`.`addressid` AS `addressid`,coalesce(`pc`.`postcode`,'') AS `postcode`,coalesce(`ad`.`city`,'') AS `city`,coalesce(`ct`.`name`,'') AS `country` from ((`postcode` `pc` left join `address` `ad` on(`ad`.`addressid` = `pc`.`addressid`)) left join `country` `ct` on(`ad`.`countryid` = `ct`.`countryid`)) order by `pc`.`postcode` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `clienteleinfo`
+--
+
+/*!50001 DROP VIEW IF EXISTS `clienteleinfo`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `clienteleinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`st`.`name`,'') AS `Straße`,coalesce(`hn`.`houseno`,'') AS `Hausnummer`,coalesce(lpad(`pt`.`postcode`,5,'0'),'') AS `PLZ`,coalesce(`at`.`city`,'') AS `Ort`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from ((((((`business` `bt` left join `postcode` `pt` on(`bt`.`postcodeid` = `pt`.`postcodeid`)) left join `street` `st` on(`st`.`postcodeid` = `pt`.`postcodeid`)) left join `house` `hn` on(`hn`.`strid` = `st`.`strid`)) left join `address` `at` on(`pt`.`addressid` = `at`.`addressid`)) left join `contactperson` `ct` on(`ct`.`contactpersonid` = `bt`.`contactpersonid`)) left join `businesstype` `btt` on(`bt`.`btid` = `btt`.`btypeID`)) where `btt`.`description` = 'Kunde' */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `contactpersonview`
+--
+
+/*!50001 DROP VIEW IF EXISTS `contactpersonview`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `contactpersonview` AS select `contactperson`.`contactpersonid` AS `contactid`,`contactperson`.`salutation` AS `Anrede`,`contactperson`.`firstname` AS `Vorname`,`contactperson`.`lastname` AS `Nachname`,coalesce(`contactperson`.`phone`,'') AS `Telefon`,coalesce(`contactperson`.`mobilephone`,'') AS `Mobil`,coalesce(`contactperson`.`email`,'') AS `E-Mail`,coalesce(`contactperson`.`pos`,'') AS `Position`,case when `contactperson`.`priority` = 1 then 'JA' else 'NEIN' end AS `Entscheider` from `contactperson` order by `contactperson`.`firstname` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `customerinfo`
+--
+
+/*!50001 DROP VIEW IF EXISTS `customerinfo`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `customerinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`st`.`name`,'') AS `Straße`,coalesce(`hn`.`houseno`,'') AS `Hausnummer`,coalesce(lpad(`pt`.`postcode`,5,'0'),'') AS `PLZ`,coalesce(`at`.`city`,'') AS `Ort`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from (((((`business` `bt` left join `postcode` `pt` on(`bt`.`postcodeid` = `pt`.`postcodeid`)) left join `street` `st` on(`pt`.`postcodeid` = `st`.`postcodeid`)) left join `house` `hn` on(`st`.`strid` = `hn`.`strid`)) left join `address` `at` on(`pt`.`addressid` = `at`.`addressid`)) left join `contactperson` `ct` on(`bt`.`contactpersonid` = `ct`.`contactpersonid`)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `employeesview`
+--
+
+/*!50001 DROP VIEW IF EXISTS `employeesview`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `employeesview` AS select `emp`.`firstname` AS `firstname`,`emp`.`lastname` AS `lastname`,`emp`.`salutation` AS `salutation`,`emp`.`mobilephone` AS `mobilephone`,`emp`.`phone` AS `phone`,`emp`.`email` AS `email`,`ad`.`city` AS `city`,`jo`.`description` AS `description` from (((`employee` `emp` left join `jobstatus` `jo` on(`emp`.`jobstatusid` = `jo`.`jobstatusid`)) left join `postcode` `po` on(`emp`.`postcodeid` = `po`.`postcodeid`)) left join `address` `ad` on(`po`.`addressid` = `ad`.`addressid`)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `finishedinfo`
+--
+
+/*!50001 DROP VIEW IF EXISTS `finishedinfo`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `finishedinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`st`.`name`,'') AS `Straße`,coalesce(`hn`.`houseno`,'') AS `Hausnummer`,coalesce(lpad(`pt`.`postcode`,5,'0'),'') AS `PLZ`,coalesce(`at`.`city`,'') AS `Ort`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from ((((((`business` `bt` left join `postcode` `pt` on(`bt`.`postcodeid` = `pt`.`postcodeid`)) left join `street` `st` on(`st`.`postcodeid` = `pt`.`postcodeid`)) left join `house` `hn` on(`hn`.`strid` = `st`.`strid`)) left join `address` `at` on(`pt`.`addressid` = `at`.`addressid`)) left join `contactperson` `ct` on(`ct`.`contactpersonid` = `bt`.`contactpersonid`)) left join `businesstype` `btt` on(`bt`.`btid` = `btt`.`btypeID`)) where `btt`.`description` = 'Erledigt' */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `interestedinfo`
+--
+
+/*!50001 DROP VIEW IF EXISTS `interestedinfo`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `interestedinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`st`.`name`,'') AS `Straße`,coalesce(`hn`.`houseno`,'') AS `Hausnummer`,coalesce(lpad(`pt`.`postcode`,5,'0'),'') AS `PLZ`,coalesce(`at`.`city`,'') AS `Ort`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from ((((((`business` `bt` left join `postcode` `pt` on(`bt`.`postcodeid` = `pt`.`postcodeid`)) left join `street` `st` on(`st`.`postcodeid` = `pt`.`postcodeid`)) left join `house` `hn` on(`hn`.`strid` = `st`.`strid`)) left join `address` `at` on(`pt`.`addressid` = `at`.`addressid`)) left join `contactperson` `ct` on(`ct`.`contactpersonid` = `bt`.`contactpersonid`)) left join `businesstype` `btt` on(`bt`.`btid` = `btt`.`btypeID`)) where `btt`.`description` = 'Interessent' */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `providerinfo`
+--
+
+/*!50001 DROP VIEW IF EXISTS `providerinfo`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `providerinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`st`.`name`,'') AS `Straße`,coalesce(`hn`.`houseno`,'') AS `Hausnummer`,coalesce(lpad(`pt`.`postcode`,5,'0'),'') AS `PLZ`,coalesce(`at`.`city`,'') AS `Ort`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from ((((((`business` `bt` left join `postcode` `pt` on(`bt`.`postcodeid` = `pt`.`postcodeid`)) left join `street` `st` on(`st`.`postcodeid` = `pt`.`postcodeid`)) left join `house` `hn` on(`hn`.`strid` = `st`.`strid`)) left join `address` `at` on(`pt`.`addressid` = `at`.`addressid`)) left join `contactperson` `ct` on(`ct`.`contactpersonid` = `bt`.`contactpersonid`)) left join `businesstype` `btt` on(`bt`.`btid` = `btt`.`btypeID`)) where `btt`.`description` = 'Lieferant' */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2025-01-21 9:06:59
diff --git a/doc/pyqcrm_er_diagram.png b/doc/pyqcrm_er_diagram.png
new file mode 100644
index 0000000..fadc504
Binary files /dev/null and b/doc/pyqcrm_er_diagram.png differ
diff --git a/lib/AddCity.py b/lib/AddCity.py
new file mode 100644
index 0000000..013d166
--- /dev/null
+++ b/lib/AddCity.py
@@ -0,0 +1,42 @@
+import json
+import mariadb
+from .DB.DbManager import DbManager
+
+
+
+class AddCity:
+ def __init__(self):
+ super().__init__()
+ self.__con = DbManager().getConnection()
+ if self.__con:
+ self.__cur = self.__con.cursor()
+
+ def addPlz(self):
+ count = 1
+ with open("/home/dstoppek/Downloads/postleitzahl.json", "r") as plz:
+ postcodes = json.load(plz)
+ try:
+ for i in postcodes:
+ test =i["plz_name"].split(",")
+ for town in test:
+
+ if "u.a" in town:
+ town = town[:-4]
+ town = town.strip()
+ if town:
+
+
+ print(f"PROCESSING {i['name']} {town}")
+ self.__cur.callproc("addZipCodes", (i["name"], town, count,))
+
+
+ #time.sleep(1)
+ # self.__cur.execute(f"INSERT INTO postcode(postcode, addressid) VALUE ({i["name"]}, {count})")
+ # count += 1
+
+ except mariadb.OperationalError as e:
+ print(f"Database Error: {e}")
+ finally:
+ self.__con.commit()
+ print("FINISHED")
+
diff --git a/main.py b/main.py
index bf84431..bb3f9dd 100644
--- a/main.py
+++ b/main.py
@@ -14,6 +14,8 @@ from lib.DB.AddressModel import AddressModel
from lib.DB.BTypeModel import BTypeModel
from lib.DB.ContactModel import ContactModel
+from lib.AddCity import AddCity
+
# [pyqcrm]
# program-name=""
@@ -87,7 +89,7 @@ if __name__ == "__main__":
engine.rootContext().setContextProperty("config", config)
engine.load(qml_file)
-
+ #AddCity().addPlz()
if not engine.rootObjects():
sys.exit(-1)
diff --git a/pyqcrm.pyproject b/pyqcrm.pyproject
index 32eac10..b987821 100644
--- a/pyqcrm.pyproject
+++ b/pyqcrm.pyproject
@@ -18,6 +18,7 @@
"lib/DB/BTypeModel.py",
"lib/DB/BTypeDAO.py",
"lib/DB/ContactDAO.py",
- "lib/DB/ContactModel.py"
+ "lib/DB/ContactModel.py",
+ "lib/AddCity.py"
]
}