diff --git a/.gitignore b/.gitignore index 32f65c5..8c18b09 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ # --- Datenbank-Dumps / Backups --------------------------------- *.sql *.sql.gz +# Ausnahme: das Schema selbst enthaelt keine Daten +!update/schema.sql *.dump *.bak diff --git a/update/schema.sql b/update/schema.sql new file mode 100644 index 0000000..060cbe5 --- /dev/null +++ b/update/schema.sql @@ -0,0 +1,672 @@ +-- Schema der Kundenverwaltung +-- +-- Maßgeblich ist die Datenbank der Instanz kunden; project und work +-- stammen aus ingwa, weil sie dort fehlen, der Code sie aber braucht. +-- Einheitlich utf8mb4. Die Anwendung verbindet sich im strikten sql_mode +-- (siehe db_verbinden() in incs/db.php). + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +CREATE TABLE `accesstype` ( + `id` tinyint(3) NOT NULL AUTO_INCREMENT, + `typ` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `addKey` ( + `accesskey` int(11) NOT NULL, + `datetime` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `adresse` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `partner_id` int(11) NOT NULL, + `anrede_id` int(5) NOT NULL, + `anrede2_id` int(5) NOT NULL, + `titel_id` int(5) NOT NULL, + `titel2_id` int(5) NOT NULL, + `vname` varchar(50) NOT NULL, + `vname2` varchar(50) NOT NULL, + `nname` varchar(50) NOT NULL, + `nname2` varchar(50) NOT NULL, + `firma` varchar(50) NOT NULL, + `str_id` int(11) NOT NULL, + `typ_id` int(2) NOT NULL, + `hnr` varchar(10) NOT NULL, + `zusatz` varchar(100) NOT NULL, + `gebdat` date NOT NULL, + `gebdat2` date NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_partner_titel_id` (`titel_id`), + KEY `fk_partner_anrede_id` (`anrede_id`), + KEY `fk_adr_str_id` (`str_id`), + KEY `fk_adr_typ_id` (`typ_id`), + KEY `onlyoneadresstype` (`partner_id`,`typ_id`), + CONSTRAINT `fk_adr_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_adr_str_id` FOREIGN KEY (`str_id`) REFERENCES `strasse` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_adr_typ_id` FOREIGN KEY (`typ_id`) REFERENCES `adresstyp` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_partner_anrede_id` FOREIGN KEY (`anrede_id`) REFERENCES `anrede` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_partner_titel_id` FOREIGN KEY (`titel_id`) REFERENCES `titel` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `adresstyp` ( + `id` int(2) NOT NULL AUTO_INCREMENT, + `typ` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `altlasten` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `vacationdays` int(11) NOT NULL, + `hours` decimal(8,4) NOT NULL, + `ma_id` int(11) NOT NULL, + `last_generated` date NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_altlasten_user_id` (`ma_id`), + CONSTRAINT `fk_altlasten_user_id` FOREIGN KEY (`ma_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `anrede` ( + `id` int(5) NOT NULL AUTO_INCREMENT, + `anrede` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `artikel` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bezeichn` varchar(150) NOT NULL, + `typ_id` int(5) NOT NULL, + `datetime` datetime NOT NULL, + `user_id` int(11) NOT NULL, + `einheit_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_artikel_typ_id` (`typ_id`), + KEY `fk_art_rech_einheit_id` (`einheit_id`), + KEY `fk_artikel_user_id` (`user_id`), + CONSTRAINT `fk_art_rech_einheit_id` FOREIGN KEY (`einheit_id`) REFERENCES `einheit` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_artikel_typ_id` FOREIGN KEY (`typ_id`) REFERENCES `artikeltyp` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_artikel_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `artikel_eigensch` ( + `art_id` int(11) NOT NULL, + `eig_id` int(11) NOT NULL, + `rech_id` int(11) NOT NULL, + `posnr` int(5) NOT NULL, + `artposnr` int(11) NOT NULL, + KEY `fk_art_eig_art_id` (`art_id`), + KEY `fk_art_eig_rech_id` (`rech_id`), + KEY `fk_art_eig_eig_id` (`eig_id`), + CONSTRAINT `fk_art_eig_art_id` FOREIGN KEY (`art_id`) REFERENCES `artikel` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_art_eig_eig_id` FOREIGN KEY (`eig_id`) REFERENCES `eigensch` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_art_eig_rech_id` FOREIGN KEY (`rech_id`) REFERENCES `rechnung` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `artikel_rechn` ( + `art_id` int(11) NOT NULL, + `rech_id` int(11) NOT NULL, + `posnr` int(5) NOT NULL, + `rabatt` int(3) NOT NULL, + `rabatttyp` int(2) NOT NULL, + `menge` decimal(6,3) NOT NULL, + `preis` decimal(10,2) DEFAULT NULL, + `angtyp` int(1) NOT NULL, + `artmwst` int(3) NOT NULL, + `wanr` varchar(100) NOT NULL, + `pagebreak` int(1) NOT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`id`), + KEY `fk_art_rech_art_id` (`art_id`), + KEY `fk_art_rech_rech_id` (`rech_id`), + CONSTRAINT `fk_art_rech_art_id` FOREIGN KEY (`art_id`) REFERENCES `artikel` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_art_rech_rech_id` FOREIGN KEY (`rech_id`) REFERENCES `rechnung` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `artikel_termin` ( + `art_id` int(11) NOT NULL, + `termin_id` int(11) NOT NULL, + `menge` decimal(6,3) NOT NULL, + `rabatt` int(3) NOT NULL, + `wanr` varchar(100) NOT NULL, + KEY `fk_art_term_art_id` (`art_id`), + KEY `fk_art_term_ang_id` (`termin_id`), + CONSTRAINT `fk_art_term_ang_id` FOREIGN KEY (`termin_id`) REFERENCES `termin` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_art_term_art_id` FOREIGN KEY (`art_id`) REFERENCES `artikel` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `artikelsks` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `rechnr` int(11) NOT NULL, + `bezeichn1` varchar(60) NOT NULL, + `bezeichn2` varchar(60) NOT NULL, + `menge` decimal(6,3) NOT NULL, + `beschr` text DEFAULT NULL, + `pos` tinyint(3) NOT NULL, + `rabatt` tinyint(3) NOT NULL, + `preis` decimal(10,2) DEFAULT NULL, + `datetime` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_artikelsks_rech_id` (`rechnr`), + CONSTRAINT `fk_artikelsks_rech_id` FOREIGN KEY (`rechnr`) REFERENCES `rechnung` (`rechnr`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `artikeltyp` ( + `id` int(5) NOT NULL AUTO_INCREMENT, + `bezeichn` varchar(50) NOT NULL, + `dropdown` tinyint(1) NOT NULL, + `list` tinyint(1) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `ausgabe` ( + `id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `partner_id` int(11) NOT NULL, + `rec_kto_id` int(11) NOT NULL, + `send_kto_id` int(11) NOT NULL, + `betr` decimal(12,3) NOT NULL, + `rabatt` decimal(4,1) NOT NULL, + KEY `fk_ausg_user_id` (`user_id`), + KEY `fk_ausg_reckto_id` (`rec_kto_id`), + KEY `fk_ausg_sendkto_id` (`send_kto_id`), + KEY `fk_ausg_partner_id` (`partner_id`), + CONSTRAINT `fk_ausg_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_ausg_reckto_id` FOREIGN KEY (`rec_kto_id`) REFERENCES `konto` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_ausg_sendkto_id` FOREIGN KEY (`send_kto_id`) REFERENCES `konto` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_ausg_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `bank` ( + `id` int(5) NOT NULL AUTO_INCREMENT, + `blz` varchar(30) NOT NULL, + `bank` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `buchungsKontos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `kto` int(11) NOT NULL, + `name` varchar(100) NOT NULL, + `descr` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `eigensch` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bezeichn` varchar(100) NOT NULL, + `wert` varchar(50) NOT NULL, + `einheit_id` int(11) NOT NULL, + `datetime` datetime NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_eigensch_user_id` (`user_id`), + KEY `fk_eigensch_einheit_id` (`einheit_id`), + CONSTRAINT `fk_eigensch_einheit_id` FOREIGN KEY (`einheit_id`) REFERENCES `einheit` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_eigensch_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `einheit` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `einheit` varchar(10) NOT NULL, + `si` tinyint(1) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `kontakt` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `partner_id` int(11) NOT NULL, + `typ_id` int(3) NOT NULL, + `kontakt` varchar(100) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_kontakt_typ_id` (`typ_id`), + KEY `fk_kontakt_partner_id` (`partner_id`), + CONSTRAINT `fk_kontakt_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_kontakt_typ_id` FOREIGN KEY (`typ_id`) REFERENCES `kontakttyp` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `kontakttyp` ( + `id` int(3) NOT NULL AUTO_INCREMENT, + `typ` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `konto` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bank_id` int(5) NOT NULL, + `partner_id` int(11) NOT NULL, + `inhaber` varchar(50) NOT NULL, + `iban` varchar(30) NOT NULL, + `swift` varchar(15) NOT NULL, + `ktonr` varchar(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_kto_partner_id` (`partner_id`), + KEY `fk_kto_bank_id` (`bank_id`), + CONSTRAINT `fk_kto_bank_id` FOREIGN KEY (`bank_id`) REFERENCES `bank` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_kto_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `land` ( + `id` int(5) NOT NULL AUTO_INCREMENT, + `land_short` varchar(5) NOT NULL, + `land` varchar(30) NOT NULL, + `datetime` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `typ_id` tinyint(3) NOT NULL, + `user_id` int(11) NOT NULL, + `datetime` datetime NOT NULL, + `qry` text NOT NULL, + `undo_qry` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `fk_log_accesstype_id` (`typ_id`), + KEY `fk_log_user_id` (`user_id`), + CONSTRAINT `fk_log_accesstype_id` FOREIGN KEY (`typ_id`) REFERENCES `accesstype` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_log_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `message` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `send_id` int(11) NOT NULL, + `rec_id` int(11) NOT NULL, + `head` varchar(50) DEFAULT NULL, + `msg` text NOT NULL, + `rd` tinyint(1) NOT NULL, + `datetime` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_msg_senduser_id` (`send_id`), + KEY `fk_msg_recuser_id` (`rec_id`), + CONSTRAINT `fk_msg_recuser_id` FOREIGN KEY (`rec_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_msg_senduser_id` FOREIGN KEY (`send_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `mwst` ( + `id` int(3) NOT NULL AUTO_INCREMENT, + `mwst` decimal(4,1) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `mykonto` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bank_id` int(5) NOT NULL, + `inhaber` varchar(50) NOT NULL, + `iban` varchar(30) NOT NULL, + `swift` varchar(15) NOT NULL, + `ktonr` varchar(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_mykto_bank_id` (`bank_id`), + CONSTRAINT `fk_mykto_bank_id` FOREIGN KEY (`bank_id`) REFERENCES `bank` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `notiz` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `partner_id` int(11) NOT NULL, + `notiz` text NOT NULL, + `datetime` datetime NOT NULL, + `color` varchar(6) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_notizen_partner_id` (`partner_id`), + CONSTRAINT `fk_notizen_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `ort` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ort` varchar(30) NOT NULL, + `ortsteil` varchar(30) NOT NULL, + `plz` varchar(15) NOT NULL, + `vwahl` varchar(15) NOT NULL, + `land_id` int(5) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_ort_land_id` (`land_id`), + CONSTRAINT `fk_ort_land_id` FOREIGN KEY (`land_id`) REFERENCES `land` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `partner` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime_new` datetime NOT NULL, + `datetime_lastchange` datetime NOT NULL, + `user_id` int(11) NOT NULL, + `typ_id` int(2) NOT NULL, + `zahlziel_id` int(3) NOT NULL, + `rabatt` int(3) NOT NULL, + `sks_not_checked` int(1) NOT NULL, + `sks_kdnotiz` text NOT NULL, + `updated_by` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_partner_typ_id` (`typ_id`), + KEY `fk_partner_zahlziel_id` (`zahlziel_id`), + KEY `fk_partner_user_id` (`user_id`), + CONSTRAINT `fk_partner_typ_id` FOREIGN KEY (`typ_id`) REFERENCES `partnertyp` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_partner_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_partner_zahlziel_id` FOREIGN KEY (`zahlziel_id`) REFERENCES `zahlziel` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `partnertyp` ( + `id` int(2) NOT NULL AUTO_INCREMENT, + `typ` varchar(15) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `passkeys` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `lastAuth` datetime NOT NULL, + `name` varchar(40) NOT NULL, + `userId` int(11) NOT NULL, + `credentialId` varchar(1023) NOT NULL, + `credentialPublicKey` text NOT NULL, + `signatureCounter` text NOT NULL, + `authKey` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `project` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(150) NOT NULL, + `name2` varchar(150) NOT NULL, + `partner_id` int(11) NOT NULL, + `changetime` datetime NOT NULL, + `changeuser` int(11) NOT NULL, + `datetime` datetime NOT NULL, + `intro` text NOT NULL, + `outro` text NOT NULL, + PRIMARY KEY (`id`), + KEY `fek_proj_partner_id` (`partner_id`), + CONSTRAINT `fek_proj_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `rechnr` ( + `rechnr` int(11) NOT NULL, + `typ_id` int(5) NOT NULL, + PRIMARY KEY (`rechnr`,`typ_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `rechnung` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `adressfields` varchar(12) NOT NULL, + `anrede1` varchar(150) NOT NULL, + `anrede2` varchar(150) NOT NULL, + `partner_id` int(11) NOT NULL, + `mwst_id` int(3) NOT NULL, + `user_id` int(11) NOT NULL, + `typ_id` int(2) NOT NULL, + `zahlziel_id` int(3) NOT NULL, + `adresse_id` int(11) NOT NULL, + `wahrung_id` tinyint(3) NOT NULL, + `changetime` datetime NOT NULL, + `changeuser` int(11) NOT NULL, + `datetime` datetime NOT NULL, + `rechnr` int(11) NOT NULL, + `rabatt` int(3) NOT NULL, + `rabattdesc` varchar(100) NOT NULL, + `intro` text NOT NULL, + `outro` text NOT NULL, + `sks` tinyint(1) NOT NULL, + `sub_mwst` int(1) NOT NULL, + `kommission` int(11) NOT NULL, + `lieferdatum` varchar(100) NOT NULL, + `adresserweiterung` varchar(100) NOT NULL, + `storno` int(1) NOT NULL DEFAULT 0, + `stornodate` datetime NOT NULL, + `buchungsKto_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fek_rech_partner_id` (`partner_id`), + KEY `fek_rech_adresse_id` (`adresse_id`), + KEY `fek_rech_mwst_id` (`mwst_id`), + KEY `fek_rech_user_id` (`user_id`), + KEY `fek_rech_zahlziehl_id` (`zahlziel_id`), + KEY `fek_rech_typ_id` (`typ_id`), + KEY `fek_rech_wahrung_id` (`wahrung_id`), + KEY `rechnr` (`rechnr`), + KEY `fk_rech_buchungsKto_id` (`buchungsKto_id`), + CONSTRAINT `fek_rech_adresse_id` FOREIGN KEY (`adresse_id`) REFERENCES `adresse` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fek_rech_mwst_id` FOREIGN KEY (`mwst_id`) REFERENCES `mwst` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fek_rech_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fek_rech_typ_id` FOREIGN KEY (`typ_id`) REFERENCES `rechtyp` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fek_rech_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fek_rech_wahrung_id` FOREIGN KEY (`wahrung_id`) REFERENCES `wahrung` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fek_rech_zahlziehl_id` FOREIGN KEY (`zahlziel_id`) REFERENCES `zahlziel` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_rech_buchungsKto_id` FOREIGN KEY (`buchungsKto_id`) REFERENCES `buchungsKontos` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `rechtyp` ( + `id` int(3) NOT NULL AUTO_INCREMENT, + `typ` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `setting` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `opt` varchar(10) NOT NULL, + `val` text NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_settings_user_id` (`user_id`), + CONSTRAINT `fk_settings_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `strasse` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `str` varchar(50) NOT NULL, + `ort_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_str_ort_id` (`ort_id`), + CONSTRAINT `fk_str_ort_id` FOREIGN KEY (`ort_id`) REFERENCES `ort` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `tel` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ort_id` int(11) NOT NULL, + `partner_id` int(11) NOT NULL, + `typ_id` int(3) NOT NULL, + `nr` varchar(20) NOT NULL, + `name` varchar(30) NOT NULL, + `adresse_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_tel_ort_id` (`ort_id`), + KEY `fk_tel_typ_id` (`typ_id`), + KEY `fk_tel_partner_id` (`partner_id`), + CONSTRAINT `fk_tel_ort_id` FOREIGN KEY (`ort_id`) REFERENCES `ort` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tel_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tel_typ_id` FOREIGN KEY (`typ_id`) REFERENCES `teltyp` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `teltyp` ( + `id` int(3) NOT NULL AUTO_INCREMENT, + `typ` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `termin` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `typ` int(2) NOT NULL, + `adresse_id` int(11) NOT NULL, + `text` text NOT NULL, + `changetime` datetime NOT NULL, + `done` tinyint(1) NOT NULL, + `user` int(11) NOT NULL, + `changeuser` int(11) NOT NULL, + `datetime` datetime NOT NULL, + `termtime` datetime NOT NULL, + `termdauer` time NOT NULL, + `followed_by` int(11) NOT NULL, + `act_date` datetime NOT NULL, + `head` varchar(100) NOT NULL, + `main_id` int(11) NOT NULL, + `user2` int(11) NOT NULL, + `user3` int(11) NOT NULL, + `user4` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_termin_typ_termtyp_id` (`typ`), + CONSTRAINT `fk_termin_typ_termtyp_id` FOREIGN KEY (`typ`) REFERENCES `termtyp` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `termtyp` ( + `id` int(2) NOT NULL AUTO_INCREMENT, + `typ` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `titel` ( + `id` int(5) NOT NULL AUTO_INCREMENT, + `titel` varchar(50) NOT NULL, + `datetime` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `tmp_artikel` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bezeichn` varchar(150) NOT NULL, + `typ_id` int(5) NOT NULL, + `einheit_id` int(11) NOT NULL, + `preis` decimal(10,2) DEFAULT NULL, + `datetime` datetime NOT NULL, + `posnr` int(5) NOT NULL, + `rabatt` int(3) NOT NULL, + `rabatttyp` int(2) NOT NULL, + `menge` decimal(6,3) NOT NULL, + `angtyp` int(1) NOT NULL, + `mwst_id` int(3) NOT NULL, + `rech_id` int(11) NOT NULL, + `wanr` varchar(100) NOT NULL, + `pagebreak` int(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_tmp_artikel_typ_id` (`typ_id`), + KEY `fk_tmp_art_mwst_id` (`mwst_id`), + KEY `fk_tmp_art_rech_id` (`rech_id`), + KEY `fk_tmp_artikel_einheit_id` (`einheit_id`), + CONSTRAINT `fk_tmp_art_mwst_id` FOREIGN KEY (`mwst_id`) REFERENCES `mwst` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_art_rech_id` FOREIGN KEY (`rech_id`) REFERENCES `tmp_rechnung` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_artikel_einheit_id` FOREIGN KEY (`einheit_id`) REFERENCES `einheit` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_artikel_typ_id` FOREIGN KEY (`typ_id`) REFERENCES `artikeltyp` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `tmp_eigensch` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bezeichn` varchar(100) NOT NULL, + `wert` varchar(50) NOT NULL, + `einheit_id` int(11) NOT NULL, + `art_id` int(11) NOT NULL, + `datetime` datetime NOT NULL, + `posnr` int(5) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_tmp_eigensch_art_id` (`art_id`), + KEY `fk_tmp_eigensch_einheit_id` (`einheit_id`), + CONSTRAINT `fk_tmp_eigensch_art_id` FOREIGN KEY (`art_id`) REFERENCES `tmp_artikel` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_eigensch_einheit_id` FOREIGN KEY (`einheit_id`) REFERENCES `einheit` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `tmp_rechnung` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `adressfields` varchar(12) NOT NULL, + `partner_id` int(11) NOT NULL, + `anrede1` varchar(150) NOT NULL, + `anrede2` varchar(150) NOT NULL, + `mwst_id` int(3) NOT NULL, + `user_id` int(11) NOT NULL, + `rechnr` int(11) NOT NULL, + `typ_id` int(2) NOT NULL, + `zahlziel_id` int(3) NOT NULL, + `adresse_id` int(11) NOT NULL, + `wahrung_id` tinyint(3) NOT NULL, + `datetime` datetime NOT NULL, + `rabatt` int(3) NOT NULL, + `rabattdesc` varchar(100) NOT NULL, + `intro` text NOT NULL, + `outro` text NOT NULL, + `sub_mwst` int(1) NOT NULL, + `kommission` int(11) NOT NULL, + `lieferdatum` varchar(100) NOT NULL, + `adresserweiterung` varchar(100) NOT NULL, + `storno` int(1) NOT NULL DEFAULT 0, + `buchungsKto_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_tmp_rech_partner_id` (`partner_id`), + KEY `fk_tmp_rech_adresse_id` (`adresse_id`), + KEY `fk_tmp_rech_mwst_id` (`mwst_id`), + KEY `fk_tmp_rech_user_id` (`user_id`), + KEY `fk_tmp_rech_zahlziehl_id` (`zahlziel_id`), + KEY `fk_tmp_rech_typ_id` (`typ_id`), + KEY `fk_tmp_rech_wahrung_id` (`wahrung_id`), + KEY `fek_rech_buchungsKto_id` (`buchungsKto_id`), + CONSTRAINT `fek_rech_buchungsKto_id` FOREIGN KEY (`buchungsKto_id`) REFERENCES `buchungsKontos` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_rech_adresse_id` FOREIGN KEY (`adresse_id`) REFERENCES `adresse` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_rech_mwst_id` FOREIGN KEY (`mwst_id`) REFERENCES `mwst` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_rech_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_rech_typ_id` FOREIGN KEY (`typ_id`) REFERENCES `rechtyp` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_rech_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_rech_wahrung_id` FOREIGN KEY (`wahrung_id`) REFERENCES `wahrung` (`id`) ON UPDATE CASCADE, + CONSTRAINT `fk_tmp_rech_zahlziehl_id` FOREIGN KEY (`zahlziel_id`) REFERENCES `zahlziel` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `user` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `vname` varchar(50) NOT NULL, + `nname` varchar(50) NOT NULL, + `nick` varchar(50) NOT NULL, + `pass` varchar(150) NOT NULL, + `mail` varchar(50) NOT NULL, + `salt` varchar(50) NOT NULL, + `tel_priv` varchar(30) NOT NULL, + `tel_gesch` varchar(30) NOT NULL, + `tel_mobil` varchar(30) NOT NULL, + `lastlogin` datetime NOT NULL, + `numlogins` int(11) NOT NULL, + `logedout` tinyint(2) NOT NULL, + `wrongpw` tinyint(3) NOT NULL, + `notizen` text NOT NULL, + `blocked` tinyint(1) NOT NULL, + `rights` varchar(6) NOT NULL, + `weekly_hours` int(11) NOT NULL, + `rfid` varchar(10) NOT NULL, + `color` varchar(8) NOT NULL, + `weekhours` decimal(6,3) NOT NULL, + `vacationdays` int(4) NOT NULL, + `sahours` decimal(3,1) NOT NULL, + `timelog_start` date NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `nick` (`nick`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `wahrung` ( + `id` tinyint(3) NOT NULL AUTO_INCREMENT, + `wahrung` varchar(20) NOT NULL, + `kurs` decimal(8,4) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `work` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bezeichn` varchar(150) NOT NULL, + `bezeichn2` varchar(150) NOT NULL, + `project_id` int(11) NOT NULL, + `changetime` datetime NOT NULL, + `changeuser` int(11) NOT NULL, + `datetime` datetime NOT NULL, + `std` decimal(6,3) NOT NULL, + `rechn` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `fek_work_partner_id` (`project_id`), + CONSTRAINT `fek_work_partner_id` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `zahlziel` ( + `id` int(3) NOT NULL AUTO_INCREMENT, + `ziel` varchar(150) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `zeiten` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ma_id` int(11) NOT NULL, + `kommen` datetime NOT NULL, + `gehen` datetime NOT NULL, + `pause_mins` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_zeiten_user_id` (`ma_id`), + CONSTRAINT `fk_zeiten_user_id` FOREIGN KEY (`ma_id`) REFERENCES `user` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +SET FOREIGN_KEY_CHECKS = 1;