Files
Database/_UP/DB10to11.src
2012-05-06 12:54:48 +00:00

732 lines
32 KiB
Plaintext

/* DB10TO11.SRC
* Update script van Facilitor schema DB10 naar DB11
* $Revision$
* $Id$
*/
#include "prologue.inc"
////////////////////////////////////////////////////////////////////////////////////////// RWSN#19201
DEF_FAC_FUNCTIE2('WEB_RESNOS', 'Backoffice:Reserv-noshow', 'RES', 11, 1,'Om no-show van reserveringen te kunnen registreren');
-- Compatibel blijven: iedereen met WEB_RESBOF ook dit nieuwe recht geven
INSERT INTO fac_groeprechten (fac_groep_key, fac_gebruiker_prs_level_write, fac_gebruiker_prs_level_read, fac_gebruiker_alg_level_write, fac_gebruiker_alg_level_read, fac_functie_key, ins_discipline_key
)
SELECT g.fac_groep_key,
-1, -1, -1, -1,
f.fac_functie_key,
g.ins_discipline_key
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_RESBOF')
AND f.fac_functie_code='WEB_RESNOS'
AND (g.fac_groep_key, f.fac_functie_key, g.ins_discipline_key) NOT IN
(SELECT fac_groep_key, fac_functie_key, ins_discipline_key FROM fac_groeprechten);
ALTER TABLE res_rsv_ruimte ADD res_rsv_ruimte_bezoekers_shown
NUMBER(5)
CONSTRAINT res_c_rsv_ruimte_bez_shown CHECK((res_rsv_ruimte_bezoekers_shown IS NULL) OR (res_rsv_ruimte_bezoekers_shown >= 0));
////////////////////////////////////////////////////////////////////////////////////////// FSN#19263
CREATE_TABLE(res_srtactiviteit, 0)
( res_srtactiviteit_key
NUMBER(10)
CONSTRAINT res_k_res_srtactiviteit_key PRIMARY KEY
, res_srtactiviteit_omschrijving
VARCHAR2(30)
CONSTRAINT res_c_res_activiteit_oms CHECK(res_srtactiviteit_omschrijving IS NOT NULL)
, res_srtactiviteit_opmerking
VARCHAR2(2000)
, res_srtactiviteit_prefix
VARCHAR2(3)
, res_srtactiviteit_kostenklant
NUMBER(1)
, res_srtactiviteit_kpnverplicht
NUMBER(1) DEFAULT(0)
CONSTRAINT res_c_srtactiviteit_kpn CHECK(res_srtactiviteit_kpnverplicht IN (0,1))
, res_srtactiviteit_aanmaak
DATE
DEFAULT SYSDATE
, res_srtactiviteit_verwijder
DATE
DEFAULT NULLDATUM
, res_srtactiviteit_soort
NUMBER(1)
, CONSTRAINT res_u_res_activiteit_omsch UNIQUE(res_srtactiviteit_omschrijving, res_srtactiviteit_verwijder, res_srtactiviteit_soort)
);
CREATE SEQUENCE res_s_res_srtactiviteit_key MINVALUE 10;
INSERT INTO res_srtactiviteit (res_srtactiviteit_key, res_srtactiviteit_omschrijving, res_srtactiviteit_soort) VALUES (1, 'Ruimte', 0);
INSERT INTO res_srtactiviteit (res_srtactiviteit_key, res_srtactiviteit_omschrijving, res_srtactiviteit_soort) VALUES (2, 'Voorzieningen', 1);
ALTER TABLE res_activiteit ADD res_srtactiviteit_key NUMBER(10)
CONSTRAINT res_r_res_srtactiviteit_key REFERENCES res_srtactiviteit(res_srtactiviteit_key);
-- Alle activiteiten die voorkomen bij RES-ruimten krijgen type 1 (Ruimte)
UPDATE res_activiteit
SET res_srtactiviteit_key = 1
WHERE res_activiteit_key IN (SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NULL);
-- Alle (overige) activiteiten die voorkomen bij ALG-ruimten krijgen type 2 (Voorzieningen)
UPDATE res_activiteit
SET res_srtactiviteit_key = 2
WHERE res_activiteit_key IN (SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NOT NULL)
AND res_srtactiviteit_key IS NULL;
-- De activiteiten die in *beide hoedanigheden* voorkwamen zijn nu bij 1 ingedeeld.
-- Daarvoor moet er nu nog een 2-variant worden aangemaakt
INSERT INTO res_activiteit (res_activiteit_omschrijving, res_activiteit_duur, res_srtactiviteit_key, res_activiteit_verwijder)
SELECT res_activiteit_omschrijving, res_activiteit_duur, 2, res_activiteit_verwijder
FROM res_activiteit
WHERE res_activiteit_key IN
(SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NULL)
AND res_activiteit_key IN
(SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NOT NULL);
-- Alle CV-catalogus combinaties van dubbelen moeten nu ook voor de gekopieerde CV-versie gelden
INSERT INTO res_activiteitdiscipline (res_discipline_key, res_activiteit_key
)
SELECT d.res_discipline_key, a2.res_activiteit_key
FROM res_activiteitdiscipline d, ins_tab_discipline, res_activiteit a1, res_activiteit a2
WHERE d.res_discipline_key = ins_discipline_key
AND ins_discipline_min_level IN (1, 2)
AND a1.res_activiteit_omschrijving = a2.res_activiteit_omschrijving
AND COALESCE (a1.res_activiteit_duur, -1) = COALESCE (a2.res_activiteit_duur, -1)
AND COALESCE (a1.res_activiteit_verwijder, SYSDATE) = COALESCE (a2.res_activiteit_verwijder, SYSDATE)
AND a1.res_activiteit_key = d.res_activiteit_key
AND a1.res_srtactiviteit_key = 1
AND a2.res_srtactiviteit_key = 2
AND a2.res_activiteit_soort IS NULL
AND a1.res_activiteit_key IN
(SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NULL)
AND a1.res_activiteit_key IN
(SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NOT NULL);
-- Vervang voor die dubbelen de verwijzing van de 1 versie door de 2 versie.
-- Kopieer de res_kenmerken voor de nieuwe activiteiten
INSERT INTO res_kenmerk (res_srtkenmerk_key, res_activiteit_key, res_kenmerk_niveau, res_kenmerk_toonbaar, res_kenmerk_uniek, res_kenmerk_hint, res_kenmerk_verplicht, res_kenmerk_volgnummer, res_kenmerk_default, res_kenmerk_verwijder
)
SELECT k1.res_srtkenmerk_key,
r2.res_activiteit_key,
k1.res_kenmerk_niveau,
k1.res_kenmerk_toonbaar,
k1.res_kenmerk_uniek,
k1.res_kenmerk_hint,
k1.res_kenmerk_verplicht,
k1.res_kenmerk_volgnummer,
k1.res_kenmerk_default,
k1.res_kenmerk_verwijder
FROM res_activiteit r1, res_activiteit r2, res_kenmerk k1
WHERE r1.res_activiteit_omschrijving = r2.res_activiteit_omschrijving
AND COALESCE (r1.res_activiteit_duur, -1) = COALESCE (r2.res_activiteit_duur, -1)
AND COALESCE (r1.res_activiteit_verwijder, SYSDATE) = COALESCE (r2.res_activiteit_verwijder, SYSDATE)
AND r1.res_activiteit_key = k1.res_activiteit_key
AND r1.res_srtactiviteit_key = 1
AND r2.res_srtactiviteit_key = 2
AND r1.res_activiteit_key IN
(SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NULL)
AND r1.res_activiteit_key IN
(SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NOT NULL);
-- vervang de kenmerkwaarden (res_kenmerk_key1 -> res_kenmerk_key2)
UPDATE res_kenmerkwaarde kw
SET res_kenmerk_key =
(SELECT k2.res_kenmerk_key
FROM res_kenmerk k1, res_kenmerk k2
WHERE kw.res_kenmerk_key = k1.res_kenmerk_key
AND k1.res_kenmerk_key <> k2.res_kenmerk_key
AND k2.res_srtkenmerk_key = k1.res_srtkenmerk_key
AND COALESCE (k2.res_kenmerk_volgnummer, -1) = COALESCE (k1.res_kenmerk_volgnummer, -1)
AND COALESCE (k2.res_kenmerk_verwijder, SYSDATE) = COALESCE (k1.res_kenmerk_verwijder, SYSDATE))
WHERE kw.res_kenmerk_key IN
(SELECT k1.res_kenmerk_key
FROM res_kenmerk k1
WHERE k1.res_activiteit_key IN
(SELECT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NULL)
AND k1.res_activiteit_key IN
(SELECT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key
AND rrr.alg_ruimte_key IS NOT NULL));
-- TENSLOTTE
-- Vervang voor die dubbelen de verwijzing van de 1 versie door de 2 versie.
UPDATE res_rsv_ruimte rrr
SET res_activiteit_key =
(SELECT r2.res_activiteit_key
FROM res_activiteit r1, res_activiteit r2
WHERE r1.res_activiteit_omschrijving = r2.res_activiteit_omschrijving
AND COALESCE (r1.res_activiteit_duur, -1) = COALESCE (r2.res_activiteit_duur, -1)
AND COALESCE (r1.res_activiteit_verwijder, SYSDATE) =
COALESCE (r2.res_activiteit_verwijder, SYSDATE)
AND rrr.res_activiteit_key = r1.res_activiteit_key
AND r1.res_srtactiviteit_key = 1
AND r2.res_srtactiviteit_key = 2)
WHERE res_activiteit_key IN (SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NULL)
AND res_activiteit_key IN
(SELECT DISTINCT rrr.res_activiteit_key
FROM res_rsv_ruimte rrr, res_activiteit ra
WHERE rrr.res_activiteit_key = ra.res_activiteit_key AND rrr.alg_ruimte_key IS NOT NULL)
AND alg_ruimte_key IS NOT NULL;
-- Kolom res_activiteit_soort kan nu weg: onderin
DEF_MENUITEM(2, 'lcl_menu_res_srtactiviteiten' , '', 'RES', 'appl/facmgtVB/res_srtactiviteitgrid.asp', 0, 0, 'WEB_RESMGT', 'W', '1');
-- Default-optie, dus toevoegen. VOOR lcl_menu_res_reserveerbare_rui
INSERT INTO fac_menu (fac_menuitems_key, fac_menu_volgnr
)
SELECT i.fac_menuitems_key, m.fac_menu_volgnr - 2
FROM fac_menuitems i, fac_menu m
WHERE i.fac_menuitems_key = (SELECT mmi.fac_menuitems_key
FROM fac_menuitems mmi
WHERE mmi.fac_menuitems_label = 'lcl_menu_res_srtactiviteiten')
AND m.fac_menuitems_key =
(SELECT mm.fac_menuitems_key
FROM fac_menu mm, fac_menuitems mmi
WHERE mm.fac_menuitems_key = mmi.fac_menuitems_key
AND mmi.fac_menuitems_label = 'lcl_menu_res_reserveerbare_rui');
////////////////////////////////////////////////////////////////////////////////////////// CONN#19238
/* welke inspecties, controles etc gelden er voor objecten van deze soorten */
CREATE_TABLE(ins_srtcontrole, 0)
(
ins_srtcontrole_key
NUMBER(10)
PRIMARY KEY,
ins_srtinstallatie_key
NUMBER(10),
ins_srtcontrole_niveau
VARCHAR2(1)
CONSTRAINT ins_c_srtcontrole_niveau1 CHECK
(ins_srtcontrole_niveau IS NOT NULL AND (ins_srtcontrole_niveau IN( 'D', 'G', 'S'))),
ins_srtcontrole_omschrijving
VARCHAR2(60)
NOT_NULL(ins_srtcontrole_omschrijving, ins_c_srtcontrole_omschrijving),
ins_srtcontrole_info
VARCHAR2(320),
ins_srtcontrole_periode /* in dagen */
NUMBER(4)
NOT_NULL(ins_srtcontrole_periode, ins_c_ins_srtcontrole_periode)
);
CREATE_TABLE(ins_controlemode, 0)
(
ins_controlemode_key
NUMBER(10)
PRIMARY KEY,
ins_controlemode_oms
VARCHAR(30 CHAR)
NOT_NULL(ins_controlemode_oms, ins_c_controlemode_oms),
ins_controlemode_opmerking
VARCHAR(2000 CHAR),
CONSTRAINT ins_u_ins_controlemode_oms UNIQUE (ins_controlemode_oms)
);
/* wanneer zijn de inspecties uitgevoerd */
CREATE_TABLE(ins_deelsrtcontrole, 0)
(
ins_deelsrtcontrole_key
NUMBER(10)
PRIMARY KEY,
ins_deel_key
NUMBER(10)
NOT NULL REFERENCES ins_deel ON DELETE CASCADE,
ins_srtcontrole_key
NUMBER(10)
NOT NULL REFERENCES ins_srtcontrole ON DELETE CASCADE,
ins_deelsrtcontrole_datum
DATE
NOT NULL,
ins_controlemode_key
NUMBER(10)
NOT NULL REFERENCES ins_controlemode ON DELETE SET NULL,
ins_deelsrtcontrole_opmerking
VARCHAR(2000 CHAR),
CONSTRAINT ins_u_ins_deelsrtcontrole UNIQUE (ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_datum)
);
CREATE SEQUENCE ins_s_ins_srtcontrole_key MINVALUE 10;
CREATE SEQUENCE ins_s_ins_controlemode_key MINVALUE 10;
CREATE SEQUENCE ins_s_ins_deelsrtcontrole_key MINVALUE 1;
/* triggers volgen vanzelf */
ALTER TABLE ins_deel ADD ins_deel_vervaldatum DATE;
/////////////////////////////////////////////////////////////////////////////////////////// RWSN#19654
ALTER TABLE fac_usrdata
ADD fac_usrdata_vervaldatum DATE;
/////////////////////////////////////////////////////////////////////////////////////////// AAEN#19784
ALTER TABLE bes_bestelling
ADD prs_perslid_key_voor NUMBER(10)
CONSTRAINT bes_r_prs_perslid_key1 REFERENCES prs_perslid(prs_perslid_key);
UPDATE bes_bestelling
SET prs_perslid_key_voor = prs_perslid_key
WHERE prs_perslid_key_voor IS NULL;
create index bes_i_bes_bestelling9 on bes_bestelling (prs_perslid_key_voor);
ALTER TABLE mld_melding
ADD prs_perslid_key_voor NUMBER(10)
CONSTRAINT mld_r_prs_perslid_key1 REFERENCES prs_perslid(prs_perslid_key);
UPDATE mld_melding
SET prs_perslid_key_voor = prs_perslid_key
WHERE prs_perslid_key_voor IS NULL;
create index mld_i_mld_melding14 on mld_melding (prs_perslid_key_voor);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#19935
-- DIT IS OOK WEL HET MOMENT OM BALLAST WEG TE GOOIEN! NOG MEER DAN DIT?
-- Purge alle verwijderde nooit bestelde artikelen
DELETE FROM ins_srtdeel x
WHERE ins_srtdeel_verwijder IS NOT NULL
AND ins_srtdeel_module='BES'
AND NOT EXISTS (SELECT ''
FROM bes_bestelling_item i
WHERE i.ins_srtdeel_key = x.ins_srtdeel_key);
CREATE_TABLE(bes_srtgroep,0)
(
bes_srtgroep_key
NUMBER(10)
CONSTRAINT bes_k_bes_srtgroep_key PRIMARY KEY,
ins_discipline_key
NUMBER(10)
NOT_NULL(ins_discipline_key, bes_r_ins_discipline_key1)
CONSTRAINT bes_r_ins_discipline_key2 REFERENCES ins_tab_discipline,
bes_srtgroep_omschrijving
VARCHAR2(60)
NOT_NULL(bes_srtgroep_omschrijving, bes_c_bes_srtgroep_omschr),
bes_srtgroep_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(bes_srtgroep_aanmaak, bes_c_bes_srtgroep_aanmaak),
bes_srtgroep_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT bes_u_bes_srtgroep_oms UNIQUE(ins_discipline_key, bes_srtgroep_omschrijving, bes_srtgroep_verwijder)
);
CREATE_TABLE(bes_srtdeel,0)
(
bes_srtdeel_key
NUMBER(10)
CONSTRAINT bes_k_bes_srtdeel_key PRIMARY KEY,
bes_srtgroep_key
NUMBER(10)
NOT_NULL(bes_srtgroep_key, bes_r_bes_srtgroep_key1)
CONSTRAINT bes_r_bes_srtgroep_key2 REFERENCES bes_srtgroep,
bes_srtdeel_code
VARCHAR2(10)
NOT_NULL(bes_srtdeel_code, bes_c_bes_srtdeel_code),
bes_srtdeel_omschrijving
VARCHAR2(100)
NOT_NULL(bes_srtdeel_omschrijving, bes_c_bes_srtdeel_omschrijving),
bes_srtdeel_opmerking
VARCHAR(2000 CHAR),
bes_srtdeel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(bes_srtdeel_aanmaak, bes_c_bes_srtdeel_aanmaak),
bes_srtdeel_verwijder
DATE
DEFAULT NULLDATUM,
bes_srtdeel_volgnr
NUMBER(3),
bes_srtdeel_prijs
NUMBER(8,2),
bes_srtdeel_inkprijs
NUMBER(8,2),
bes_srtdeel_btw
NUMBER(3),
bes_srtdeel_eenheid
VARCHAR2(30),
bes_srtdeel_dimensie
NUMBER(1),
bes_srtdeel_preview /* BES: wel(1)/geen(0) preview tonen voor bestellen */
NUMBER(1)
DEFAULT 0,
bes_srtdeel_nr
VARCHAR2(32),
prs_bedrijf_key
NUMBER(10)
CONSTRAINT bes_r_prs_bedrijf_key3 REFERENCES prs_bedrijf(prs_bedrijf_key),
bes_srtdeel_vervaldatum
DATE,
bes_srtdeel_image
VARCHAR2(255),
bes_srtdeel_veelvoud
NUMBER(6),
bes_srtdeel_minimum
NUMBER(6),
bes_staffeltabel_key
NUMBER(10)
CONSTRAINT bes_r_staffeltabel2 REFERENCES bes_staffeltabel(bes_staffeltabel_key),
bes_srtdeel_prsflex /* kan wel(1) of geen (0)persoonsafhankelijke flexkenmerken bevatten */
NUMBER(1)
DEFAULT 0,
bes_srtdeel_voorraadmin
NUMBER(6),
bes_srtdeel_voorraadmax
NUMBER(6)
);
create index bes_i_bes_srtdeel1 on bes_srtdeel(bes_srtgroep_key);
CREATE INDEX bes_i_bes_srtdeel_prs_bdr_key on bes_srtdeel (prs_bedrijf_key);
INSERT INTO bes_srtgroep (bes_srtgroep_key, ins_discipline_key, bes_srtgroep_omschrijving, bes_srtgroep_aanmaak, bes_srtgroep_verwijder
)
SELECT ins_srtgroep_key,
ins_discipline_key,
ins_srtgroep_omschrijving,
ins_srtgroep_aanmaak,
ins_srtgroep_verwijder
FROM ins_srtgroep
WHERE ins_srtgroep_module = 'BES';
INSERT INTO bes_srtdeel (bes_srtdeel_key, bes_srtgroep_key, bes_srtdeel_code,
bes_srtdeel_omschrijving, bes_srtdeel_opmerking, bes_srtdeel_aanmaak,
bes_srtdeel_verwijder, bes_srtdeel_volgnr, bes_srtdeel_prijs, bes_srtdeel_inkprijs,
bes_srtdeel_btw, bes_srtdeel_eenheid, bes_srtdeel_dimensie, bes_srtdeel_preview,
bes_srtdeel_nr, prs_bedrijf_key, bes_srtdeel_vervaldatum, bes_srtdeel_image,
bes_srtdeel_veelvoud, bes_srtdeel_minimum, bes_staffeltabel_key, bes_srtdeel_prsflex,
bes_srtdeel_voorraadmin, bes_srtdeel_voorraadmax
)
SELECT ins_srtdeel_key,
ins_srtgroep_key,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_srtdeel_opmerking,
ins_srtdeel_aanmaak,
ins_srtdeel_verwijder,
ins_srtdeel_volgnr,
ins_srtdeel_prijs,
ins_srtdeel_inkprijs,
ins_srtdeel_btw,
ins_srtdeel_eenheid,
ins_srtdeel_dimensie,
ins_srtdeel_opmaat,
ins_srtdeel_nr,
prs_bedrijf_key,
ins_srtdeel_vervaldatum,
ins_srtdeel_image,
ins_srtdeel_veelvoud,
ins_srtdeel_minimum,
bes_staffeltabel_key,
ins_srtdeel_prsflex,
ins_srtdeel_voorraadmin,
ins_srtdeel_voorraadmax
FROM ins_srtdeel
WHERE ins_srtdeel_module = 'BES'
AND ins_srtgroep_key IN (SELECT bes_srtgroep_key FROM bes_srtgroep);
CREATE SEQUENCE bes_s_bes_srtgroep_key MINVALUE 1;
CREATE SEQUENCE bes_s_bes_srtdeel_key MINVALUE 1;
CREATE_TRIGGER(bes_t_bes_srtgroep_B_IU)
BEFORE INSERT OR UPDATE ON bes_srtgroep
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bes_srtgroep_key,bes_s_bes_srtgroep_key);
SET_VERWIJDER_CHILDREN(bes_srtdeel, bes_srtgroep_key, bes_srtgroep_verwijder,
bes_srtdeel_verwijder,bes_srtgroep);
END;
/
CREATE_TRIGGER(bes_t_bes_srtdeel_B_IU)
BEFORE INSERT OR UPDATE ON bes_srtdeel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bes_srtdeel_key,bes_s_bes_srtdeel_key);
END;
/
-- Zet de sequences hoog genoeg voor Vanaf nu
DECLARE
maxval NUMBER (10);
seqval NUMBER;
BEGIN
SELECT MAX (bes_srtgroep_key) INTO maxval FROM bes_srtgroep;
SELECT bes_s_bes_srtgroep_key.NEXTVAL INTO seqval FROM DUAL;
WHILE seqval < maxval
LOOP
SELECT bes_s_bes_srtgroep_key.NEXTVAL INTO seqval FROM DUAL;
END LOOP;
END;
/
DECLARE
maxval NUMBER (10);
seqval NUMBER;
BEGIN
SELECT MAX (bes_srtdeel_key) INTO maxval FROM bes_srtdeel;
SELECT bes_s_bes_srtdeel_key.NEXTVAL INTO seqval FROM DUAL;
WHILE seqval < maxval
LOOP
SELECT bes_s_bes_srtdeel_key.NEXTVAL INTO seqval FROM DUAL;
END LOOP;
END;
/
-- Nu alle BES-verwijzingen omcatten
ALTER TABLE bes_bestelling_item
ADD bes_srtdeel_key NUMBER(10)
CONSTRAINT bes_c_bes_srtdeel_key1 CHECK(bes_srtdeel_key IS NOT NULL)
CONSTRAINT bes_r_bes_srtdeel_key REFERENCES bes_srtdeel(bes_srtdeel_key);
CREATE INDEX bes_i_bes_bestelling_item5 ON bes_bestelling_item(bes_srtdeel_key);
UPDATE bes_bestelling_item
SET bes_srtdeel_key=ins_srtdeel_key
WHERE bes_srtdeel_key IS NULL;
ALTER TABLE bes_favoriet
ADD bes_srtdeel_key NUMBER(10) REFERENCES bes_srtdeel(bes_srtdeel_key) ON DELETE CASCADE;
UPDATE bes_favoriet SET bes_srtdeel_key=ins_srtdeel_key;
/////////////////////////////////////////////////////////////////////////////////////////// FSN#19910
-- TRIGGER DEFINITIE MOET HIER WORDEN OPGENOMEN, ANDERS HELPT DIT NIET
-- Uit: mld_tri.src;82
-- start fragment
CREATE_TRIGGER(mld_t_mld_melding_B_IU)
BEFORE INSERT OR UPDATE ON mld_melding
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_melding_key, mld_s_mld_melding_key);
IF :new.mld_alg_onroerendgoed_keys IS NOT NULL
AND (:old.mld_alg_onroerendgoed_keys IS NULL
OR :old.mld_alg_onroerendgoed_keys <> :new.mld_alg_onroerendgoed_keys)
THEN
CHECK_REFERENCE_ONROERENDGOED(mld_alg_onroerendgoed_keys, 'alg_m090'); /* wordt m.i. geimpliceerd door het volgende */
SELECT alg_locatie_key
INTO :NEW.mld_alg_locatie_key
FROM mld_v_onroerendgoed_locatie
WHERE alg_onroerendgoed_keys = :NEW.mld_alg_onroerendgoed_keys;
END IF;
IF :new.mld_melding_einddatum IS NULL THEN
:new.mld_melding_einddatum := fac.datumtijdplusuitvoertijd (:new.mld_melding_datum, :new.mld_melding_uitvoertijd, 'DAGEN');
END IF;
SELECT mld_ins_discipline_key
INTO :NEW.mld_ins_discipline_key
FROM mld_stdmelding
WHERE mld_stdmelding_key = :NEW.mld_stdmelding_key;
IF :new.prs_perslid_key IS NULL
THEN
APPLICATION_ERROR_GOTO(-20000, 'mld_m233');
END IF;
IF :new.mld_melding_status = 5 AND :old.mld_melding_status <> 5
THEN
:new.mld_melding_behandelaar_key := NULL;
END IF;
IF :new.mld_melding_status = 6 AND :old.mld_melding_status <> 6
THEN
IF :old.mld_melding_status <> 5
THEN
raise_application_error (-20000, 'mld_m203');
ELSE
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_opdr
WHERE mld_statusopdr_key NOT IN (1, 2, 7)
AND mld_melding_key = :new.mld_melding_key;
raise_application_error (-20000, 'mld_m192');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN TOO_MANY_ROWS
THEN
raise_application_error (-20000, 'mld_m192');
END;
END IF;
END IF;
IF :new.mld_melding_status = 4 OR :new.mld_melding_status = 7
THEN
DECLARE
actieveopdrachten NUMBER;
BEGIN
SELECT COUNT(*)
INTO actieveopdrachten
FROM mld_opdr o
WHERE o.mld_melding_key = :new.mld_melding_key
AND mld_statusopdr_key NOT IN (1, 2, 6, 7, 9);
IF actieveopdrachten > 0
THEN
:new.mld_melding_status := 7;
ELSE
:new.mld_melding_status := 4;
END IF;
END;
END IF;
END;
/
-- eind fragment
DECLARE
CURSOR c1
IS
SELECT mld_melding_key
FROM mld_melding m
WHERE mld_melding_status = 4
AND EXISTS (SELECT mld_opdr_key
FROM mld_opdr o
WHERE o.mld_melding_key = m.mld_melding_key
AND o.mld_statusopdr_key NOT IN (1, 6, 7));
BEGIN
FOR rec1 IN c1
LOOP
mld.updatemeldingstatus (rec1.mld_melding_key, 0, NULL);
END LOOP;
END;
/
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#17993
ALTER TABLE mld_typeopdr DROP CONSTRAINT mld_c_mld_typeopdr_decentraal;
ALTER TABLE mld_typeopdr ADD CONSTRAINT mld_c_mld_typeopdr_decentraal CHECK(mld_typeopdr_decentraal IN (0,1,2));
/////////////////////////////////////////////////////////////////////////////////////////// WTCA#19646
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving, mld_statusopdr_upper, mld_statusopdr_module)
VALUES (9, 'Afgerond', 'MLD_AFGEROND', 'MLD');
DEF_FAC_FUNCTIE2('WEB_ORDAFR', 'Backoffice:Opdrachten-afronden', 'MLD', 15, 1,'Om afgemelde opdrachten financieel te kunnen afronden');
DEF_FAC_SRTNOT('ORDAFR', 0, 'Opdracht ##OPDRKEY## is kostentechnisch gereed gemeld', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht');
ALTER TABLE mld_typeopdr ADD mld_typeopdr_afmeldmarge NUMBER(2);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#19946
ALTER TABLE prj_werkplek MODIFY prj_werkplek_volgnr NUMBER(4);
/////////////////////////////////////////////////////////////////////////////////////////// RWSN#19924
DEF_FAC_FUNCTIE2('WEB_CNTUSE', 'Backoffice:Contractgegevens','CNT', 15, 1,'Om een deel van contractgegevens te kunnen beheren');
-- Compatibel blijven: iedereen met WEB_CNTMAN ook dit nieuwe recht geven
INSERT INTO fac_groeprechten (fac_groep_key, fac_gebruiker_prs_level_write, fac_gebruiker_prs_level_read, fac_gebruiker_alg_level_write, fac_gebruiker_alg_level_read, fac_functie_key, ins_discipline_key
)
SELECT g.fac_groep_key,
-1, -1, -1, -1,
f.fac_functie_key,
g.ins_discipline_key
FROM fac_groeprechten g, fac_functie f
WHERE g.fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_CNTMAN')
AND f.fac_functie_code='WEB_CNTUSE'
AND (g.fac_groep_key, f.fac_functie_key, g.ins_discipline_key) NOT IN
(SELECT fac_groep_key, fac_functie_key, ins_discipline_key FROM fac_groeprechten);
/////////////////////////////////////////////////////////////////////////////////////////// CONN#19238
DEF_MENUITEM(2, 'lcl_menu_ins_srtcontrole' , '', 'INS', 'appl/facmgtVB/ins_srtcontrolegrid.asp', 0, 0, 'WEB_INSMGT', 'W', '1');
DEF_MENUITEM(2, 'lcl_menu_ins_controlemode' , '', 'INS', 'appl/facmgtVB/ins_controlemodegrid.asp', 0, 0, 'WEB_INSMGT', 'W', '1');
-- Default-opties, dus toevoegen. Na lcl_menu_ins_kenmerkdomeinen
INSERT INTO fac_menu (fac_menuitems_key, fac_menu_volgnr
)
SELECT i.fac_menuitems_key, m.fac_menu_volgnr + 2
FROM fac_menuitems i, fac_menu m
WHERE i.fac_menuitems_key = (SELECT mmi.fac_menuitems_key
FROM fac_menuitems mmi
WHERE mmi.fac_menuitems_label = 'lcl_menu_ins_srtcontrole')
AND m.fac_menuitems_key =
(SELECT mm.fac_menuitems_key
FROM fac_menu mm, fac_menuitems mmi
WHERE mm.fac_menuitems_key = mmi.fac_menuitems_key
AND mmi.fac_menuitems_label = 'lcl_menu_ins_kenmerkdomeinen');
INSERT INTO fac_menu (fac_menuitems_key, fac_menu_volgnr
)
SELECT i.fac_menuitems_key, m.fac_menu_volgnr + 4
FROM fac_menuitems i, fac_menu m
WHERE i.fac_menuitems_key = (SELECT mmi.fac_menuitems_key
FROM fac_menuitems mmi
WHERE mmi.fac_menuitems_label = 'lcl_menu_ins_controlemode')
AND m.fac_menuitems_key =
(SELECT mm.fac_menuitems_key
FROM fac_menu mm, fac_menuitems mmi
WHERE mm.fac_menuitems_key = mmi.fac_menuitems_key
AND mmi.fac_menuitems_label = 'lcl_menu_ins_kenmerkdomeinen');
DEF_MENUITEM(1, 'lcl_menu_ins_controle' , '', 'INS', 'appl/ins/ins_search.asp?urole=bo&inspect=1', 0, 0, 'WEB_INSMAN', 'R', '0');
/////////////////////////////////////////////////////////////////////////////////////////// RWSN#15155
ALTER TABLE mld_stdmelding ADD mld_stdmelding_afmeldtext NUMBER(1) DEFAULT 1;
/////////////////////////////////////////////////////////////////////////////////////////// AANS#16329
UPDATE fac_functie SET fac_functie_min_level=11 WHERE fac_functie_code='WEB_FINBOF';
/////////////////////////////////////////////////////////////////////////////////////////// AADS#18665
ALTER TABLE mld_typeopdr DROP CONSTRAINT mld_c_mld_typeopdr_match;
ALTER TABLE mld_typeopdr ADD CONSTRAINT mld_c_mld_typeopdr_match CHECK(mld_typeopdr_matchtype IN (0,1,2,3,4));
/////////////////////////////////////////////////////////////////////////////////////////// CONN#19141
ALTER TABLE mld_kenmerk DROP CONSTRAINT mld_r_mld_srtkenmerk_key3;
ALTER TABLE mld_kenmerk ADD CONSTRAINT mld_r_mld_srtkenmerk_key3 FOREIGN KEY(mld_typeopdr_key) REFERENCES mld_typeopdr(mld_typeopdr_key) ON DELETE CASCADE;
///////////////////////////////////////////////////////////////////////////////////////////
ALTER TABLE fac_menu ADD fac_menu_image VARCHAR2 (255 CHAR);
ALTER TABLE fac_menuitems ADD fac_menuitems_image VARCHAR2 (255 CHAR);
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#18720
UPDATE fac_functie SET fac_functie_module='FIN' WHERE fac_functie_code IN('WEB_ORDSUP', 'WEB_ORDFIN');
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#19909
CREATE_TABLE(fac_session, 0)
(
fac_session_sessionid VARCHAR(32), -- HEX-codering 32 byte random
fac_session_data VARCHAR(256), -- De oorspronkelijke URL
fac_session_expire DATE DEFAULT SYSDATE+(1/24),
fac_session_aanmaak DATE DEFAULT SYSDATE,
prs_perslid_key NUMBER(10)
CONSTRAINT fac_r_prs_perslid_key2 REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE
);
///////////////////////////////////////////////////////////////////////////////////////////
DROP TABLE res_srtdiscipline;
ALTER TABLE res_activiteit DROP COLUMN res_activiteit_soort CASCADE CONSTRAINTS;
ALTER TABLE bes_bestelling_item DROP COLUMN ins_srtdeel_key CASCADE CONSTRAINTS;
ALTER TABLE bes_favoriet DROP COLUMN ins_srtdeel_key CASCADE CONSTRAINTS;
DELETE FROM ins_srtdeel WHERE ins_srtdeel_module = 'BES';
DELETE FROM ins_srtgroep WHERE ins_srtgroep_module = 'BES';
DROP VIEW mld_v_melding_openopdr;
DROP VIEW mld_v_openopdr;
/////////////////////////////////////////////////////////////////////////////////////////// FSN#
create index res_i_res_rsv_ruimte13 on res_rsv_ruimte (res_rsv_ruimte_tot, res_rsv_ruimte_van);
COMMIT;
///////////////////////////////////////////////////////////////////////////////////////////
REGISTERONCE('$Workfile: DB10to11.src $','$Revision$')
#include "epilogue.inc"