blob: 1c1531a4dd4ec1b2a6484b881c057052ac995385 [file] [log] [blame]

-- ---------------------------------------------
-- TABLE VERSION
-- ---------------------------------------------
-- TABLE: PUBLIC.REF_VERSION
CREATE TABLE VERSION
(
"ID" INTEGER NOT NULL,
"VERSION" VARCHAR2(500) NOT NULL,
CONSTRAINT VERSION_PKEY PRIMARY KEY ("ID")
);
INSERT INTO VERSION (ID, VERSION) VALUES ( 1, '1.0-ORA' );
-- ---------------------------------------------
-- TABLE TBL_CONTACT
-- ---------------------------------------------
CREATE SEQUENCE TBL_CONTACT_ID_SEQ
INCREMENT BY 1;
CREATE TABLE TBL_CONTACT
(
"ID" INTEGER NOT NULL,
"UUID" RAW(16) NOT NULL,
"CONTACT_TYPE" VARCHAR2(3),
"NOTE" VARCHAR2(255),
"ANONYMIZED" NUMBER,
CONSTRAINT TBL_CONTACT_PKEY PRIMARY KEY ("ID")
);
CREATE OR REPLACE TRIGGER "TBL_CONTACT_BIR"
BEFORE INSERT ON TBL_CONTACT
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT TBL_CONTACT_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "TBL_CONTACT_BIR" ENABLE;
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('ae3f2ec1-ccc5-4269-a48f-dd40e37fa14e','-','')), '4CO', 'company 1 (id=1)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('fc7f598b-0d51-46bb-9563-99851fe6a3ad','-','')), '4CO', 'company 2 (id=2)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('556b91be-6d57-432f-93ed-65604dd6e5cd','-','')), '1CP', 'contact person 1 (id=3)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('116380e3-25c5-4179-b40a-8abebe10fe07','-','')), '1CP', 'contact person 2 (id=4)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('7782179b-fb79-4370-8f71-f4c71470d006','-','')), '3IP', 'internal person 1 (id=5)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('8963aa38-d021-4dc9-bd70-d3734ccd20c4','-','')), '3IP', 'internal person 2 (id=6)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('c862d604-5766-43d6-a7e8-a4bac2bd01e1','-','')), '2EP', 'external person 1 (id=7)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('fa3d981b-a7d6-4965-a623-cdbc69404153','-','')), '2EP', 'external person 2 (id=8)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('ceba21e9-e685-483b-840e-ad167860a696','-','')), '4CO', 'anonymous company A (id=9)', 1 );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('7889c814-9752-4e4e-a9fe-b46f36a38ccd','-','')), '4CO', 'anonymous company B (id=10)', 1 );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('618a01a3-f348-44cc-9ddd-c9df946b0212','-','')), '1CP', 'anoymous contact person A1 (id=11)', 1 );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('4ed82474-3878-457a-baef-c28b8e486f25','-','')), '1CP', 'anoymous contact persion A2 (id=12)', 1 );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('8fe41b90-d10c-4a70-8fde-0990286ad3c6','-','')), '3IP', 'internal person 3 (id=13)', null );
INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('ab804610-d6a4-4803-a4a1-3f6cb742b2a4','-','')), '3IP', 'internal person 4 (id=14)', null );
CREATE UNIQUE INDEX IDX_CNTCT_UUID ON TBL_CONTACT (UUID);
CREATE INDEX IDX_CNTCT_ANONYM ON TBL_CONTACT (ANONYMIZED);
-- ---------------------------------------------
-- TABLE REF_ADDRESS_TYPE
-- ---------------------------------------------
CREATE SEQUENCE REF_ADDRESS_TYPE_ID_SEQ
INCREMENT BY 1;
CREATE TABLE REF_ADDRESS_TYPE
(
"ID" INTEGER NOT NULL,
"UUID" RAW(16) NOT NULL,
"TYPE" VARCHAR2(30),
"DESCRIPTION" VARCHAR2(255),
CONSTRAINT REF_ADDRESS_TYPE_PKEY PRIMARY KEY ("ID")
);
CREATE OR REPLACE TRIGGER "REF_ADDRESS_TYPE_BIR"
BEFORE INSERT ON REF_ADDRESS_TYPE
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT REF_ADDRESS_TYPE_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "REF_ADDRESS_TYPE_BIR" ENABLE;
CREATE UNIQUE INDEX IDX_REF_ADDRESS_TYPE_UUID ON REF_ADDRESS_TYPE ( UUID ASC );
INSERT INTO REF_ADDRESS_TYPE ("UUID", "TYPE", "DESCRIPTION") VALUES ( hextoraw(replace('3802e681-9396-434e-b19c-5fedcec40ba7','-','')), 'Geschäftsadresse', 'Adresse des Hauptfirmensitzes' );
INSERT INTO REF_ADDRESS_TYPE ("UUID", "TYPE", "DESCRIPTION") VALUES ( hextoraw(replace('f43ed6ac-9e7a-40f6-acc9-ec6b73eebf79','-','')), 'Privatadresse', 'private Anschrift' );
INSERT INTO REF_ADDRESS_TYPE ("UUID", "TYPE", "DESCRIPTION") VALUES ( hextoraw(replace('70fd0811-f674-4f3a-96a7-7ae29fc95188','-','')), 'Lieferadresse', 'Adresse für Lieferungen' );
-- ---------------------------------------------
-- TABLE REF_PERSON_TYPE
-- ---------------------------------------------
CREATE SEQUENCE REF_PERSON_TYPE_ID_SEQ
INCREMENT BY 1;
CREATE TABLE REF_PERSON_TYPE
(
"ID" INTEGER NOT NULL,
"UUID" RAW(16) NOT NULL,
"TYPE" VARCHAR2(30),
"DESCRIPTION" VARCHAR2(255),
CONSTRAINT REF_PERSON_TYPE_PKEY PRIMARY KEY (ID)
);
CREATE OR REPLACE TRIGGER "REF_PERSON_TYPE_BIR"
BEFORE INSERT ON REF_PERSON_TYPE
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT REF_PERSON_TYPE_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "REF_PERSON_TYPE_BIR" ENABLE;
CREATE UNIQUE INDEX IDX_REF_PERSON_TYPE_UUID ON REF_PERSON_TYPE ( UUID ASC );
INSERT INTO REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('47ce68b7-6d44-453e-b421-19020fd791b5','-','')), 'Rechtsanwalt', '' );
INSERT INTO REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('a7522c72-14d0-4e9d-afe3-bfcb3ffbec10','-','')), 'Geschäftsführer', '' );
INSERT INTO REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('2eb4885e-7363-4918-90ed-b7d5d84cfd3f','-','')), 'Rechnungsempfänger', 'Person, der Rechnungen zukommen' );
-- ---------------------------------------------
-- TABLE REF_COMMUNICATION_TYPE
-- ---------------------------------------------
CREATE SEQUENCE REF_COMMUNICATION_TYPE_ID_SEQ
INCREMENT BY 1;
CREATE TABLE REF_COMMUNICATION_TYPE
(
"ID" INTEGER NOT NULL,
"UUID" RAW(16) NOT NULL,
"TYPE" VARCHAR2(30),
"DESCRIPTION" VARCHAR2(255),
"TYPE_EMAIL" NUMBER,
CONSTRAINT REF_COMMUNICATION_TYPE_PKEY PRIMARY KEY (ID)
);
CREATE OR REPLACE TRIGGER "REF_COMMUNICATION_TYPE_BIR"
BEFORE INSERT ON REF_COMMUNICATION_TYPE
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT REF_COMMUNICATION_TYPE_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "REF_COMMUNICATION_TYPE_BIR" ENABLE;
CREATE UNIQUE INDEX idx_ref_comm_type_uuid ON REF_COMMUNICATION_TYPE ( UUID ASC );
INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('4757ca3a-72c2-4f13-a2f6-ce092e3eadf4','-','')), 'E-Mail', 'E-Mail Adresse', 1 );
INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('77028572-ff57-4c1d-999a-78fa3fcbc1cd','-','')), 'Festnetz', '', 0 );
INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('f7d5b343-00c2-4d7f-8e03-009aad3d90f7','-','')), 'Mobil', '', 0 );
INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('2bfe40f9-c4eb-4d2e-855f-6b0883912846','-','')), 'Fax', '', 0 );
INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('d00d1a61-c8e7-43b2-959f-66e986731441','-','')), 'WhatsApp', '', 0 );
-- ---------------------------------------------
-- TABLE REF_SALUTATION
-- ---------------------------------------------
CREATE SEQUENCE REF_SALUTATION_ID_SEQ
INCREMENT BY 1;
CREATE TABLE REF_SALUTATION
(
"ID" INTEGER NOT NULL,
"UUID" RAW(16) NOT NULL,
"TYPE" VARCHAR2(30),
"DESCRIPTION" VARCHAR2(255),
CONSTRAINT REF_SALUTATION_PKEY PRIMARY KEY (ID)
);
CREATE OR REPLACE TRIGGER "REF_SALUTATION_BIR"
BEFORE INSERT ON REF_SALUTATION
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT REF_SALUTATION_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "REF_SALUTATION_BIR" ENABLE;
CREATE UNIQUE INDEX idx_ref_salutation_uuid ON REF_SALUTATION ( UUID ASC );
INSERT INTO REF_SALUTATION (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('90119f18-5562-425d-9a36-3dd58ea125e5','-','')), 'Herr', 'Anrede männlich' );
INSERT INTO REF_SALUTATION (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('4e873baa-e4f5-4585-8b16-2db8fac66538','-','')), 'Frau', 'Anrede weiblich' );
-- ---------------------------------------------
-- TABLE TBL_ADDRESS
-- ---------------------------------------------
CREATE SEQUENCE TBL_ADDRESS_ID_SEQ
INCREMENT BY 1;
CREATE TABLE TBL_ADDRESS
(
"ID" INTEGER NOT NULL,
"UUID" RAW(16) NOT NULL,
"FK_CONTACT_ID" INTEGER NOT NULL,
"FK_ADDRESS_TYPE" INTEGER,
"IS_MAIN_ADDRESS" NUMBER,
"POSTCODE" VARCHAR2(30),
"COMMUNITY" VARCHAR2(255),
"COMMUNITY_SUFFIX" VARCHAR2(255),
"STREET" VARCHAR2(255),
"HOUSENUMBER" VARCHAR2(30),
"WGS_84_ZONE" VARCHAR2(255),
"LATITUDE" VARCHAR2(255),
"LONGITUDE" VARCHAR2(255),
"URL_MAP" VARCHAR2(255),
"NOTE" VARCHAR2(255),
CONSTRAINT TBL_ADDRESS_PKEY PRIMARY KEY (ID),
CONSTRAINT TBL_ADDRESS__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
REFERENCES TBL_CONTACT(ID),
CONSTRAINT TBL_ADDRESS_ADDR_TYPE_FKEY FOREIGN KEY (FK_ADDRESS_TYPE)
REFERENCES REF_ADDRESS_TYPE (ID)
);
CREATE OR REPLACE TRIGGER "TBL_ADDRESS_BIR"
BEFORE INSERT ON TBL_ADDRESS
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT TBL_ADDRESS_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "TBL_ADDRESS_BIR" ENABLE;
CREATE UNIQUE INDEX idx_tbl_address_uuid ON TBL_ADDRESS ( UUID ASC );
INSERT INTO TBL_ADDRESS (UUID, FK_CONTACT_ID, FK_ADDRESS_TYPE, IS_MAIN_ADDRESS, POSTCODE, COMMUNITY, COMMUNITY_SUFFIX, STREET, HOUSENUMBER, WGS_84_ZONE, LATITUDE, LONGITUDE, URL_MAP, NOTE) VALUES ( hextoraw(replace('37e800fe-64f0-4834-8b83-8453cbb936a5','-','')), 2, 1, 1, '12345', 'Heringsdorf','', 'Flunderweg', '5', '', '53 NL', '3 WB','www.xyz', 'nur über Seeweg erreichbar');
INSERT INTO TBL_ADDRESS (UUID, FK_CONTACT_ID, FK_ADDRESS_TYPE, IS_MAIN_ADDRESS, POSTCODE, COMMUNITY, COMMUNITY_SUFFIX, STREET, HOUSENUMBER, WGS_84_ZONE, LATITUDE, LONGITUDE, URL_MAP, NOTE) VALUES ( hextoraw(replace('8a1202ae-2532-474e-8367-a1f0e13e9fbd','-','')), 1, 2, 0, '67890', 'Stralsund','', 'Schollendamm', '18', '', '53 N', '2 WB','www.xyz', 'Hochwassergefahr');
-- ---------------------------------------------
-- TABLE TBL_COMMUNICATION
-- ---------------------------------------------
CREATE SEQUENCE TBL_COMMUNICATION_ID_SEQ
INCREMENT BY 1;
CREATE TABLE TBL_COMMUNICATION
(
"ID" INTEGER NOT NULL,
"UUID" RAW(16) NOT NULL,
"FK_CONTACT_ID" INTEGER NOT NULL,
"FK_COMMUNICATION_TYPE" INTEGER,
"COMMUNICATION_DATA" VARCHAR2(1024),
"NOTE" VARCHAR2(255),
CONSTRAINT TBL_COMMUNICATION_PKEY PRIMARY KEY (ID),
CONSTRAINT TBL_COMM__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
REFERENCES TBL_CONTACT(ID),
CONSTRAINT TBL_COMM__COMM_TYPE_ID_FKEY FOREIGN KEY (FK_COMMUNICATION_TYPE)
REFERENCES REF_COMMUNICATION_TYPE (ID)
);
CREATE OR REPLACE TRIGGER "TBL_COMMUNICATION_BIR"
BEFORE INSERT ON TBL_COMMUNICATION
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT TBL_COMMUNICATION_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "TBL_COMMUNICATION_BIR" ENABLE;
CREATE UNIQUE INDEX idx_tbl_communication_uuid ON TBL_COMMUNICATION ( UUID ASC );
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('25f6d7cc-b168-4dd5-a36d-6f14b2f956e9','-','')), 2, 2, 'bitte melden Sie sich bei uns', 'Info...');
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('a5fa380e-8f33-4ea7-9416-e03d11b91cae','-','')), 1, 3, 'bitte melden zwecks Terminabstimmung', 'Info...');
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('c0dcef80-ca07-48b7-a3ed-2c99c4388928','-','')), 1, 1, 'info@bigbang.com', 'Info...');
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('d19d9e10-d2dd-4383-84ec-2fe96421c0a3','-','')), 2, 1, 'info@pharmapeekltd.com', 'Info...');
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('234b63e4-d8db-48ab-899f-0320903c01af','-','')), 3, 1, 'reinbold.tab@pharmapeek.com', 'Info...');
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('11e25c02-de00-430d-b6cd-f02f7c60e026','-','')), 5, 1, 'PaulineF@gmx.net', 'Info...');
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('9ca29c3b-e189-4ce9-9401-15001c769627','-','')), 6, 1, 'mo@gmail.com', 'Info...');
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('05505b1a-61df-45c0-b006-64165cbadfa2','-','')), 7, 1, 'MGruebelSport@fogger.mil', 'Info...');
INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('b52dabaf-d156-4fd0-a07c-510673112a15','-','')), 8, 1, 'Mini.osterbrink@yahoo.ie', 'Info...');
-- ---------------------------------------------
-- TABLE TBL_COMPANY
-- ---------------------------------------------
CREATE SEQUENCE TBL_COMPANY_ID_SEQ
INCREMENT BY 1;
CREATE TABLE TBL_COMPANY
(
"ID" INTEGER NOT NULL,
"COMPANY_NAME" VARCHAR2(255),
"COMPANY_TYPE" VARCHAR2(30),
"HR_NUMBER" VARCHAR2(255),
"FK_CONTACT_ID" INTEGER NOT NULL,
CONSTRAINT TBL_COMPANY_PKEY PRIMARY KEY (id),
CONSTRAINT TBL_COMPANY__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
REFERENCES TBL_CONTACT(ID)
);
CREATE OR REPLACE TRIGGER "TBL_COMPANY_BIR"
BEFORE INSERT ON TBL_COMPANY
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT TBL_COMPANY_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "TBL_COMPANY_BIR" ENABLE;
INSERT INTO TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( 'BigBang Logistic', 'Logistik', '123', 1 );
INSERT INTO TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( 'Pharma Peek', 'Pharma', '345', 2 );
INSERT INTO TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( '***', '***', null, 9 );
INSERT INTO TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( '***', '***', null, 10 );
-- ---------------------------------------------
-- TABLE TBL_CONTACT_PERSON
-- ---------------------------------------------
CREATE SEQUENCE TBL_CONTACT_PERSON_ID_SEQ
INCREMENT BY 1;
CREATE TABLE TBL_CONTACT_PERSON
(
"ID" INTEGER NOT NULL,
"FIRST_NAME" VARCHAR2(255),
"LAST_NAME" VARCHAR2(255),
"TITLE" VARCHAR2(255),
"FK_SALUTATION_ID" INTEGER,
"FK_REF_PERSON_TYPE_ID" INTEGER NULL,
"FK_CONTACT_ID" INTEGER NOT NULL,
"FK_COMPANY_ID" INTEGER NOT NULL,
CONSTRAINT TBL_CONTACT_PERSON_PKEY PRIMARY KEY (ID),
CONSTRAINT TBL_CP__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
REFERENCES TBL_CONTACT (ID),
CONSTRAINT TBL_CP__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
REFERENCES REF_PERSON_TYPE (ID),
CONSTRAINT TBL_CP__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
REFERENCES REF_SALUTATION (ID),
CONSTRAINT TBL_CP__COMPANY_ID_FKEY FOREIGN KEY (FK_COMPANY_ID)
REFERENCES TBL_COMPANY (ID)
);
CREATE OR REPLACE TRIGGER "TBL_CONTACT_PERSON_BIR"
BEFORE INSERT ON TBL_CONTACT_PERSON
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT TBL_CONTACT_PERSON_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "TBL_CONTACT_PERSON_BIR" ENABLE;
INSERT INTO TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( 'Tabea', 'Reinebold', 'Dr.', 2, 1, 3, 2);
INSERT INTO TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( 'Jan', 'Wacker', '', 1, 1, 4, 2);
INSERT INTO TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( '***', '***', null, null, null, 11, 3);
INSERT INTO TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( '***', '***', null, null, null, 12, 2);
-- ---------------------------------------------
-- TABLE TBL_EXTERNAL_PERSON
-- ---------------------------------------------
CREATE SEQUENCE TBL_EXTERNAL_PERSON_ID_SEQ
INCREMENT BY 1;
CREATE TABLE TBL_EXTERNAL_PERSON
(
"ID" INTEGER NOT NULL,
"FIRST_NAME" VARCHAR2(255),
"LAST_NAME" VARCHAR2(255),
"TITLE" VARCHAR2(255),
"FK_SALUTATION_ID" INTEGER,
"FK_REF_PERSON_TYPE_ID" INTEGER,
"FK_CONTACT_ID" INTEGER NOT NULL,
CONSTRAINT TBL_EXTERNAL_PERSON_PKEY PRIMARY KEY (id),
CONSTRAINT TBL_EP__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
REFERENCES TBL_CONTACT (ID),
CONSTRAINT TBL_EP__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
REFERENCES REF_SALUTATION (ID),
CONSTRAINT TBL_EP__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
REFERENCES REF_PERSON_TYPE (ID)
);
CREATE OR REPLACE TRIGGER "TBL_EXTERNAL_PERSON_BIR"
BEFORE INSERT ON TBL_EXTERNAL_PERSON
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT TBL_EXTERNAL_PERSON_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "TBL_EXTERNAL_PERSON_BIR" ENABLE;
INSERT INTO TBL_EXTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID) VALUES ( 'Monica', 'Grübel', 'Dipl.-Sportlehrerin', 2, 1, 7);
INSERT INTO TBL_EXTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID) VALUES ( 'Maurice', 'Fürstenberg', 'B.A.', 2, 2, 8);
-- ---------------------------------------------
-- TABLE TBL_INTERNAL_PERSON
-- ---------------------------------------------
CREATE SEQUENCE TBL_INTERNAL_PERSON_ID_SEQ
INCREMENT BY 1;
CREATE TABLE TBL_INTERNAL_PERSON
(
"ID" INTEGER NOT NULL,
"FIRST_NAME" VARCHAR2(255),
"LAST_NAME" VARCHAR2(255),
"TITLE" VARCHAR2(255),
"FK_SALUTATION_ID" INTEGER,
"FK_REF_PERSON_TYPE_ID" INTEGER,
"DEPARTMENT" VARCHAR2(255),
"UID_IDENT" VARCHAR2(255),
"USER_REF" VARCHAR2(255),
"FK_CONTACT_ID" INTEGER NOT NULL,
CONSTRAINT TBL_INTERNAL_PERSON_PKEY PRIMARY KEY (ID),
CONSTRAINT TBL_IP__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
REFERENCES TBL_CONTACT (ID),
CONSTRAINT TBL_IP__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
REFERENCES REF_SALUTATION (ID),
CONSTRAINT TBL_IP__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
REFERENCES REF_PERSON_TYPE (ID)
);
CREATE OR REPLACE TRIGGER "TBL_INTERNAL_PERSON_BIR"
BEFORE INSERT ON TBL_INTERNAL_PERSON
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT TBL_INTERNAL_PERSON_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "TBL_INTERNAL_PERSON_BIR" ENABLE;
CREATE UNIQUE INDEX idx_tbl_internal_person_uid ON TBL_INTERNAL_PERSON ( "UID_IDENT" ASC );
CREATE UNIQUE INDEX idx_tbl_ip_user_ref ON TBL_INTERNAL_PERSON ( "USER_REF" ASC );
INSERT INTO TBL_INTERNAL_PERSON ("FIRST_NAME", "LAST_NAME", "TITLE", "FK_SALUTATION_ID", "FK_REF_PERSON_TYPE_ID", "DEPARTMENT", "UID_IDENT", "USER_REF", "FK_CONTACT_ID") VALUES ( 'Pauline', 'Freudenberg', 'B.Sc.', 1, 1,'Abteilung Rechnungsstellung', '66cd78c3-6716-4ab3-b834-a199fc796b88', 'PFREUD', 5);
INSERT INTO TBL_INTERNAL_PERSON ("FIRST_NAME", "LAST_NAME", "TITLE", "FK_SALUTATION_ID", "FK_REF_PERSON_TYPE_ID", "DEPARTMENT", "UID_IDENT", "USER_REF", "FK_CONTACT_ID") VALUES ( 'Bernhardt', 'Iffland', '', 2, 2,'Kreativ', '4124e4e7-3488-4492-bf39-75e6a23a1c1a', 'BIFFL', 6);
INSERT INTO TBL_INTERNAL_PERSON ("FIRST_NAME", "LAST_NAME", "TITLE", "FK_SALUTATION_ID", "FK_REF_PERSON_TYPE_ID", "DEPARTMENT", "UID_IDENT", "USER_REF", "FK_CONTACT_ID") VALUES ( 'Horatio', 'Hornblower', 'Capt.', 1, 2,'Royal Navy', 'hhornblo', 'HORNB', 13);
INSERT INTO TBL_INTERNAL_PERSON ("FIRST_NAME", "LAST_NAME", "TITLE", "FK_SALUTATION_ID", "FK_REF_PERSON_TYPE_ID", "DEPARTMENT", "UID_IDENT", "USER_REF", "FK_CONTACT_ID") VALUES ( 'Cornelius', 'Buckley', '', 1, 2,'Royal Navy', null, 'BUCKC', 14);
-- ---------------------------------------------
-- TABLE TBL_ASSIGNMENT_MODUL_CONTACT
-- ---------------------------------------------
CREATE SEQUENCE TBL_ASSIGN_MODUL_CNTCT_ID_SEQ
INCREMENT BY 1;
CREATE TABLE TBL_ASSIGNMENT_MODUL_CONTACT
(
"ID" INTEGER NOT NULL,
"UUID" RAW(16) NOT NULL,
"FK_CONTACT_ID" INTEGER NOT NULL,
"MODUL_NAME" VARCHAR2(255),
"ASSIGNMENT_DATE" timestamp,
"EXPIRING_DATE" timestamp,
"DELETION_LOCK_UNTIL" timestamp,
"ASSIGNMENT_NOTE" VARCHAR2(2048),
CONSTRAINT TBL_ASS_MOD_CONTACT_PKEY PRIMARY KEY (id),
CONSTRAINT TBL_ASS_MOD_CONTACT_ID_FKEY FOREIGN KEY (fk_contact_id)
REFERENCES TBL_CONTACT (ID)
);
CREATE OR REPLACE TRIGGER "TBL_ASSIGN_MODUL_CNTCT_BIR"
BEFORE INSERT ON TBL_ASSIGNMENT_MODUL_CONTACT
FOR EACH ROW
WHEN (NEW."ID" IS NULL) BEGIN
SELECT TBL_ASSIGN_MODUL_CNTCT_ID_SEQ.NEXTVAL
INTO :NEW."ID"
FROM DUAL;
END;
/
ALTER TRIGGER "TBL_ASSIGN_MODUL_CNTCT_BIR" ENABLE;
INSERT INTO tbl_assignment_modul_contact(uuid, fk_contact_id, modul_name, assignment_date, expiring_date, deletion_lock_until, assignment_note) VALUES ( hextoraw(replace('dfc2979c-40e3-11ea-b77f-2e728ce88125','-','')), 1, 'Betriebstagebuch', CURRENT_TIMESTAMP, null, null, 'seit Januar zugeordnet');
INSERT INTO tbl_assignment_modul_contact(uuid, fk_contact_id, modul_name, assignment_date, expiring_date, deletion_lock_until, assignment_note) VALUES ( hextoraw(replace('4009bce2-40e5-11ea-b77f-2e728ce88125','-','')), 1, 'Störinfos', CURRENT_TIMESTAMP, null, null, 'seit Februar zugeordnet');
-- -------------------------------------
-- VIEWS -------------------------------
-- -------------------------------------
CREATE VIEW VW_GENERAL_CONTACT
AS
SELECT g.id,
c.uuid,
g.name,
c.contact_type,
g.fk_contact_id,
g.company_name,
g.company_type,
g.company_id,
g.fk_salutation_id,
g.fk_ref_person_type_id,
g.title,
g.first_name,
g.last_name,
g.department,
c.note,
c.anonymized
FROM tbl_contact c
JOIN (
SELECT company.id,
company_name as name,
fk_contact_id,
company_name,
company_type,
cntct.uuid as company_id,
null as fk_salutation_id,
null as fk_ref_person_type_id,
null as title,
null as first_name,
null as last_name,
null as department
FROM tbl_company company
JOIN tbl_contact cntct ON company.fk_contact_id = cntct.id
UNION
SELECT p.id,
COALESCE(p.last_name, '')
|| CASE WHEN LENGTH(COALESCE(p.last_name, '')) > 0 AND LENGTH(COALESCE(p.first_name, '')) > 0 THEN ', ' ELSE '' END
|| COALESCE(p.first_name,'') || ' [' || COALESCE(c.company_name, '') || ']' as name,
p.fk_contact_id,
c.company_name,
c.company_type,
company_contact.uuid as company_id,
p.fk_salutation_id,
p.fk_ref_person_type_id,
p.title,
p.first_name,
p.last_name,
null as department
FROM tbl_contact_person p
JOIN tbl_company c ON c.id = p.fk_company_id
JOIN tbl_contact company_contact ON c.fk_contact_id = company_contact.id
UNION
SELECT id,
COALESCE(last_name, '')
|| CASE WHEN LENGTH(COALESCE(last_name, '')) > 0 AND LENGTH(COALESCE(first_name, '')) > 0 THEN ', ' ELSE '' END
|| COALESCE(first_name, '') as name,
fk_contact_id,
null as company_name,
null as company_type,
null as company_id,
fk_salutation_id,
fk_ref_person_type_id,
title,
first_name,
last_name,
department
FROM tbl_internal_person
UNION
SELECT id,
COALESCE(last_name, '')
|| CASE WHEN LENGTH(COALESCE(last_name, '')) > 0 AND LENGTH(COALESCE(first_name, '')) > 0 THEN ', ' ELSE '' END
|| COALESCE(first_name, '') as name,
fk_contact_id,
null as company_name,
null as company_type,
null as company_id,
fk_salutation_id,
fk_ref_person_type_id,
title,
first_name,
last_name,
null as department
FROM tbl_external_person
) g
ON g.fk_contact_id = c.ID;
CREATE VIEW VW_DETAILED_CONTACT
AS
SELECT c.id,
c.uuid,
c.name,
c.contact_type,
c.fk_contact_id,
c.company_name,
c.company_type,
c.company_id,
c.anonymized,
s.uuid as salutation_uuid,
t.uuid as person_type_uuid,
c.title,
c.first_name,
c.last_name,
c.department,
c.note,
s.type as salutation_type,
t.type as person_type,
COALESCE(a.community, '') ||
CASE WHEN LENGTH(COALESCE(a.street, '') || COALESCE(a.housenumber, '')) = 0 THEN '' ELSE ', ' END ||
COALESCE(a.street, '') ||
CASE WHEN LENGTH(COALESCE(a.housenumber, '')) = 0 THEN '' ELSE ' ' END ||
COALESCE(a.housenumber, '') as main_address,
com.communication_data as email,
UPPER(
COALESCE(c.name, '') || '|@|'
|| COALESCE(company_name, '') || '|@|'
|| COALESCE(c.company_type, '') || '|@|'
|| COALESCE(c.title, '') || '|@|'
|| COALESCE(c.first_name, '') || '|@|'
|| COALESCE(c.last_name, '') || '|@|'
|| COALESCE(c.department, '') || '|@|'
|| COALESCE(c.note, '') || '|@|'
|| COALESCE(s.type, '') || '|@|'
|| COALESCE(t.type, '') || '|@|'
|| COALESCE(a.street, '') || '|@|'
|| COALESCE(a.housenumber, '') || '|@|'
|| COALESCE(a.community, '') || '|@|'
|| COALESCE(com.communication_data, '')
)as searchfield
FROM VW_GENERAL_CONTACT c
LEFT OUTER JOIN ref_salutation s ON c.fk_salutation_id = s.id
LEFT OUTER JOIN tbl_address a ON a.fk_contact_id = c.fk_contact_id and is_main_address = 1
LEFT OUTER JOIN ref_person_type t ON c.fk_ref_person_type_id = t.id
LEFT OUTER JOIN tbl_communication com ON (com.fk_contact_id = c.fk_contact_id )
LEFT OUTER JOIN ref_communication_type rct ON (rct.id = com.fk_communication_type)
WHERE COALESCE( rct.type_email, 1) = 1;