Files
Database/_UP/450to460.src
Peter Feij 1eafbcdf49 .9
svn path=/Database/trunk/; revision=9210
2006-03-22 14:35:40 +00:00

1704 lines
69 KiB
Plaintext

--
-- Update script van Facilitor versie 4.50 naar 4.60 $Revision: 53 $
--
/*
* This script is precompiled so #if(n)def MS_SQL can be used to distinguish between
* SQL Server and Oracle specific statements.
*
* C-style comment is removed from the result
*/
#include "modules.h"
#include "comsql.h"
#ifndef MS_SQL
/*
* Test eerst of de vorige versie van module FAC zoals genoemd in tabel
* fac_module wel het te verwachten versienummer heeft
* als dat niet zo is dient de gebruiker het script ZELF af te breken middels
* control-c.
* Als dat wel zo is vervolgt het script en zal aan het einde van het script
* het interne versienummer en de datum worden bijgewerkt.
*/
SPOOL OFF
SET HEADING OFF
SET TERMOUT ON
SET FEEDBACK OFF
SET ECHO OFF
SET PAGESIZE 0
SET DEFINE OFF
CLEAR SCREEN
PROMPT ***********************************************************************
PROMPT
PROMPT UPGRADE SCRIPT van Facilitor versie 4.50(.2) naar 4.60.9
#ifdef MS_SQL
PROMPT versie voor MS SQL Server
#else
PROMPT versie voor Oracle
#endif
PROMPT $Revision: 53 $
PROMPT $Modtime: 22-03-06 16:33 $
PROMPT Copyright 1996-2006 Dijkoraad IT bv/Facilitor Software Nederland bv
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 04.50.2 en is: '
|| fac_module_version
FROM fac_module
WHERE fac_module_name='FAC';
PROMPT
PROMPT Indien de huidige versie NIET de verwachte versie is mag dit script
PROMPT niet worden gerund! In dit geval dient het script nu middels
PROMPT CONTROL-C te worden afgebroken.
PROMPT
PROMPT Het wordt aangeraden om deze upgrade te draaien op een moment dat er
PROMPT geen gebruikers bezig zijn met de applicatie.
PROMPT
PROMPT Indien de versies overeenkomen dient nu ENTER te worden gedrukt.
PROMPT
PROMPT ***********************************************************************
ACCEPT nix PROMPT ''
PROMPT
PROMPT De upgrade wordt vervolgd. Even geduld a.u.b...
PROMPT
SET HEADING OFF
SET FEEDBACK ON
SET ECHO ON
SET VERIFY OFF
SET LINESIZE 1000
SET TIME ON
SET SERVEROUTPUT ON;
SPOOL x450to460.LST
PROMPT
PROMPT Dit script is gerund in user:
SHOW USER ;
#endif
UPDATE_VERSION('04.60.9');
COMMIT;
/****************************** PLAATS HIERONDER DE UPDATES PER CALL ******************************/
#ifdef MS_SQL
#endif
#ifndef MS_SQL
#endif
////////////////////////////////////////////// SOME GENERAL CLEANUP /////////////////////////////
//////////////////////////////////// approved by the Facilitor release manager //////////////////
/// Hier Alleen DML statements, DDL statements aan het einde, vlak voor de recreate
/// Het zou anders allerlei zaken bij voorbaat invalid maken.
/* We weten nu zeker dat we voor perslid x werkplek (bezetting) geen _verwijder willen toepassen
* Dit is geborgd in de trigger, en dit is voor de historie.
*/
DELETE FROM prs_perslidwerkplek WHERE prs_perslidwerkplek_verwijder IS NOT NULL;
/* Een trigger verzorgt nu het opruimten van kenmerken, vroeger echter nog niet. Opruimten dus nu. */
DELETE FROM prs_kenmerklink WHERE prs_kenmerklink_niveau='P' AND NOT EXISTS (SELECT 'x' FROM prs_perslid where prs_perslid_key=prs_link_key);
DELETE FROM prs_kenmerklink WHERE prs_kenmerklink_niveau='A' AND NOT EXISTS (SELECT 'x' FROM prs_afdeling where prs_afdeling_key=prs_link_key);
///////////////////////////////////////////////// SPECIFIC UPDATES //////////////////////////////
// added robustness as suggested by JGL: enforce uniqueness
DELETE FROM res_disc_params
WHERE res_disc_params_key IN (
SELECT dubbel
FROM (SELECT MIN (res_disc_params_key) dubbel, res_ins_discipline_key,
COUNT (*)
FROM res_disc_params
GROUP BY res_ins_discipline_key
HAVING COUNT (*) > 1));
CREATE UNIQUE INDEX res_i_res_disc_params1 ON res_disc_params(res_ins_discipline_key);
DELETE FROM bes_disc_params
WHERE bes_disc_params_key IN (
SELECT dubbel
FROM (SELECT MIN (bes_disc_params_key) dubbel, bes_ins_discipline_key,
COUNT (*)
FROM bes_disc_params
GROUP BY bes_ins_discipline_key
HAVING COUNT (*) > 1));
CREATE UNIQUE INDEX bes_i_bes_disc_params1 ON bes_disc_params(bes_ins_discipline_key);
///////////////////////////////////////////////////////////////////////////////////////////////// FSN#1251
-- creatie van nieuwe CAD tabellen
/* Algemeen bruikbare legenda's en bijbehorende waarde/kleur */
CREATE_TABLE(cad_legenda,0)
(
cad_legenda_key
NUMBER(10) PRIMARY KEY,
cad_legenda_omschrijving
VARCHAR2(32),
cad_legenda_discreet /* null=continu, notnull=discreet*/
NUMBER(1)
);
CREATE_TABLE(cad_legendawaarde,0)
(
cad_legendawaarde_key
NUMBER(10) PRIMARY KEY,
cad_legenda_key
NUMBER (10) CONSTRAINT cad_r_cad_legenda REFERENCES cad_legenda(cad_legenda_key) ON DELETE CASCADE,
cad_legendawaarde_value
VARCHAR2(255),
cad_legendawaarde_rgb
VARCHAR2(10),
cad_legendawaarde_omschr
VARCHAR2(60)
);
/* Welke thema's zijn gedefinieerd?
* _type: 1=binnen, 2=buiten, 1+2=3 binnen en buiten
*/
CREATE_TABLE(cad_thema,0)
(
cad_thema_key
NUMBER(10) PRIMARY KEY,
cad_thema_omschrijving
VARCHAR2(60)
NOT_NULL(cad_thema_omschrijving, cad_c_cad_thema_omschr),
cad_legenda_key
NUMBER(10)
CONSTRAINT cad_r_cad_legenda_key REFERENCES cad_legenda(cad_legenda_key),
cad_thema_view
VARCHAR2(1000)
NOT_NULL(cad_thema_view, cad_c_cad_thema_view),
cad_thema_type VARCHAR2(1)
CONSTRAINT cad_c_cad_thema_type CHECK (cad_thema_type IN (1,2,3)),
fac_functie_key
NUMBER(10)
CONSTRAINT cad_fac_functie_key1 REFERENCES fac_functie(fac_functie_key)
);
CREATE_TABLE(cad_label,0)
(
cad_label_key
NUMBER(10) PRIMARY KEY,
cad_label_omschrijving
VARCHAR2(60)
NOT_NULL(cad_label_omschrijving, cad_c_cad_label_omschr),
cad_label_view
VARCHAR2(1000)
NOT_NULL(cad_label_view, cad_c_cad_label_view),
cad_label_type
VARCHAR2(1)
CONSTRAINT cad_c_cad_label_type CHECK (cad_label_type IN (1,2,3)),
cad_label_size
NUMBER,
fac_functie_key
NUMBER(10)
CONSTRAINT cad_fac_functie_key2 REFERENCES fac_functie(fac_functie_key)
);
CREATE_TABLE(cad_imp_contour,0)
(
cad_imp_contour_key
NUMBER(10) PRIMARY KEY,
cad_tekening_key
NUMBER(10)
CONSTRAINT cad_r_cad_tekening_key REFERENCES cad_tekening(cad_tekening_key) ON DELETE CASCADE,
cad_imp_contour_nr
VARCHAR2(30),
cad_imp_contour_opp
NUMBER(9,2),
ins_discipline_key /* reserved for future use: required if we scan object contours */
NUMBER(10)
CONSTRAINT cad_r_ins_discipline_key2 REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE
);
-- voeg cascade toe
ALTER TABLE cad_tekening DROP CONSTRAINT cad_r_alg_verdieping_key;
ALTER TABLE cad_tekening ADD CONSTRAINT cad_r_alg_verdieping_key FOREIGN KEY (alg_verdieping_key) REFERENCES alg_verdieping(alg_verdieping_key) ON DELETE CASCADE;
ALTER TABLE cad_tekening DROP CONSTRAINT cad_r_alg_locatie_key;
ALTER TABLE cad_tekening ADD CONSTRAINT cad_r_alg_locatie_key FOREIGN KEY (alg_locatie_key) REFERENCES alg_locatie(alg_locatie_key) ON DELETE CASCADE;
-- creatie van nieuwe CAD sequences
CREATE SEQUENCE cad_s_cad_legenda_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_legendawaarde_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_thema_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_label_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_imp_contour_key MINVALUE 1;
-- sommige triggers hebben we NU al nodig:
CREATE_TRIGGER(cad_t_cad_legenda_B_IU)
BEFORE INSERT OR UPDATE ON cad_legenda
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cad_legenda_key, cad_s_cad_legenda_key);
END;
/
CREATE_TRIGGER(cad_t_cad_legendawaarde_B_IU)
BEFORE INSERT OR UPDATE ON cad_legendawaarde
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cad_legendawaarde_key, cad_s_cad_legendawaarde_key);
END;
/
CREATE_TRIGGER(cad_t_cad_thema_B_IU)
BEFORE INSERT OR UPDATE ON cad_thema
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cad_thema_key, cad_s_cad_thema_key);
END;
/
CREATE_TRIGGER(cad_t_cad_label_B_IU)
BEFORE INSERT OR UPDATE ON cad_label
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cad_label_key, cad_s_cad_label_key);
END;
/
DELETE FROM web_redlining_item;
DELETE FROM web_redlining;
-- wijzigen van bepaalde tabellen
CREATE_TABLE(ins_disc_params,0)
(
ins_disc_params_key NUMBER(10),
ins_discipline_key NUMBER(10),
ins_disc_params_cadlayers VARCHAR2(60),
ins_disc_params_type NUMBER(2), /* bitwise: 1=binnen, 2=buiten 1+2=binnen en buiten */
CONSTRAINT ins_c_ins_discipline_key CHECK (ins_discipline_key IS NOT NULL),
CONSTRAINT ins_k_res_disc_params_key PRIMARY KEY (ins_disc_params_key),
CONSTRAINT ins_r_ins_discipine_key FOREIGN KEY (ins_discipline_key)
REFERENCES ins_tab_discipline (ins_discipline_key)
);
CREATE SEQUENCE ins_s_ins_disc_params_key START WITH 1 NOCACHE;
CREATE UNIQUE INDEX ins_i_ins_disc_params1 ON ins_disc_params(ins_discipline_key);
CREATE_TRIGGER(ins_t_ins_disc_params_b_iu)
BEFORE INSERT OR UPDATE ON ins_disc_params
FOR EACH ROW
BEGIN
IF :new.ins_disc_params_key IS NULL THEN SELECT ins_s_ins_disc_params_key.nextval INTO :new.ins_disc_params_key FROM DUAL; END IF;
END;
/
-- default conversie vulling: alle disciplines zijn binnen EN buiten beschikbaar
INSERT INTO ins_disc_params
(ins_discipline_key, ins_disc_params_cadlayers, ins_disc_params_type)
SELECT ins_discipline_key, SUBSTR(UPPER(d.ins_discipline_omschrijving),1,5), 3
FROM ins_discipline d;
-- ****MAAK NU(!) EEN SCRIPT OM DE NIEUWE MAIN TEKENINGEN TE LATEN GENEREREN ***
COMMIT;
$CScript.exe 450to460.js
-- en geef nu de echte defaultwildcard waarde
UPDATE ins_disc_params
SET ins_disc_params_cadlayers ='{'|| ins_disc_params_cadlayers|| '\|.*}|{'|| ins_disc_params_cadlayers|| '!.}'
WHERE ins_disc_params_cadlayers IS NOT NULL;
DELETE FROM cad_tekening WHERE cad_tekening_type<>'P';
UPDATE cad_tekening t
SET cad_tekening_filenaam =
(SELECT l.alg_locatie_code || '_' || g.alg_gebouw_code || '_' || v.alg_verdieping_code
FROM alg_locatie l, alg_gebouw g, alg_verdieping v
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = t.alg_verdieping_key)
WHERE t.alg_verdieping_key IS NOT NULL;
UPDATE cad_tekening t
SET cad_tekening_filenaam =
(SELECT l.alg_locatie_code
FROM alg_locatie l
WHERE l.alg_locatie_key = t.alg_locatie_key)
WHERE t.alg_verdieping_key IS NULL;
/* discontinued support for D type*/
ALTER TABLE cad_tekening DROP CONSTRAINT cad_c_cad_tekening_type2;
ALTER TABLE cad_tekening ADD CONSTRAINT cad_c_cad_tekening_type2 CHECK (cad_tekening_type = 'P' OR cad_tekening_type = 'C');
-- Nieuwe functies
DEF_FAC_FUNCTIE2('WEB_CADFOF', 'Graphics:Tekeningbeheer', 'CAD', 11, 0,'Om tekeningbestanden te beheren tbv Graphics');
DEF_FAC_FUNCTIE2('WEB_CADBOF', 'Graphics:Contourbeheer', 'CAD', 11, 0,'Om contourgegevens te kunnen doorvoeren');
DEF_FAC_FUNCTIE2('WEB_CADUSE', 'Graphics:Raadplegen', 'CAD', 11, 0,'Om Facilitor Graphics te kunnen gebruiken');
-- INITIEEL WORDEN DE RECHTEN TOEGEKEND OP BASIS VAN OORSPRONKELIJKE ALG rechten.
--(kopieren van ALGUSE rechten/scope naar CADUSE)
INSERT INTO fac_groeprechten
(fac_functie_key, fac_groep_key, ins_discipline_key, fac_gebruiker_prs_level_read,
fac_gebruiker_alg_level_read, fac_gebruiker_prs_level_write,
fac_gebruiker_alg_level_write)
SELECT (SELECT ff.fac_functie_key
FROM fac_functie ff
WHERE ff.fac_functie_code = 'WEB_CADUSE'), g.fac_groep_key, g.ins_discipline_key,
g.fac_gebruiker_prs_level_read, g.fac_gebruiker_alg_level_read,
g.fac_gebruiker_prs_level_write, g.fac_gebruiker_alg_level_write
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_code = 'WEB_ALGUSE';
--(kopieren van ALGMAN rechten/scope naar CADFOF)
INSERT INTO fac_groeprechten
(fac_functie_key, fac_groep_key, ins_discipline_key, fac_gebruiker_prs_level_read,
fac_gebruiker_alg_level_read, fac_gebruiker_prs_level_write,
fac_gebruiker_alg_level_write)
SELECT (SELECT ff.fac_functie_key
FROM fac_functie ff
WHERE ff.fac_functie_code = 'WEB_CADFOF'), g.fac_groep_key, g.ins_discipline_key,
g.fac_gebruiker_prs_level_read, g.fac_gebruiker_alg_level_read,
g.fac_gebruiker_prs_level_write, g.fac_gebruiker_alg_level_write
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_code = 'WEB_ALGMAN'
AND fac_gebruiker_alg_level_write=-1;
--(kopieren van ALGMAN rechten/scope naar CADBOF als algwritelevel maximaal)
INSERT INTO fac_groeprechten
(fac_functie_key, fac_groep_key, ins_discipline_key, fac_gebruiker_prs_level_read,
fac_gebruiker_alg_level_read, fac_gebruiker_prs_level_write,
fac_gebruiker_alg_level_write)
SELECT (SELECT ff.fac_functie_key
FROM fac_functie ff
WHERE ff.fac_functie_code = 'WEB_CADBOF'), g.fac_groep_key, g.ins_discipline_key,
g.fac_gebruiker_prs_level_read, g.fac_gebruiker_alg_level_read,
g.fac_gebruiker_prs_level_write, g.fac_gebruiker_alg_level_write
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_code = 'WEB_ALGMAN'
AND g.fac_gebruiker_alg_level_write=-1;
-- definieren van default legenda, themas en labels (uit CAD_INI.SRC)
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('Default legenda', 1);
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('Aantallen', 0);
UPDATE cad_legenda SET cad_legenda_key=1 WHERE cad_legenda_omschrijving='Default legenda';
UPDATE cad_legenda SET cad_legenda_key=2 WHERE cad_legenda_omschrijving='Aantallen';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'0','FFFFFF','0');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'1','FDF68D','01');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'2','FFF10F','02');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'3','FFDD81','03');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'4','FDC01B','04');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'5','FFBF81','05');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'10','FF8309','10');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'20','FF8143','20');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'50','FF5A09','50');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'99','FF0000','99');
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
SELECT 'Ruimtefunctie', 1, 'cad_v_thema_srtruimte', 1, fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_ALGUSE';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
SELECT 'Vloerafwerking', 1, 'cad_v_thema_vloerafwerking', 1, fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_ALGUSE';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
SELECT 'Open meldingen', 2, 'cad_v_thema_openmeldingen', 1, fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_MLDBAC';
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
SELECT 'Ruimtefunctie/opp', 'cad_v_label_srtruimteopp', 1, fac_functie_key, 400
FROM fac_functie
WHERE fac_functie_code = 'WEB_ALGUSE';
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
SELECT 'Bewoners', 'cad_v_label_bewoner', 1, fac_functie_key, 400
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSUSE';
///////////////////////////////////////////////////////////////////////////////////////////////// AKZA#659
DEF_FAC_FUNCTIE2('WEB_CADALG', 'Graphics:Ruimtebeheer', 'CAD', 0, 0,'Facilitor Graphics tabblad beschikbaar maken');
DEF_FAC_FUNCTIE2('WEB_CADPRS', 'Graphics:Personen', 'CAD', 0, 0,'Facilitor Graphics tabblad beschikbaar maken');
DEF_FAC_FUNCTIE2('WEB_CADOBJ', 'Graphics:Objecten', 'CAD', 0, 0,'Facilitor Graphics tabblad beschikbaar maken');
DEF_FAC_FUNCTIE2('WEB_CADMLD', 'Graphics:Meldingen', 'CAD', 0, 0,'Facilitor Graphics tabblad beschikbaar maken');
//DEF_FAC_FUNCTIE2('WEB_CADBEZ', 'Graphics:Bezoekers', 'CAD', 0, 0,'Facilitor Graphics tabblad beschikbaar maken');
DEF_FAC_FUNCTIE2('WEB_CADCNT', 'Graphics:Contracten', 'CAD', 0, 0,'Facilitor Graphics tabblad beschikbaar maken');
DEF_FAC_FUNCTIE2('WEB_CADSCH', 'Graphics:Schoonmaak', 'CAD', 0, 0,'Facilitor Graphics tabblad beschikbaar maken');
DEF_FAC_FUNCTIE2('WEB_CADSLE', 'Graphics:Sleutelbeheer', 'CAD', 0, 0,'Facilitor Graphics tabblad beschikbaar maken');
INSERT INTO fac_groeprechten
(fac_functie_key, fac_groep_key, ins_discipline_key, fac_gebruiker_prs_level_read,
fac_gebruiker_alg_level_read, fac_gebruiker_prs_level_write,
fac_gebruiker_alg_level_write)
SELECT DISTINCT (SELECT ff.fac_functie_key
FROM fac_functie ff
WHERE ff.fac_functie_code = 'WEB_CADALG'), g.fac_groep_key, g.ins_discipline_key,
g.fac_gebruiker_prs_level_read, g.fac_gebruiker_alg_level_read,
g.fac_gebruiker_prs_level_write, g.fac_gebruiker_alg_level_write
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_code IN ('WEB_SPACE', 'WEB_EPLAN');
INSERT INTO fac_groeprechten
(fac_functie_key, fac_groep_key, ins_discipline_key, fac_gebruiker_prs_level_read,
fac_gebruiker_alg_level_read, fac_gebruiker_prs_level_write,
fac_gebruiker_alg_level_write)
SELECT (SELECT ff.fac_functie_key
FROM fac_functie ff
WHERE ff.fac_functie_code = 'WEB_CADPRS'), g.fac_groep_key, g.ins_discipline_key,
g.fac_gebruiker_prs_level_read, g.fac_gebruiker_alg_level_read,
g.fac_gebruiker_prs_level_write, g.fac_gebruiker_alg_level_write
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_code = 'WEB_PERSON';
INSERT INTO fac_groeprechten
(fac_functie_key, fac_groep_key, ins_discipline_key, fac_gebruiker_prs_level_read,
fac_gebruiker_alg_level_read, fac_gebruiker_prs_level_write,
fac_gebruiker_alg_level_write)
SELECT (SELECT ff.fac_functie_key
FROM fac_functie ff
WHERE ff.fac_functie_code = 'WEB_CADSCH'), g.fac_groep_key, g.ins_discipline_key,
g.fac_gebruiker_prs_level_read, g.fac_gebruiker_alg_level_read,
g.fac_gebruiker_prs_level_write, g.fac_gebruiker_alg_level_write
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_code = 'WEB_CLEAN';
INSERT INTO fac_groeprechten
(fac_functie_key, fac_groep_key, ins_discipline_key, fac_gebruiker_prs_level_read,
fac_gebruiker_alg_level_read, fac_gebruiker_prs_level_write,
fac_gebruiker_alg_level_write)
SELECT (SELECT ff.fac_functie_key
FROM fac_functie ff
WHERE ff.fac_functie_code = 'WEB_CADOBJ'), g.fac_groep_key, g.ins_discipline_key,
g.fac_gebruiker_prs_level_read, g.fac_gebruiker_alg_level_read,
g.fac_gebruiker_prs_level_write, g.fac_gebruiker_alg_level_write
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_code = 'WEB_INST';
DELETE FROM fac_groeprechten
WHERE fac_functie_key IN (
SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code IN ('WEB_SPACE', 'WEB_CLEAN', 'WEB_INST', 'WEB_REDLIN','WEB_PERSON','WEB_EPLAN', 'WEB_FGPLAN'));
DELETE FROM fac_functie WHERE fac_functie_code IN
('WEB_SPACE', 'WEB_CLEAN', 'WEB_INST', 'WEB_REDLIN','WEB_PERSON','WEB_EPLAN', 'WEB_FGPLAN');
///////////////////////////////////////////////////////////////////////////////////////////////// FSN#1253
ALTER TABLE mld_melding ADD
mld_melding_spoed NUMBER(1);
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#272
ALTER TABLE res_artikel ADD
res_artikel_groep VARCHAR2(10);
///////////////////////////////////////////////////////////////////////////////////////////////// CONN#521
ALTER TABLE mld_opdr ADD
mld_opdr_verzonden
DATE;
-- Een opdracht mag eigenlijk alleen worden aangepast als er een niet-gesloten melding bij hoort.
ALTER TRIGGER mld_t_mld_opdr_b_iu DISABLE;
UPDATE mld_opdr
SET mld_opdr_verzonden = SYSDATE
WHERE mld_opdr_verzonden IS NULL
AND mld_opdr.mld_uitvoerende_keys IN (SELECT prs_bedrijf_key
FROM prs_bedrijf b
WHERE b.prs_bedrijf_order_adres IS NOT NULL);
ALTER TRIGGER mld_t_mld_opdr_b_iu ENABLE;
CREATE_TABLE (mld_melding_xml,0)
(
mld_melding_key NUMBER(10),
mld_melding_xml LONG,
mld_melding_xml_datum DATE DEFAULT SYSDATE NOT NULL,
mld_melding_xml_volgnr NUMBER,
CONSTRAINT mld_r_mld_melding_xml_key FOREIGN KEY (mld_melding_key)
REFERENCES mld_melding (mld_melding_key)
ON DELETE CASCADE
);
CREATE_TABLE (mld_opdr_xml,0)
(
mld_opdr_key NUMBER(10),
mld_opdr_xml LONG,
mld_opdr_xml_datum DATE DEFAULT SYSDATE NOT NULL,
mld_opdr_xml_volgnr NUMBER,
CONSTRAINT mld_r_mld_opdr_xml_key FOREIGN KEY (mld_opdr_key)
REFERENCES mld_opdr (mld_opdr_key)
ON DELETE CASCADE
);
CREATE OR REPLACE TRIGGER mld_t_mld_melding_xml_a_iu
AFTER INSERT OR UPDATE
ON mld_melding_xml
BEGIN
DELETE FROM mld_melding_xml
WHERE mld_melding_xml_datum < SYSDATE - 2;
END;
/
CREATE OR REPLACE TRIGGER mld_t_mld_opdr_xml_a_iu
AFTER INSERT OR UPDATE
ON mld_opdr_xml
BEGIN
DELETE FROM mld_opdr_xml
WHERE mld_opdr_xml_datum < SYSDATE - 2;
END;
/
-- Location of XSL files have changed to cust/XXXX/XSL/cust.XSL, where path is relative to CUST/XXXX
UPDATE prs_bedrijf SET prs_bedrijf_xsl='CUST.XSL'
WHERE prs_bedrijf_xsl IS NOT NULL
AND UPPER(SUBSTR(prs_bedrijf_xsl,1,4)) = (SELECT UPPER(SUBSTR(USER,1,4)) FROM DUAL);
UPDATE prs_bedrijf SET prs_bedrijf_xsl='XSL/'||prs_bedrijf_xsl
WHERE prs_bedrijf_xsl IS NOT NULL
AND UPPER(SUBSTR(prs_bedrijf_xsl,1,4)) <> (SELECT UPPER(SUBSTR(USER,1,4)) FROM DUAL);
/* customerid en databasename verschillen hier */
UPDATE prs_bedrijf SET prs_bedrijf_xsl='XSL/CUST.XSL'
WHERE UPPER(prs_bedrijf_xsl) ='XSL/AKZA.XSL';
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#284
DELETE FROM fac_groeprechten
WHERE ins_discipline_key IN
(SELECT ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NOT NULL);
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#258
ALTER TABLE res_disc_params ADD
res_disc_params_aantalreq NUMBER(1) DEFAULT 1;
-- manually reset this for spreekkamers
--PROMPT !BEHEERDER Verwijder zonodig de verplichting om het aantal bij een reservering aan te geven
ALTER TABLE res_activiteit ADD
res_activiteit_duur
NUMBER(5,2) DEFAULT 2;
ALTER TABLE res_activiteit
MODIFY res_activiteit_omschrijving VARCHAR2(50);
ALTER TABLE res_activiteit
MODIFY res_activiteit_upper VARCHAR2(50);
ALTER TABLE res_disc_params ADD
res_disc_params_kosten NUMBER(1) DEFAULT 1;
-- since now, activities are constrained by roomtype(res_discipline)
CREATE TABLE res_activiteitdiscipline (
res_activiteitdiscipline_key
NUMBER(10) PRIMARY KEY,
res_discipline_key
NUMBER(10)
REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE,
res_activiteit_key
NUMBER(10)
REFERENCES res_activiteit(res_activiteit_key) ON DELETE CASCADE
);
CREATE SEQUENCE res_s_res_activiteitdisc_key MINVALUE 1;
CREATE_TRIGGER(res_t_res_activiteitdisc_B_IU)
BEFORE INSERT OR UPDATE ON res_activiteitdiscipline
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(res_activiteitdiscipline_key, res_s_res_activiteitdisc_key);
END;
/
CREATE UNIQUE INDEX res_i_res_activiteitdisc1 ON res_activiteitdiscipline(res_discipline_key, res_activiteit_key);
-- Previously, no restrictions applied, so initially all combinations exist
INSERT INTO res_activiteitdiscipline
(res_discipline_key, res_activiteit_key)
SELECT ins_discipline_key, res_activiteit_key
FROM res_discipline, res_activiteit
WHERE res_discipline.ins_discipline_min_level = 3 AND ins_discipline_verwijder IS NULL;
--PROMPT !BEHEERDER Beperkt zonodig de toegestane combinaties ruimtecategorie x activiteit,
///////////////////////////////////////////////////////////////////////////////////////////////// TUDE#171
INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_BEZIT_OBJECT', 'bezit object');
INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_OPENST_RES_R', 'is gastheer voor zaalreservering');
INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_OPENST_RES_V', 'is gastheer bij voorzieningreservering');
INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_OPENST_RES_C', 'is gastheer voor cateringbestelling');
INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_OPENST_RES_RC', 'is contactpersoon voor zaalreservering');
INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_OPENST_RES_VC', 'is contactpersoon voor voorzieningreservering');
INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_OPENST_RES_CC', 'is contactpersoon voor cateringbestelling');
/* Maar deze 2 zijn er kennelijk al, zo ja, dan hier weghalen */
-- INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_AFSPRAAK_H', 'is gastheer/vrouw voor afspraak');
-- INSERT INTO fac_message (fac_message_code, fac_message_text) VALUES ('PRS_AFSPRAAK_C', 'is contactpersoon voor afspraak');
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#280
ALTER TABLE ins_tab_discipline ADD
ins_discipline_kpnverplicht
NUMBER(1) DEFAULT(0)
CONSTRAINT ins_c_ins_discipline_kpn CHECK(ins_discipline_kpnverplicht IN (0,1));
-- Bestellingen hebben altijd kosten
UPDATE ins_tab_discipline SET ins_discipline_kpnverplicht=1
WHERE ins_discipline_module='BES';
-- Catering heeft altijd kosten
UPDATE ins_tab_discipline SET ins_discipline_kpnverplicht=1
WHERE ins_discipline_module='RES'
AND ins_discipline_min_level=2;
-- Nadere invulling door de beheerder
--PROMPT !BEHEERDER Controleer of de aanduidingen 'Kostenplaats vereist' bij vakgroepen, categorien en catalogi overeenstemt met uw organisatie!
CREATE TABLE prs_kostenplaatsgrp (
prs_kostenplaatsgrp_key
NUMBER (10) PRIMARY KEY,
prs_kostenplaatsgrp_oms
VARCHAR2(60)
-- , prs_kostenplaatsgrp_aanmaak
-- DATE DEFAULT SYSDATE,
-- prs_kostenplaatsgrp_verwijder
-- DATE
);
CREATE SEQUENCE prs_s_prs_kostenplaatsgrp_key MINVALUE 1;
CREATE_TRIGGER(prs_t_prs_kostenplaatsgrp_B_IU)
BEFORE INSERT OR UPDATE ON prs_kostenplaatsgrp
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_kostenplaatsgrp_key, prs_s_prs_kostenplaatsgrp_key);
IF :new.prs_kostenplaats_verwijder IS NOT NULL and :old.prs_kostenplaats_verwijder IS NULL
THEN
DELETE FROM prs_kostencombinatie
WHERE prs_kostenplaatsgrp_key = :new.prs_kostenplaatsgrp_key;
END IF;
END;
/
CREATE TABLE prs_kostenplaats (
prs_kostenplaats_key
NUMBER (10) PRIMARY KEY,
prs_kostenplaats_nr
VARCHAR2(30) NOT NULL,
prs_kostenplaats_upper
VARCHAR2(30),
prs_kostenplaats_omschrijving
VARCHAR2(60),
prs_perslid_key
NUMBER(10)
CONSTRAINT prs_r_prs_perslid_key9 REFERENCES prs_perslid(prs_perslid_key),
prs_kostenplaats_module
VARCHAR2(3) NOT NULL
CONSTRAINT prs_c_prs_kostenplaats CHECK (prs_kostenplaats_module IN ('PRS', 'ALG', 'PRJ')),
prs_kostenplaats_begin
DATE DEFAULT SYSDATE,
prs_kostenplaats_eind
DATE,
prs_kostenplaatsgrp_key
NUMBER(10)
CONSTRAINT prs_r_prs_kostenplaatsgrp_key REFERENCES prs_kostenplaatsgrp(prs_kostenplaatsgrp_key),
prs_kostenplaats_aanmaak
DATE DEFAULT SYSDATE,
prs_kostenplaats_verwijder
DATE
);
COMMENT ON COLUMN prs_kostenplaats.prs_perslid_key IS 'Budgethouder';
CREATE SEQUENCE prs_s_prs_kostenplaats_key MINVALUE 1;
CREATE_TRIGGER(prs_t_prs_kostenplaats_B_IU)
BEFORE INSERT OR UPDATE ON prs_kostenplaats
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_kostenplaats_key, prs_s_prs_kostenplaats_key);
UPDATE_UPPER(prs_kostenplaats_nr, prs_kostenplaats_upper, prs_kostenplaats);
IF :new.prs_kostenplaats_verwijder IS NOT NULL and :old.prs_kostenplaats_verwijder IS NULL
THEN
DELETE FROM prs_perslidkostenplaats
WHERE prs_kostenplaats_key = :new.prs_kostenplaats_key;
END IF;
END;
/
CREATE UNIQUE INDEX prs_i_prs_kostenplaats1 ON prs_kostenplaats(prs_kostenplaats_upper);
CREATE INDEX prs_i_prs_kostenplaats2 ON prs_kostenplaats(prs_perslid_key);
CREATE TABLE prs_perslidkostenplaats (
prs_perslidkostenplaats_key
NUMBER(10) PRIMARY KEY,
prs_perslid_key
NUMBER(10) NOT NULL
CONSTRAINT prs_r_prs_perslid_key10 REFERENCES prs_perslid(prs_perslid_key),
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT prs_r_prs_kostenplaats_key1 REFERENCES prs_kostenplaats(prs_kostenplaats_key),
prs_perslidkostenplaats_boeken
NUMBER(1)
DEFAULT(1),
CONSTRAINT prs_c_prs_pkp_boeken CHECK(prs_perslidkostenplaats_boeken IN (0,1)),
prs_perslidkostenplaats_inzage
NUMBER(1)
DEFAULT (1)
CONSTRAINT prs_c_prs_pkp_inzage CHECK(prs_perslidkostenplaats_inzage IN (0,1))
);
CREATE SEQUENCE prs_s_prs_perslidkp_key MINVALUE 1;
CREATE_TRIGGER(prs_t_prs_perslidkp_B_IU)
BEFORE INSERT OR UPDATE ON prs_perslidkostenplaats
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_perslidkostenplaats_key, prs_s_prs_perslidkp_key);
END;
/
create index prs_i_prs_perslidkostenplaats1 ON prs_perslidkostenplaats(prs_perslid_key, prs_kostenplaats_key);
CREATE TABLE prs_project (
prs_project_key
NUMBER(10) PRIMARY KEY,
prs_project_omschrijving
VARCHAR2(60)
NOT NULL,
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT prs_r_prs_kostenplaats_key2 REFERENCES prs_kostenplaats(prs_kostenplaats_key),
mld_adres_key NUMBER(10)
CONSTRAINT prs_r_prs_project_mld_adres REFERENCES mld_adres(mld_adres_key)
);
CREATE SEQUENCE prs_s_prs_project_key MINVALUE 1;
CREATE_TRIGGER(prs_t_prs_project_B_IU)
BEFORE INSERT OR UPDATE ON prs_project
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_project_key, prs_s_prs_project_key);
END;
/
ALTER TABLE alg_gebouw ADD
mld_adres_key NUMBER(10)
CONSTRAINT alg_r_mld_adres_key1 REFERENCES mld_adres(mld_adres_key);
ALTER TABLE prs_afdeling ADD
mld_adres_key NUMBER(10)
CONSTRAINT alg_r_mld_adres_key2 REFERENCES mld_adres(mld_adres_key);
ALTER TRIGGER prs_t_prs_afdeling_B_IU DISABLE;
UPDATE prs_afdeling
SET mld_adres_key =
(SELECT fac.safe_to_number(prs_kenmerklink_waarde)
FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1002
AND prs_link_key = prs_afdeling_key
AND prs_kenmerklink_niveau = 'A');
ALTER TRIGGER prs_t_prs_afdeling_B_IU ENABLE;
CREATE TABLE fac_profiel (
fac_profiel_key
NUMBER(10) PRIMARY KEY,
fac_profiel_omschrijving
VARCHAR2(30) NOT NULL,
fac_profiel_limiet
NUMBER(8)
);
CREATE SEQUENCE fac_s_fac_profiel_key MINVALUE 1;
CREATE_TRIGGER(fac_t_fac_profiel_B_IU)
BEFORE INSERT OR UPDATE ON fac_profiel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_profiel_key, fac_s_fac_profiel_key);
END;
/
CREATE TABLE fac_profielwaarde (
fac_profielwaarde_key
NUMBER(10) PRIMARY KEY,
fac_profiel_key
NUMBER(10)
CONSTRAINT fac_r_fac_profiel_key REFERENCES fac_profiel(fac_profiel_key) ON DELETE CASCADE,
ins_discipline_key
NUMBER(10)
REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE,
fac_profielwaarde_limiet
NUMBER(8)
NOT NULL
);
CREATE SEQUENCE fac_s_fac_profielwaarde_key MINVALUE 1;
CREATE_TRIGGER(fac_t_fac_profielwaarde_B_IU)
BEFORE INSERT OR UPDATE ON fac_profielwaarde
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_profielwaarde_key, fac_s_fac_profielwaarde_key);
END;
/
CREATE UNIQUE INDEX fac_i_fac_profielwaarde1 ON fac_profielwaarde (fac_profiel_key, ins_discipline_key);
ALTER TABLE prs_perslid ADD
fac_profiel_key
NUMBER (10)
CONSTRAINT prs_r_fac_profiel_key REFERENCES fac_profiel(fac_profiel_key);
ALTER TABLE prs_perslid ADD
mld_adres_key NUMBER(10)
CONSTRAINT prs_r_mld_adres_key REFERENCES mld_adres(mld_adres_key);
-- Overhalen van huidige flexprops (fiatteur, bestellimiet, afleveradres naar nieuwe fixedprops!
-- MOET HIER OOK DE AFDELINGSAFLEVERADRES WORDEN OVERGENOMEN - IK DENK VAN NIET.
/* We maken een profiel aan voor alle nu voorkomende limietbedragen; die gelden dan voor alle catalogi */
INSERT INTO fac_profiel
(fac_profiel_omschrijving, fac_profiel_limiet)
SELECT 'Profiel ' || prs_kenmerklink_waarde,
NVL (fac.safe_to_number (prs_kenmerklink_waarde),
fac.safe_to_number (REPLACE (prs_kenmerklink_waarde, '.', ','))
)
FROM prs_kenmerklink kl, prs_kenmerk k
WHERE k.prs_kenmerk_upper = 'BESTELLIMIET' AND kl.prs_kenmerk_key = k.prs_kenmerk_key
GROUP BY prs_kenmerklink_waarde
ORDER BY 2;
/* 4.60.5 */
UPDATE prs_perslid p
SET fac_profiel_key =
(SELECT fac_profiel_key
FROM fac_profiel, prs_kenmerklink kl, prs_kenmerk k
WHERE k.prs_kenmerk_upper = 'BESTELLIMIET' AND kl.prs_kenmerk_key = k.prs_kenmerk_key
AND kl.prs_link_key=p.prs_perslid_key
AND fac_profiel_omschrijving= 'Profiel ' || kl.prs_kenmerklink_waarde)
WHERE fac_profiel_key IS NULL;
-- Lijst van dubbele budgethouders (ter vastlegging en evt. later handmatige correctie)
-- Daar waar deze eenduidig is, wordt deze geconverteerd.
SELECT pp.prs_afdeling_key, pd.prs_afdeling_naam,
pd.prs_afdeling_kostenplaats,
pkm.prs_kenmerklink_waarde prs_perslid_key_fiat,
'o.a. ' || pf.prs_perslid_naam_full,
COUNT (pkm.prs_kenmerklink_waarde)
FROM prs_perslid pp,
prs_kenmerklink pkm,
prs_kenmerk pk,
prs_v_aanwezigafdeling pd,
prs_v_perslid_fullnames pf
WHERE pp.prs_perslid_key = pkm.prs_link_key
AND pk.prs_kenmerk_upper = 'FIATTEUR'
AND pk.prs_kenmerk_key=pkm.prs_kenmerk_key
AND pd.prs_afdeling_key = pp.prs_afdeling_key
AND pkm.prs_kenmerklink_waarde = pf.prs_perslid_key
AND pd.prs_afdeling_key IN (
SELECT prs_afdeling_key
FROM (SELECT p.prs_afdeling_key, d.prs_afdeling_naam,
prs_kenmerklink_waarde prs_perslid_key_fiat,
'o.a. ' || f.prs_perslid_naam,
COUNT (prs_kenmerklink_waarde)
FROM prs_perslid p,
prs_kenmerklink km,
prs_kenmerk k,
prs_v_aanwezigafdeling d,
prs_perslid f
WHERE p.prs_perslid_key = km.prs_link_key
AND k.prs_kenmerk_upper = 'FIATTEUR'
AND k.prs_kenmerk_key=km.prs_kenmerk_key
AND d.prs_afdeling_key = p.prs_afdeling_key
AND prs_kenmerklink_waarde = f.prs_perslid_key
GROUP BY p.prs_afdeling_key,
d.prs_afdeling_naam,
prs_kenmerklink_waarde,
f.prs_perslid_naam)
GROUP BY prs_afdeling_key, prs_afdeling_naam
HAVING COUNT (prs_perslid_key_fiat) > 1)
GROUP BY pp.prs_afdeling_key,
pd.prs_afdeling_naam,
pd.prs_afdeling_kostenplaats,
pkm.prs_kenmerklink_waarde,
pf.prs_perslid_naam_full
ORDER BY 1, 2, 5 DESC;
ALTER TRIGGER prs_t_prs_perslid_B_IU DISABLE;
UPDATE prs_perslid
SET mld_adres_key =
(SELECT fac.safe_to_number (prs_kenmerklink_waarde)
FROM prs_kenmerklink kl, prs_kenmerk k
WHERE k.prs_kenmerk_key = kl.prs_kenmerk_key
AND k.prs_kenmerk_upper = 'AFLEVERADRES'
AND prs_link_key = prs_perslid_key
AND prs_kenmerklink_niveau = 'P');
ALTER TRIGGER prs_t_prs_perslid_B_IU ENABLE;
--- Initial population
--- Afdelingskostenplaatsen, eerst de actuele, daarna de vervallene
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module)
SELECT MIN(d.prs_afdeling_kostenplaats), MIN(d.prs_afdeling_omschrijving)||DECODE(COUNT(*),1,'','...'), 'PRS'
FROM prs_afdeling d
WHERE d.prs_afdeling_kostenplaats IS NOT NULL
AND prs_afdeling_verwijder IS NULL
AND NOT EXISTS (SELECT 'x'
FROM prs_kostenplaats
WHERE prs_kostenplaats_upper = UPPER(d.prs_afdeling_kostenplaats))
GROUP BY UPPER(d.prs_afdeling_kostenplaats)
ORDER BY 1;
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module, prs_kostenplaats_verwijder)
SELECT MIN(d.prs_afdeling_kostenplaats), MIN(d.prs_afdeling_omschrijving)||DECODE(COUNT(*),1,'','...'), 'PRS', MAX(d.prs_afdeling_verwijder)
FROM prs_afdeling d
WHERE d.prs_afdeling_kostenplaats IS NOT NULL
AND prs_afdeling_verwijder IS NOT NULL
AND NOT EXISTS (SELECT 'x'
FROM prs_kostenplaats
WHERE prs_kostenplaats_upper = UPPER(d.prs_afdeling_kostenplaats))
GROUP BY UPPER(d.prs_afdeling_kostenplaats)
ORDER BY 1;
/*
Contractkostenplaatsen zijn niet in gebruik (CONN)
-- Ook nog de evt contract kostenplaatsen
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module)
SELECT MIN(c.cnt_contract_kostenplaats), MIN(c.cnt_contract_kostenplaats), 'PRJ'
FROM cnt_contract c
WHERE c.cnt_contract_kostenplaats IS NOT NULL
AND NOT EXISTS (SELECT 'x'
FROM prs_kostenplaats
WHERE prs_kostenplaats_upper = UPPER(c.cnt_contract_kostenplaats))
GROUP BY UPPER(c.cnt_contract_kostenplaats)
ORDER BY 1;
*/
-- Breidt de tabellen uit
ALTER TABLE prs_afdeling ADD
prs_kostenplaats_key NUMBER(10)
CONSTRAINT alg_r_prs_afdeling_kostenp REFERENCES prs_kostenplaats(prs_kostenplaats_key);
ALTER TABLE res_reservering ADD
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT res_r_prs_kostenplaats_key1 REFERENCES prs_kostenplaats(prs_kostenplaats_key);
ALTER TABLE mld_melding ADD
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT mld_r_prs_kostenplaats_key1 REFERENCES prs_kostenplaats(prs_kostenplaats_key);
ALTER TABLE mld_opdr ADD
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT mld_r_prs_kostenplaats_key2 REFERENCES prs_kostenplaats(prs_kostenplaats_key);
ALTER TABLE bes_bestelling ADD
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT bes_r_prs_kostenplaats_key1 REFERENCES prs_kostenplaats(prs_kostenplaats_key);
ALTER TABLE alg_gebouw ADD
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT alg_r_prs_afdeling_kostenp1 REFERENCES prs_kostenplaats(prs_kostenplaats_key);
ALTER TABLE alg_terreinsector ADD
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT alg_r_prs_afdeling_kostenp2 REFERENCES prs_kostenplaats(prs_kostenplaats_key);
ALTER TABLE cnt_contract ADD
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT cnt_r_prs_kostenplaats_key1 REFERENCES prs_kostenplaats(prs_kostenplaats_key);
-- Vervang nu de vermeldingen door verwijzigingen
ALTER TRIGGER prs_t_prs_afdeling_B_IU DISABLE;
UPDATE prs_afdeling d
SET d.prs_kostenplaats_key = (SELECT prs_kostenplaats_key
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_upper = UPPER(d.prs_afdeling_kostenplaats));
ALTER TRIGGER prs_t_prs_afdeling_B_IU ENABLE;
UPDATE res_reservering
SET prs_kostenplaats_key =
(SELECT k.prs_kostenplaats_key
FROM prs_kostenplaats k, prs_afdeling d
WHERE k.prs_kostenplaats_nr = d.prs_afdeling_kostenplaats
AND d.prs_afdeling_key = res_reservering.prs_afdeling_key);
UPDATE bes_bestelling
SET prs_kostenplaats_key =
(SELECT k.prs_kostenplaats_key
FROM prs_kostenplaats k, prs_afdeling d
WHERE k.prs_kostenplaats_nr = d.prs_afdeling_kostenplaats
AND d.prs_afdeling_key = bes_bestelling.prs_afdeling_key);
-- Voor een melding wordt de gebouw/terreinkostenplaats bedoeld als kosten_klant=null
-- en als KostenKlant=1 de afdelingskostenplaats van de geregistreerde afdeling.
-- Gebouwkostenplaatsen heeft niet iedereen, dan wordt alsnog de afdelingskostenplaats gebruikt.
UPDATE mld_melding
SET prs_kostenplaats_key =
(SELECT g.prs_kostenplaats_key
FROM alg_v_onroerendgoed og, alg_gebouw g
WHERE og.alg_gebouw_key = g.alg_gebouw_key
AND og.alg_onroerendgoed_keys = mld_melding.mld_alg_onroerendgoed_keys)
WHERE prs_kostenplaats_key IS NULL AND mld_kosten_klant IS NULL;
UPDATE mld_melding
SET prs_kostenplaats_key =
(SELECT k.prs_kostenplaats_key
FROM prs_kostenplaats k, prs_afdeling d
WHERE k.prs_kostenplaats_nr = d.prs_afdeling_kostenplaats
AND d.prs_afdeling_key = mld_melding.prs_afdeling_key)
WHERE prs_kostenplaats_key IS NULL;
-- Kostenplaats mld_melding = Kostenplaats mld_opdr
ALTER TRIGGER mld_t_mld_opdr_b_iu DISABLE;
UPDATE mld_opdr
SET prs_kostenplaats_key =
(SELECT m.prs_kostenplaats_key
FROM mld_melding m
WHERE mld_opdr.mld_melding_key = m.mld_melding_key);
ALTER TRIGGER mld_t_mld_opdr_b_iu ENABLE;
/*
UPDATE cnt_contract c
SET c.prs_kostenplaats_key = (SELECT prs_kostenplaats_key
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_nr = c.cnt_contract_kostenplaats);
*/
/* Nu de fiatteur van (de personen van) een afdeling als budgethouder aanduiden */
UPDATE prs_kostenplaats kp
SET kp.prs_perslid_key =
(SELECT MAX (prs_kenmerklink_waarde)
FROM prs_perslid p, prs_kenmerklink km, prs_afdeling d, prs_kenmerk k
WHERE p.prs_perslid_key = km.prs_link_key
AND p.prs_afdeling_key = d.prs_afdeling_key
AND k.prs_kenmerk_upper = 'FIATTEUR'
AND k.prs_kenmerk_key=km.prs_kenmerk_key
AND d.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND p.prs_perslid_verwijder IS NULL
AND d.prs_afdeling_verwijder IS NULL
AND km.prs_kenmerklink_verwijder IS NULL)
WHERE kp.prs_perslid_key IS NULL;
/* Nu mag de rest weg. Fiatteurs raken we hier gewoon definitef kwijt.*/
DELETE FROM prs_kenmerk WHERE prs_kenmerk_upper = 'FIATTEUR'; -- 1000
DELETE FROM prs_kenmerk WHERE prs_kenmerk_upper = 'BESTELLIMIET'; -- 1001
/////////////////////////////////////////// AKZA#671
-- Ordernrs structureel ondersteunen
ALTER TABLE alg_gebouw ADD
alg_gebouw_ordernr
VARCHAR2(30);
ALTER TABLE alg_terreinsector MODIFY
alg_terreinsector_ordernr
VARCHAR2(30);
ALTER TABLE mld_melding MODIFY
mld_melding_ordernr
VARCHAR2(30);
UPDATE alg_gebouw SET alg_gebouw_ordernr=
(SELECT k.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk k
WHERE k.alg_kenmerk_key = 1 AND k.alg_onrgoed_niveau = 'G'
AND alg_gebouw_key=k.ALG_ONRGOED_KEY);
-- Verwijder systeemkenmerk 1, flexveris van gebouw_ordernr
UPDATE alg_kenmerk SET alg_kenmerk_systeem = NULL WHERE alg_kenmerk_key = 1;
DELETE FROM alg_kenmerk WHERE alg_kenmerk_key = 1;
/* sommige ordernrs bevatten voorheen de kostenplaats van de afdeling; deze werd echter niet consistent gehouden */
UPDATE bes_bestelling set bes_bestelling_ordernr=NULL;
UPDATE res_reservering SET res_reservering_ordernr=NULL;
///////////////////////////////////////////
-- Als we nu eens alle FO gebruikers rechten geven voor alle kostenplaatsen volgens de vigerende scopes?!
--INSERT INTO prs_perslidkostenplaats (prs_perslid_key)
--SELECT prs_perslid_key FROM prs_v_aanwezigperslid
--WHERE
ALTER TABLE mld_opdr ADD
prs_perslid_key_fiat
NUMBER(10)
CONSTRAINT mld_r_prs_perslid_key6 REFERENCES prs_perslid(prs_perslid_key);
ALTER TABLE mld_opdr ADD
mld_opdr_datumfiatvraag
DATE;
ALTER TABLE mld_opdr ADD
mld_opdr_datumfiat_ok
DATE;
ALTER TABLE mld_opdr ADD
mld_opdr_datumfiat_nok
DATE;
ALTER TABLE mld_opdr ADD
mld_opdr_opmerking_fiat
VARCHAR2(1024);
ALTER TABLE mld_opdr
ADD CONSTRAINT mld_c_opdr_fiat
CHECK (mld_opdr_datumfiat_ok IS NULL OR mld_opdr_datumfiat_nok IS NULL);
UPDATE fac_functie SET fac_functie_min_level = 15 where fac_functie_code IN ('WEB_BESUSE', 'WEB_BESFOF');
//////////////////////////////////////////////////// combinatievalidatie
CREATE TABLE prs_kostensoort (
prs_kostensoort_key
NUMBER (10) PRIMARY KEY,
prs_kostensoort_oms
VARCHAR2(60)
NOT NULL,
prs_kostensoort_upper
VARCHAR2(60),
prs_kostensoort_opmerking
VARCHAR2(255),
prs_kostensoort_aanmaak
DATE DEFAULT SYSDATE
);
CREATE SEQUENCE prs_s_prs_kostensoort_key MINVALUE 1;
CREATE_TRIGGER(prs_t_prs_kostensoort_B_IU)
BEFORE INSERT OR UPDATE ON prs_kostensoort
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_kostensoort_key, prs_s_prs_kostensoort_key);
UPDATE_UPPER(prs_kostensoort_oms, prs_kostensoort_upper, prs_kostensoort);
END;
/
CREATE UNIQUE INDEX prs_i_prs_kostensoort1 ON prs_kostensoort(prs_kostensoort_upper);
CREATE TABLE prs_kostencombinatie (
prs_kostencombinatie_key
NUMBER (10) PRIMARY KEY,
prs_kostenplaatsgrp_key
NUMBER(10) NOT NULL
CONSTRAINT prs_r_prs_kostenplaatsgrp_key2 REFERENCES prs_kostenplaatsgrp(prs_kostenplaatsgrp_key) ON DELETE CASCADE,
prs_kostensoort_key
NUMBER(10) NOT NULL
CONSTRAINT prs_r_prs_kostensoort_key1 REFERENCES prs_kostensoort(prs_kostensoort_key) ON DELETE CASCADE
);
CREATE SEQUENCE prs_s_prs_kostencombinatie_key MINVALUE 1;
CREATE_TRIGGER(prs_t_prs_kostencombi_B_IU)
BEFORE INSERT OR UPDATE ON prs_kostencombinatie
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_kostencombinatie_key, prs_s_prs_kostencombinatie_key);
END;
/
CREATE UNIQUE INDEX prs_i_prs_kostencombinatie1 ON prs_kostencombinatie (prs_kostenplaatsgrp_key, prs_kostensoort_key);
ALTER TABLE ins_tab_discipline ADD
prs_kostensoort_key
NUMBER(10)
CONSTRAINT ins_r_prs_kostensoort_key1 REFERENCES prs_kostensoort(prs_kostensoort_key);
ALTER TABLE mld_stdmelding ADD
prs_kostensoort_key
NUMBER(10)
CONSTRAINT ins_r_prs_kostensoort_key2 REFERENCES prs_kostensoort(prs_kostensoort_key);
INSERT INTO prs_kostensoort (prs_kostensoort_oms)
SELECT DISTINCT ins_discipline_kostensoort
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_kostensoort IS NOT NULL;
INSERT INTO prs_kostensoort (prs_kostensoort_oms)
SELECT DISTINCT mld_stdmelding_kostensoort
FROM mld_stdmelding
WHERE mld_stdmelding_kostensoort IS NOT NULL
AND mld_stdmelding_kostensoort NOT IN (SELECT prs_kostensoort_oms
FROM prs_kostensoort);
UPDATE ins_tab_discipline d
SET prs_kostensoort_key = (SELECT prs_kostensoort_key
FROM prs_kostensoort k
WHERE k.prs_kostensoort_oms = d.ins_discipline_kostensoort)
WHERE d.ins_discipline_kostensoort IS NOT NULL;
UPDATE mld_stdmelding d
SET prs_kostensoort_key = (SELECT prs_kostensoort_key
FROM prs_kostensoort k
WHERE k.prs_kostensoort_oms = d.mld_stdmelding_kostensoort)
WHERE d.mld_stdmelding_kostensoort IS NOT NULL;
DEF_FAC_FUNCTIE2('WEB_FACMAN', 'Backoffice:Mandatering', 'PRS', 7, 0,'Om medewerkers voor kostenplaatsen te mandateren.');
INSERT INTO web_user_mess_actions (web_user_mess_actions_key,web_user_mess_action_dsc)
VALUES (15, 'complains/order_input.asp?opdr='); // concept
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
VALUES ('MLDAP1','Uw goedkeuring wordt verzocht voor opdracht',15);
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving, mld_statusopdr_upper, mld_statusopdr_module)
VALUES (1, 'Afgewezen', 'MLD_AFGEWEZEN', 'MLD');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving, mld_statusopdr_upper, mld_statusopdr_module)
VALUES (2, 'Niet akkoord', 'MLD_NIETGEFIATTEERD', 'MLD');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving, mld_statusopdr_upper, mld_statusopdr_module)
VALUES (3, 'Ter fiattering', 'MLD_FIATTERING', 'MLD');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving, mld_statusopdr_upper, mld_statusopdr_module)
VALUES (4, 'Gefiatteerd', 'MLD_GEFIATTEERD', 'MLD');
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#281
ALTER TABLE mld_opdr ADD
mld_opdr_verwerkt DATE;
ALTER TABLE res_rsv_ruimte ADD
res_rsv_ruimte_verwerkt DATE;
ALTER TABLE res_rsv_artikel ADD
res_rsv_artikel_verwerkt DATE;
ALTER TABLE res_rsv_deel ADD
res_rsv_deel_verwerkt DATE;
ALTER TABLE bes_bestelopdr_item ADD
bes_bestelopdr_item_verwerkt DATE;
-- Triggers are altered with the recreate section. However, we should create an initial state now.
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#258
ALTER TABLE fac_usrrap ADD
fac_usrrap_autorefresh
NUMBER(1)
DEFAULT 0
CONSTRAINT fac_c_fac_usrrap_refresh CHECK (fac_usrrap_autorefresh IN (0,1));
///////////////////////////////////////////////////////////////////////////////////////////////// CONN#557
ALTER TABLE mld_adres ADD
mld_adres_aanmaak
DATE
DEFAULT SYSDATE;
ALTER TABLE mld_adres ADD
mld_adres_verwijder
DATE;
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#273
INSERT INTO fac_groep (fac_groep_omschrijving) VALUES ('_Default');
INSERT INTO fac_gebruikersgroep
(fac_groep_key, prs_perslid_key)
SELECT fac_groep_key, prs_perslid_key
FROM fac_groep g, prs_v_aanwezigperslid p
WHERE g.fac_groep_upper = '_DEFAULT'
AND g.fac_groep_verwijder IS NULL
AND p.prs_perslid_oslogin IS NOT NULL
AND NOT EXISTS (SELECT 'x'
FROM fac_gebruikersgroep gg
WHERE gg.prs_perslid_key = p.prs_perslid_key);
/* zijdelings gerelateerd */
ALTER TABLE fac_gebruikersgroep
DROP CONSTRAINT fac_r_fac_groep_key;
ALTER TABLE fac_gebruikersgroep
ADD CONSTRAINT fac_r_fac_groep_key FOREIGN KEY (fac_groep_key)
REFERENCES fac_groep (fac_groep_key) ON DELETE CASCADE;
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#106
DECLARE maxval NUMBER(10);
seqval NUMBER;
BEGIN SELECT MAX(bez_actie_key) INTO maxval
FROM bez_actie;
SELECT bez_s_bez_actie_key.nextval INTO seqval FROM DUAL;
WHILE seqval<maxval LOOP
SELECT bez_s_bez_actie_key.nextval INTO seqval FROM DUAL;
END LOOP;
END
/
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#266
ALTER TABLE prs_perslid ADD
prs_perslid_login DATE;
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#325
ALTER TABLE mld_melding ADD
mld_melding_user_key
NUMBER(10)
CONSTRAINT mld_r_prs_perslid_key0 REFERENCES prs_perslid(prs_perslid_key);
UPDATE mld_melding m
SET mld_melding_user_key = (SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_oslogin = m.mld_melding_username);
-- Er kunnen meldingen zijn ingevoerd door mensen die een andere login hebben gekregen:
SELECT DISTINCT mld_melding_username FROM mld_melding
WHERE mld_melding_user_key IS NULL
ORDER BY 1;
/*
-- Is niet meer nodig, omdat we de username nog even behouden tot de volgende release
-- Overzicht van meldingnummers waarvan de invoerder niet meer te achterhalen is:
SELECT mld_melding_key, mld_melding_username FROM mld_melding
WHERE mld_melding_user_key IS NULL
ORDER BY 1;
*/
///////////////////////////////////////////////////////////////////////////////////////////////// CONN#536
/* Voor de zekerheid: actieve personen bij inactieve afdelingen moeten inactief worden */
DELETE FROM prs_perslidwerkplek
WHERE prs_perslid_key IN (SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_afdeling_key IN (SELECT prs_afdeling_key
FROM prs_afdeling d
WHERE d.prs_afdeling_verwijder IS NOT NULL));
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_afdeling_key IN (SELECT prs_afdeling_key
FROM prs_afdeling d
WHERE d.prs_afdeling_verwijder IS NOT NULL)
AND prs_perslid_verwijder IS NULL;
/* Bedrijf is niet meer verplicht */
ALTER TABLE prs_afdeling DROP CONSTRAINT prs_c_prs_afd_bedrijf_key;
UPDATE prs_afdeling
SET prs_bedrijf_key = NULL
WHERE prs_afdeling_parentkey IS NOT NULL;
/* Bedrijf OF parent is nu verplicht */
ALTER TABLE prs_afdeling ADD
CONSTRAINT prs_c_prs_afdeling_parent
CHECK ((prs_afdeling_parentkey IS NULL AND prs_bedrijf_key IS NOT NULL)
OR (prs_afdeling_parentkey IS NOT NULL AND prs_bedrijf_key IS NULL));
///////////////////////////////////////////////////////////////////////////////////////////////// FSN#1228
/* We hernoemen de functies om consistent te blijven */
UPDATE fac_functie set fac_functie_code='WEB_BEZBOF' where fac_functie_code = 'WEB_BEZBAC';
DEF_FAC_FUNCTIE2('WEB_BEZBAC', 'Info:Bezoekers', 'BEZ', 13, 0,'Om historische gegevens m.b.t. bezoekers te kunnen raadplegen');
///////////////////////////////////////////////////////////////////////////////////////////////// CONN#479
ALTER TABLE prs_bedrijf ADD
prs_bedrijf_ingids /* is zichtbaar in telefoongids */
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_ingids CHECK(prs_bedrijf_ingids IS NULL
OR prs_bedrijf_ingids = 1 );
///////////////////////////////////////////////////////////////////////////////////////////////// FSN#1240
CREATE_TABLE(imp_schedule, 0)
(
imp_schedule_key NUMBER(10)
, imp_schedule_name VARCHAR2(20)
, imp_schedule_aanmaak DATE DEFAULT SYSDATE
, imp_schedule_done DATE
);
CREATE SEQUENCE fac_s_imp_schedule_key MINVALUE 1;
CREATE_TRIGGER(fac_t_imp_schedule_B_IU)
BEFORE INSERT OR UPDATE ON imp_schedule
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(imp_schedule_key, fac_s_imp_schedule_key);
END;
/
///////////////////////////////////////////////////////////////////////////////////////////////// FSN#1265
ALTER TABLE bes_disc_params ADD
bes_disc_params_module VARCHAR2(3) DEFAULT 'BES';
// REP had nog geen parameters
INSERT INTO bes_disc_params (bes_ins_discipline_key, bes_disc_params_module)
SELECT ins_discipline_key, 'REP' from ins_tab_discipline
WHERE ins_discipline_module='REP';
// REP is nu gewoon BES geworden
UPDATE ins_tab_discipline
SET ins_discipline_module='BES'
WHERE ins_discipline_module='REP';
UPDATE fac_functie set fac_functie_module='FAC' WHERE fac_functie_module='REP';
UPDATE fac_functie set fac_functie_module='INS' WHERE fac_functie_module='SLE';
DELETE FROM fac_module where fac_module_name='REP';
DELETE FROM fac_module where fac_module_name='SLE';
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#339
UPDATE res_disc_params SET res_disc_params_preposttime = 0 WHERE res_disc_params_preposttime IS NULL;
ALTER TABLE res_disc_params ADD
CONSTRAINT res_c_disc_preposttime CHECK (res_disc_params_preposttime IS NOT NULL);
///////////////////////////////////////////////////////////////////////////////////////////////// PZHO#93
ALTER TABLE MLD_KENMERK
DROP CONSTRAINT MLD_U_MLD_KENMERK;
ALTER TABLE MLD_KENMERK ADD (
CONSTRAINT MLD_U_MLD_KENMERK UNIQUE (mld_srtkenmerk_key, mld_stdmelding_key, mld_typeopdr_key, mld_kenmerk_niveau, mld_kenmerk_verwijder));
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#390
UPDATE res_alg_ruimte
SET res_alg_ruimte_verwijder = (SELECT res_ruimte_verwijder
FROM res_ruimte
WHERE res_ruimte_key = res_alg_ruimte.res_ruimte_key)
WHERE res_alg_ruimte_verwijder IS NULL;
///////////////////////////////////////////////////////////////////////////////////////////////// UWVA#460
DEF_FAC_MESSAGE ('KPN_OPENST_OPDRACHT', 'is kostenplaats bij opdracht', '');
DEF_FAC_MESSAGE ('KPN_OPENST_MELDING', 'is kostenplaats bij melding/aanvraag', '');
DEF_FAC_MESSAGE ('KPN_OPENST_RES_R', 'is kostenplaats bij zaalreservering', '');
DEF_FAC_MESSAGE ('KPN_OPENST_RES_V', 'is kostenplaats bij voorzieningreservering', '');
DEF_FAC_MESSAGE ('KPN_OPENST_RES_C', 'is kostenplaats voor cateringbestelling', '');
/////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////// CONN#676
ALTER TABLE prs_kostenplaatsgrp ADD
(
prs_perslid_key
NUMBER(10)
CONSTRAINT prs_r_prs_perslid_key11 REFERENCES prs_perslid(prs_perslid_key)
);
//
// NEW INDICES
//
create index bes_i_bes_bestelling3 on bes_bestelling (prs_perslid_key);
create index bes_i_bes_bestelling4 on bes_bestelling (bes_bestelling_owner_key);
create index bes_i_bes_bestelling5 on bes_bestelling (bes_bestelling_fiat_user);
create index bes_i_bes_bestelling6 on bes_bestelling (prs_kostenplaats_key);
create index bes_i_bes_bestelling_item3 on bes_bestelling_item (bes_bestelling_i_gcpt_us_key);
create index bes_i_bes_bestelopdr_datum on bes_bestelopdr(bes_bestelopdr_datum);
create index bes_i_bes_bestelopdr_item on bes_bestelopdr_item(bes_bestelopdr_item_verwerkt);
create index bez_i_bez_afspraak_bez1 on bez_afspraak (bez_afspraak_contact_key);
create index bez_i_bez_afspraak_bez2 on bez_afspraak (bez_afspraak_host_key);
create index bez_i_bez_afspraak_bez3 on bez_afspraak (prs_perslid_key);
create index bez_i_bez_afspraak_bez4 on bez_afspraak (bez_afspraak_datum);
create index bez_i_bez_bezoeker_afsp on bez_bezoekers (bez_afspraak_key);
create index cnt_i_cnt_contract6 on cnt_contract (prs_contactpersoon_key);
create index cnt_i_cnt_contract7 on cnt_contract (prs_perslid_key_eig);
create index cnt_i_cnt_contract8 on cnt_contract (prs_perslid_key_beh);
create index mld_i_mld_melding7 on mld_melding (prs_perslid_key);
create index mld_i_mld_melding8 on mld_melding (mld_melding_ingezien_user);
create index mld_i_mld_melding9 on mld_melding (mld_melding_afgemeld_user);
create index mld_i_mld_opdr10 on mld_opdr (mld_opdr_afgemeld_user);
create index mld_i_mld_opdr11 on mld_opdr(mld_opdr_datumbegin);
create index mld_i_mld_opdr12 on mld_opdr(mld_opdr_verwerkt);
create index mld_i_mld_opdr13 on mld_opdr(prs_kostenplaats_key);
create index mld_i_mld_opdr8 on mld_opdr (prs_perslid_key);
create index mld_i_mld_opdr9 on mld_opdr (prs_contactpersoon_key);
create index res_i_res_artikel1 on res_artikel(res_discipline_key);
create index res_i_res_deel2 on res_deel(res_discipline_key);
create index res_i_res_reservering1 on res_reservering (res_reservering_host_key);
create index res_i_res_reservering2 on res_reservering (res_reservering_contact_key);
create index res_i_res_reservering3 on res_reservering (res_reservering_user_key);
create index res_i_res_reservering4 on res_reservering(prs_kostenplaats_key);
create index res_i_res_rsv_artikel2 on res_rsv_artikel(res_rsv_artikel_verwerkt);
create index res_i_res_rsv_artikel3 on res_rsv_artikel(res_rsv_ruimte_key);
create index res_i_res_rsv_deel3 on res_rsv_deel(bez_bezoekers_key);
create index res_i_res_rsv_deel4 on res_rsv_deel(res_rsv_deel_van);
create index res_i_res_rsv_deel5 on res_rsv_deel(res_rsv_deel_verwerkt);
create index res_i_res_rsv_deel6 on res_rsv_deel(res_rsv_ruimte_key);
create index res_i_res_rsv_ruimte6 on res_rsv_ruimte(res_rsv_ruimte_van);
create index res_i_res_rsv_ruimte7 on res_rsv_ruimte(res_rsv_ruimte_verwerkt);
create index res_i_res_ruimte3 on res_ruimte(res_discipline_key);
/////////////////////////////// DDL CLEANUP STATEMENTS //////////////////////////////////////////
-- Let op: de nu volgende statements mogen falen; het betreft hier het opruimen van een aantal
-- inmiddels vervallen zaken, die al niet meer aanwezig zijn bij de recentere gebruikers
ALTER TABLE cnt_contract DROP COLUMN cnt_contract_kostenplaats;
ALTER TABLE ins_tab_discipline DROP COLUMN akz_kostensoort;
ALTER TABLE ins_tab_discipline DROP COLUMN ins_discipline_kostensoort;
--Om customers de mogelijkheid te bieden dit veld nog in de conversie op te nemen,
--blijft deze tot de volgende relase nog bestaan
--ALTER TABLE mld_melding DROP COLUMN mld_melding_username;
--ALTER TABLE prs_afdeling DROP COLUMN prs_afdeling_kostenplaats;
ALTER TABLE mld_melding DROP COLUMN prs_afdeling_key;
--ALTER TABLE bes_bestelling DROP COLUMN prs_afdeling_key;
--ALTER TABLE res_reservering DROP COLUMN prs_afdeling_key;
ALTER TABLE mld_opdr DROP COLUMN mld_alg_kostenpost_key;
ALTER TABLE mld_stdmelding DROP COLUMN mld_stdmelding_kostensoort;
ALTER TABLE cnt_contract DROP CONSTRAINT cnt_u_cnt_contract_nummer;
DROP INDEX cnt_u_cnt_contract_nummer;
ALTER TABLE fac_gebruikersgroep DROP COLUMN fac_gebruikersgroep_username;
-- Opmerking: het gaat hierbij om de DROP COLUMN, de regels ervoor en erna MOGEN evt falen (Oracle 8/9)
ALTER TABLE res_Artikel DROP CONSTRAINT RES_K_RES_ARTIKEL_KEY;
ALTER TABLE res_artikel DROP COLUMN res_srtartikel_key;
ALTER TABLE res_Artikel ADD CONSTRAINT RES_K_RES_ARTIKEL_KEY PRIMARY KEY (RES_ARTIKEL_KEY);
DROP PACKAGE cad;
DROP PROCEDURE fac_p_fac_gebruiker_opschonen;
DROP SEQUENCE alg_s_alg_kostenpost_key;
DROP SEQUENCE cad_s_cad_symbool_key;
DROP SEQUENCE fac_s_fac_gebruiker_key;
DROP SEQUENCE fac_s_fac_rol_key;
DROP SEQUENCE mld_s_mld_bestelopdr_key;
DROP SEQUENCE mld_s_mld_bestelregel_key;
DROP VIEW alg_v_aanwezigkostenpost;
DROP VIEW alg_v_alg_kostenpost_gegevens;
DROP VIEW alg_v_mld_kostenpost_bedrijf;
DROP VIEW alg_v_mld_kostenpost_besteed1;
DROP VIEW alg_v_mld_kostenpost_geraamd;
DROP VIEW alg_v_mld_kostenpost_perslid;
DROP VIEW bez_v_bezoekers_balie;
DROP VIEW bez_v_prs_perslid_gegevens;
DROP VIEW cad_v_alg_ruimte_tekening;
DROP VIEW cad_v_ins_deel_tekening;
DROP VIEW cad_v_lpn_alg_gebouw_1;
DROP VIEW cad_v_lpn_alg_gebouw_2;
DROP VIEW cad_v_lpn_alg_ruimte_1;
DROP VIEW cad_v_lpn_alg_ruimte_2;
DROP VIEW cad_v_lpn_alg_terreinsector_1;
DROP VIEW cad_v_lpn_alg_terreinsector_2;
DROP VIEW cad_v_lpn_ins_deel_1;
DROP VIEW cad_v_lpn_ins_deel_2;
DROP VIEW cad_v_lpn_prs_werkplek_1;
DROP VIEW cad_v_lpn_prs_werkplek_2;
DROP VIEW fac_v_my_alg_district_read;
DROP VIEW fac_v_my_alg_district_write;
DROP VIEW fac_v_my_alg_gebouw_read;
DROP VIEW fac_v_my_alg_gebouw_write;
DROP VIEW fac_v_my_alg_locatie_read;
DROP VIEW fac_v_my_alg_locatie_write;
DROP VIEW fac_v_my_alg_regio_read;
DROP VIEW fac_v_my_alg_regio_write;
DROP VIEW fac_v_my_alg_ruimte_read;
DROP VIEW fac_v_my_alg_ruimte_write;
DROP VIEW fac_v_my_alg_verdieping_read;
DROP VIEW fac_v_my_alg_verdieping_write;
DROP VIEW fac_v_rapport_fac311_body;
DROP VIEW fac_v_rapport_fac311_header;
DROP VIEW fac_v_rapport_fac311_selblok;
DROP VIEW mld_v_bestelopdr_gegevens;
DROP VIEW mld_v_melding_status_gegevens;
DROP VIEW mld_v_mld_melding_gegevens;
DROP VIEW mld_v_mld_meldingprint;
DROP VIEW mld_v_mld_opdrachtgeprint;
DROP VIEW mld_v_mld_opdrachtgeprint_all;
DROP VIEW prs_v_afdeling_niveau;
DROP VIEW prs_v_perslid_filter;
DROP VIEW rep_discipline;
DROP VIEW rep_v_aanwezigdiscipline;
DROP VIEW REP_V_AANWEZIGSRTDEEL;
DROP VIEW REP_V_AANWEZIGSRTGROEP;
DROP TABLE alg_kostenpost;
DROP TABLE cad_slnkstruct;
DROP TABLE cad_symbool;
DROP TABLE fac_form;
DROP TABLE fac_gebruiker;
DROP TABLE fac_privilege;
DROP TABLE fac_rol;
DROP TABLE mld_bestelregel;
DROP TABLE mld_bestelopdr;
-- DROP TABLE cnt_contract_dienst?;
-- PRSAAN LAN opruimen
DROP VIEW PRS_V_SECURITY_GEGEVENS;
DROP VIEW PRS_V_FACILITY_GEGEVENS;
DROP VIEW PRS_V_AANWEZIGSECURITY;
DROP VIEW PRS_V_AANWEZIGFACILITY;
DROP TABLE PRS_SECURITY;
DROP TABLE PRS_FACILITY;
DROP SEQUENCE prs_s_prs_security_key;
DROP SEQUENCE prs_s_prs_facility_key;
// module FAC is geen externe module (meer)
UPDATE fac_functie SET fac_functie_module='WEB' where fac_functie_module='FAC';
UPDATE fac_module SET fac_module_extern=1 where fac_module_extern=2;
/////////////////////////////////////////////////////////////////////////////////////////////////
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Facilitor 4.60.9'
WHERE FAC_MESSAGE_CODE = 'FAC_M002';
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Welkom bij Facilitor 4.60.9'
WHERE FAC_MESSAGE_CODE = 'FAC_M035';
COMMIT;
SPOOL OFF
///////////////////////////// now recreate all views, triggers etc acc to the latest state ///////
START recreate.sql
SET ECHO OFF
SET DEFINE ON
PROMPT De upgrade is gereed.. Controleer de LST-files.
PROMPT !BEHEERDER Verwijder zonodig de verplichting om het aantal bij een reservering aan te geven
PROMPT !BEHEERDER Beperkt zonodig de toegestane combinaties ruimtecategorie x activiteit,
PROMPT !BEHEERDER Controleer of de aanduidingen 'Kostenplaats vereist' bij vakgroepen, categorien en catalogi overeenstemt met uw organisatie!
PROMPT
PROMPT Voor de afronding van de Graphics II conversie moet in AutoCAD
PROMPT het gegenereerde 450to460.scr worden uitgevoerd