Files
qt5-legatus-legacy/Lts/Tests/DatabaseInitialisation/db_update_52567_20201211.sql
T
2026-08-13 18:33:10 +02:00

188 lines
11 KiB
SQL
Executable File

-- # $Id$
-- # $HeadURL$
-- # $Author$
-- DB Update Stand Rev 52567 - 11.12.2020
-- ASM (Global): certificate
-- REP (Exercise): charge administration report 2 new columns
-- EXM (Global): Unique key on exercise name (SVN 52447, 2020.11.11)
-- AES (Global + Exercise): functional areas
-- ASM (Global): certificate (SVN 52263, 28.10.2020)
ALTER TABLE asm.asm_asset ADD COLUMN certificate bytea;
-- REP (Exercise): 2 new columns in rep_charge_administration (SVN 52483 - 2020.11.18)
SET SEARCH_PATH TO ex_NN;
ALTER TABLE rep_charge_administration ADD COLUMN charge_planned INTEGER;
ALTER TABLE rep_charge_administration ADD COLUMN charge_available INTEGER;
-- EXM (Global): Unique key on exercise name (SVN 52447, 2020.11.11)
ALTER TABLE IF EXISTS exm.exercise DROP CONSTRAINT IF EXISTS UQ_exercise_name CASCADE;
ALTER TABLE exm.exercise ADD CONSTRAINT UQ_exercise_name UNIQUE (name);
--
-- NLDEVCTRL-682, AES: FunctionalAreaTypes, Achtung: Übungsabhängige Änderungen unten dabei! - 03.11.2020
-- Begin
--
-- GLOBAL
-- Create user ets_aes
SELECT create_user_if_not_exists('ets_aes');
GRANT ets_ro TO ets_aes;
GRANT ets_aes TO ets_admin;
-- Schema for Service AreaEffectManagement (AES)
CREATE SCHEMA IF NOT EXISTS aes;
ALTER SCHEMA aes OWNER TO ets_aes;
GRANT ALL ON SCHEMA aes TO ets_admin;
-- Usage for Service AreaEffectManagement (AES)
GRANT USAGE ON SCHEMA aes TO ets_ro;
-- Add Privileges
ALTER DEFAULT PRIVILEGES IN SCHEMA aes
GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE ON TABLES TO ets_aes;
ALTER DEFAULT PRIVILEGES IN SCHEMA aes
GRANT SELECT, REFERENCES ON TABLES TO ets_ro;
ALTER DEFAULT PRIVILEGES IN SCHEMA aes
GRANT EXECUTE ON FUNCTIONS TO ets_aes;
ALTER DEFAULT PRIVILEGES IN SCHEMA aes
GRANT ALL ON SEQUENCES TO ets_aes;
SET SEARCH_PATH TO aes, PUBLIC;
-- Drop tables/views/sequences/constraints
ALTER TABLE IF EXISTS aes_functional_area_type DROP CONSTRAINT IF EXISTS PK_aes_functional_area_type_id CASCADE;
ALTER TABLE IF EXISTS aes_functional_area_type DROP CONSTRAINT IF EXISTS FK_aes_functional_area_type_decon_mode_aes_operating_mode_id CASCADE;
ALTER TABLE IF EXISTS aes_functional_area_type DROP CONSTRAINT IF EXISTS FK_aes_functional_area_type_maint_mode_aes_operating_mode_id CASCADE;
ALTER TABLE IF EXISTS aes_functional_area_type DROP CONSTRAINT IF EXISTS FK_aes_functional_area_type_medic_mode_aes_operating_mode_id CASCADE;
ALTER TABLE IF EXISTS aes_operating_mode DROP CONSTRAINT IF EXISTS PK_aes_operating_mode_id CASCADE;
DROP TABLE IF EXISTS aes_functional_area_type CASCADE;
DROP TABLE IF EXISTS aes_operating_mode CASCADE;
-- Create tables
CREATE TABLE IF NOT EXISTS aes_functional_area_type (
id integer,
name text,
point_symbol text,
decon_mode integer,
decon_time integer,
maint_mode integer,
maint_time integer,
medic_mode integer,
medic_time integer
);
CREATE TABLE IF NOT EXISTS aes_operating_mode (
id integer DEFAULT nextval(( 'aes.aes_operating_mode_id_seq'::text)::regclass),
name text
);
-- Create sequence(s)
CREATE SEQUENCE IF NOT EXISTS aes_operating_mode_id_seq INCREMENT 1 START 1 MINVALUE 1;
-- Create primary keys
ALTER TABLE IF EXISTS aes_functional_area_type ADD CONSTRAINT PK_aes_functional_area_type_id PRIMARY KEY (id);
ALTER TABLE IF EXISTS aes_operating_mode ADD CONSTRAINT PK_aes_operating_mode_id PRIMARY KEY (id);
-- Create foreign keys
ALTER TABLE aes_functional_area_type ADD CONSTRAINT FK_aes_functional_area_type_decon_mode_aes_operating_mode_id FOREIGN KEY (decon_mode) REFERENCES aes_operating_mode (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE aes_functional_area_type ADD CONSTRAINT FK_aes_functional_area_type_maint_mode_aes_operating_mode_id FOREIGN KEY (maint_mode) REFERENCES aes_operating_mode (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE aes_functional_area_type ADD CONSTRAINT FK_aes_functional_area_type_medic_mode_aes_operating_mode_id FOREIGN KEY (medic_mode) REFERENCES aes_operating_mode (id) ON DELETE CASCADE ON UPDATE CASCADE;
-- Inserts for static data i.e. enums
INSERT INTO aes_operating_mode (id, name) VALUES (-1, 'OmNotAvailable');
INSERT INTO aes_operating_mode (id, name) VALUES (0, 'OmNotUsed');
INSERT INTO aes_operating_mode (id, name) VALUES (1, 'OmObserver');
INSERT INTO aes_operating_mode (id, name) VALUES (2, 'OmWaitingTime');
INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(0, 'Functional Area', '', 0, 0, 0, 0, 0, 0);
INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(1, 'Casualty Collection Point', 'AP6D|CMPL|10012500003205000000', -1, 0, -1, 0, 2, 120); -- Verwundetensammelstelle, APP: 320500
INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(2, 'Medical Evacuation Pickup Point', 'AP6D|CMPL|10012500003211000000', -1, 0, -1, 0, 2, 90); -- Landezone, App: 321100
INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(3, 'Medical Treatment Facility, Cat. 1', 'AP6D|CMPL|10011000001614004200', -1, 0, -1, 0, 2, 60); -- Rettungsstation, APP: 161400/42/00
INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(4, 'Medical Treatment Facility, Cat. 3', 'AP6D|CMPL|10011000001614004400', -1, 0, -1, 0, 2, 30); -- Einsatzlazarett, APP: 161400/44/00
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Functional Area', 'Generic Functional Area');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Casualty Collection Point', 'Casualty Collection Point');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Medical Evacuation Pickup Point', 'Medical Evacuation Pickup Point');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Medical Treatment Facility, Cat. 1', 'Medical Treatment Facility, Cat. 1');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Medical Treatment Facility, Cat. 3', 'Medical Treatment Facility, Cat. 3');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Functional Area', 'Allgemeiner Funktionsraum');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Casualty Collection Point', 'Verwundetensammelstelle');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Medical Evacuation Pickup Point', 'MedEvac Landezone');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Medical Treatment Facility, Cat. 1', 'Einsatzlazarett');
INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation)
VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Medical Treatment Facility, Cat. 3', 'Rettungsstation');
-- EXERCISE
--
-- FOREACH Exercise BEGIN
-- First replace "ex_NN" with "ex_70", "ex_71" etc.
SET SEARCH_PATH TO ex_NN, PUBLIC;
CREATE TABLE IF NOT EXISTS aes_functional_area_type (
id integer,
name text,
point_symbol text,
decon_mode integer,
decon_time integer,
maint_mode integer,
maint_time integer,
medic_mode integer,
medic_time integer
);
ALTER TABLE IF EXISTS aes_functional_area_type ADD CONSTRAINT PK_aes_functional_area_type_id PRIMARY KEY (id);
ALTER TABLE aes_functional_area_type OWNER TO ets_ex_NN;
ALTER TABLE aes_functional_area ADD COLUMN functional_area_type_id integer DEFAULT 0;
INSERT INTO aes_operating_mode (id, name) VALUES (-1, 'OmNotAvailable');
INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(0, 'Functional Area', '', 0, 0, 0, 0, 0, 0);
INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(1, 'Casualty Collection Point', 'AP6D|CMPL|10012500003205000000', -1, 0, -1, 0, 2, 120); -- Verwundetensammelstelle, APP: 320500
INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(2, 'Medical Evacuation Pickup Point', 'AP6D|CMPL|10012500003211000000', -1, 0, -1, 0, 2, 90); -- Landezone, App: 321100
INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(3, 'Medical Treatment Facility, Cat. 1', 'AP6D|CMPL|10011000001614004200', -1, 0, -1, 0, 2, 60); -- Rettungsstation, APP: 161400/42/00
INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time)
VALUES(4, 'Medical Treatment Facility, Cat. 3', 'AP6D|CMPL|10011000001614004400', -1, 0, -1, 0, 2, 30); -- Einsatzlazarett, APP: 161400/44/00
ALTER TABLE aes_functional_area ADD CONSTRAINT FK_aes_functional_area_functional_area_type_id_aes_functional_a FOREIGN KEY (functional_area_type_id) REFERENCES aes_functional_area_type (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE rec_functional_area ADD COLUMN functional_area_type_id integer DEFAULT 0;
DROP VIEW IF EXISTS aes_functional_area_view;
CREATE OR REPLACE VIEW aes_functional_area_view AS SELECT aes_entity.id AS id, aes_entity.charge_type_id AS charge_type_id, aes_entity.effect_state_id AS effect_state_id, aes_entity.party_id AS party_id, aes_entity.participant_id AS participant_id, aes_entity.effect_duration AS effect_duration, aes_entity.effect_start AS effect_start, aes_entity.name AS name, aes_entity.effect_marking_in_ta AS effect_marking_in_ta, aes_entity.external_id AS external_id, aes_functional_area.entity_id AS entity_id, aes_functional_area.point_symbol AS point_symbol, aes_functional_area.position_x AS position_x, aes_functional_area.position_y AS position_y, aes_functional_area.width AS width, aes_functional_area.length AS length, aes_functional_area.functional_area_type_id AS functional_area_type_id, aes_functional_area.decon_mode AS decon_mode, aes_functional_area.decon_time AS decon_time, aes_functional_area.maint_mode AS maint_mode, aes_functional_area.maint_time AS maint_time, aes_functional_area.medic_mode AS medic_mode, aes_functional_area.medic_time AS medic_time, aes_functional_area.id AS aes_functional_area_id
FROM aes_functional_area, aes_entity
WHERE aes_entity.id = aes_functional_area.entity_id;
ALTER VIEW aes_functional_area_view OWNER TO ets_ex_NN;
--
-- FOREACH Exercise END
--
--
-- End of
-- NLDEVCTRL-682, AES: FunctionalAreaTypes, Achtung: Übungsabhängige Änderungen unten dabei! - 03.11.2020
--