272 lines
10 KiB
Plaintext
272 lines
10 KiB
Plaintext
set echo on
|
|
SPOOL 130to131
|
|
--
|
|
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\130TO131.SQL]
|
|
--
|
|
-- Update script van Facilitor 2.0 versie 1.30 naar 1.31
|
|
--
|
|
|
|
/*
|
|
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
|
|
* om #ifdef's te gebruiken voor de diverse modules.
|
|
*
|
|
* Gebruik daar waar in de *.SQL-variant geen commentaar-tekst moet komen de
|
|
* C-style van uitcommentarieren. Daar waar WEL tekst in de uitvoer moet komen
|
|
* moet -- gebruikt worden.
|
|
*
|
|
* Revisie:
|
|
*
|
|
* dd-mm-yy xxx LOG#yyyy:
|
|
*
|
|
* 31-07-97 AH Initiele waardes voor SCH_SRTVLOER toegevoegd
|
|
* 29-07-97 AH LOG#1400, ALG_IMPORT_RUIMTENR nu 10 ipv 6
|
|
* 28-07-97 AH IMPORT_SRTVLOER: In ALG_IMPORT-table moet ALG_IMPORT_VLOER-kolom toegevoegd
|
|
* worden
|
|
* 24-07-97 AH #1422, MLD_MELDING krijgt redundant veld MLD_ALG_LOCATIE_KEY
|
|
* 23-07-97 AH #1415: In MLD_T_MLD_OPDR_B_IU mag ALG_KOSTENPOST niet gewijzigd worden, MUTATING-table
|
|
* enz... Dus is het gedeelte maar verplaatst naar MLD117/Verwerken.
|
|
* 23-07-97 AH #1411, sch_m027 aangepast
|
|
* 23-07-97 AH #1407, SCH_M035, M036, M037 aangepast
|
|
* 23-07-97 AH #1405: SCH_ACTIVITEIT_PPM, .._SHORT en SCH_ACTIVITEIT_PPR, .._SHORT toegevoegd
|
|
* SCH_V_WERKZAAMHEDEN_GEGEVENS aangepast, sch_activiteit_volgnr toegevoegd
|
|
* 22-07-97 AH #1401: Grootte SCH_FREQUENTIE_CODE aangepast
|
|
* --- 01.30 ---
|
|
*/
|
|
|
|
#include "..\modules.h"
|
|
#include "..\comsql.h"
|
|
|
|
set heading off
|
|
|
|
clear screen
|
|
|
|
/*
|
|
* 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.
|
|
*/
|
|
|
|
PROMPT ***********************************************************************
|
|
PROMPT
|
|
PROMPT UPGRADE SCRIPT van Facilitor 2.0 versie 01.30 naar 01.31
|
|
PROMPT
|
|
SELECT 'De huidige versie van Facilitor zou moeten zijn 01.30 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 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 on
|
|
|
|
/* LOG#1401 , Doe de update via een tussentabel */
|
|
CREATE TABLE tmp_frequentie AS
|
|
SELECT * from sch_frequentie;
|
|
|
|
ALTER TABLE sch_frequentie
|
|
MODIFY
|
|
(
|
|
sch_frequentie_code
|
|
NULL
|
|
);
|
|
|
|
ALTER TABLE sch_frequentie
|
|
DROP CONSTRAINT sch_c_sch_frequentie_unique;
|
|
|
|
UPDATE sch_frequentie
|
|
SET sch_frequentie_code = NULL;
|
|
|
|
ALTER TABLE sch_frequentie
|
|
MODIFY
|
|
(
|
|
sch_frequentie_code
|
|
VARCHAR2(3)
|
|
);
|
|
|
|
UPDATE sch_frequentie SCH_F
|
|
SET SCH_F.sch_frequentie_code = (SELECT substr(TMP_F.sch_frequentie_code, 1, 3)
|
|
FROM tmp_frequentie TMP_F
|
|
WHERE TMP_F.sch_frequentie_key = SCH_F.sch_frequentie_key);
|
|
|
|
ALTER TABLE sch_frequentie
|
|
MODIFY
|
|
(
|
|
sch_frequentie_code
|
|
NOT NULL
|
|
);
|
|
|
|
ALTER TABLE sch_frequentie
|
|
ADD CONSTRAINT sch_c_sch_frequentie_unique UNIQUE(sch_frequentie_code);
|
|
|
|
DROP TABLE tmp_frequentie;
|
|
|
|
COMMIT;
|
|
|
|
/* LOG#1405 */
|
|
INSERT INTO FAC_ENTITY_NAME VALUES('SCH_ACTIVITEIT_PPM_SHORT','m2',NULL,NULL);
|
|
INSERT INTO FAC_ENTITY_NAME VALUES('SCH_ACTIVITEIT_PPR_SHORT','ruimte',NULL,NULL);
|
|
INSERT INTO FAC_ENTITY_NAME VALUES('SCH_ACTIVITEIT_PPM','per m2',NULL,NULL);
|
|
INSERT INTO FAC_ENTITY_NAME VALUES('SCH_ACTIVITEIT_PPR','per ruimte',NULL,NULL);
|
|
|
|
DELETE FROM FAC_MESSAGE
|
|
WHERE FAC_MESSAGE_CODE = 'SCH_PPM';
|
|
INSERT INTO FAC_MESSAGE VALUES('SCH_PPM','Prijs per m2');
|
|
|
|
CREATE OR REPLACE VIEW sch_v_werkzaamheden_gegevens
|
|
(sch_werkzaamheden_key,
|
|
sch_werkzaamheden_kosten,
|
|
sch_activiteit_code,
|
|
sch_activiteit_prijsprofiel,
|
|
sch_activiteit_volgnr,
|
|
sch_nivo_key,
|
|
sch_nivo_omschrijving,
|
|
alg_srtruimte_key,
|
|
alg_srtruimte_omschrijving,
|
|
alg_srtruimte_upper,
|
|
sch_srtvloer_key,
|
|
sch_srtvloer_omschrijving,
|
|
sch_srtvloer_upper,
|
|
sch_frequentie_key,
|
|
sch_frequentie_code) AS
|
|
SELECT SCH_W.sch_werkzaamheden_key,
|
|
SCH_W.sch_werkzaamheden_kosten,
|
|
SCH_A.sch_activiteit_code,
|
|
SCH_A.sch_activiteit_prijsprofiel,
|
|
SCH_A.sch_activiteit_volgnr,
|
|
SCH_N.sch_nivo_key,
|
|
SCH_N.sch_nivo_omschrijving,
|
|
SCH_W.sch_alg_srtruimte_key,
|
|
ALG_SR.alg_srtruimte_omschrijving,
|
|
ALG_SR.alg_srtruimte_upper,
|
|
SCH_W.sch_srtvloer_key,
|
|
SCH_SV.sch_srtvloer_omschrijving,
|
|
SCH_SV.sch_srtvloer_upper,
|
|
SCH_W.sch_frequentie_key,
|
|
SCH_F.sch_frequentie_code
|
|
FROM sch_werkzaamheden SCH_W, sch_activiteit SCH_A, sch_nivo SCH_N,
|
|
sch_v_aanwezigsrtvloer SCH_SV, alg_v_aanwezigsrtruimte ALG_SR,
|
|
sch_frequentie SCH_F
|
|
WHERE SCH_W.sch_activiteit_key = SCH_A.sch_activiteit_key
|
|
AND SCH_W.sch_nivo_key = SCH_N.sch_nivo_key
|
|
AND SCH_W.sch_frequentie_key = SCH_F.sch_frequentie_key
|
|
AND SCH_W.sch_srtvloer_key = SCH_SV.sch_srtvloer_key (+)
|
|
AND SCH_W.sch_alg_srtruimte_key = ALG_SR.alg_srtruimte_key (+);
|
|
|
|
|
|
/* LOG#1407 */
|
|
DELETE FROM FAC_MESSAGE
|
|
WHERE FAC_MESSAGE_CODE IN ('SCH_M035','SCH_M036','SCH_M037');
|
|
INSERT INTO FAC_MESSAGE VALUES('SCH_M035','De geselecteerde schoonmaakniveau''s verwijderen?');
|
|
INSERT INTO FAC_MESSAGE VALUES('SCH_M036','Er zijn geen schoonmaakniveau''s geselecteerd');
|
|
INSERT INTO FAC_MESSAGE VALUES('SCH_M037','De geselecteerde werkzaamheden verwijderen?');
|
|
|
|
/* LOG#1411 */
|
|
DELETE FROM FAC_MESSAGE
|
|
WHERE FAC_MESSAGE_CODE IN ('SCH_M027');
|
|
INSERT INTO FAC_MESSAGE VALUES('SCH_M027','Verwijderen niet toegestaan, er zijn nog ruimtes met deze vloersoort.');
|
|
|
|
/* LOG#1415 */
|
|
CREATE OR REPLACE TRIGGER mld_t_mld_opdr_B_IU
|
|
BEFORE INSERT OR UPDATE ON mld_opdr
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :new.mld_opdr_key IS NULL THEN SELECT mld_s_mld_opdr_key.nextval INTO :new.mld_opdr_key FROM DUAL; END IF;
|
|
DECLARE dummy CHAR; BEGIN IF :new.mld_uitvoerende_keys IS NOT NULL THEN SELECT 'X' INTO dummy FROM mld_v_uitvoerende WHERE key = :new.mld_uitvoerende_keys; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN raise_application_error(-20000, 'ins_m22'); END;
|
|
|
|
END;
|
|
/
|
|
|
|
/* LOG#1422 voeg nieuwe column toe aan tabel mld_melding
|
|
* (deze wordt verderop nog NOT NULL)
|
|
*/
|
|
ALTER TABLE mld_melding
|
|
ADD
|
|
(
|
|
mld_alg_locatie_key
|
|
NUMBER(10)
|
|
REFERENCES alg_locatie(alg_locatie_key)
|
|
);
|
|
|
|
/* vul de nieuwe column voor alle reeds bestaande meldingen mbt
|
|
* gebouwen, verdiepingen en ruimtes
|
|
*/
|
|
UPDATE mld_melding
|
|
SET mld_alg_locatie_key = (SELECT alg_locatie_key
|
|
FROM mld_v_onroerendgoed_locatie
|
|
WHERE alg_onroerendgoed_keys = mld_alg_onroerendgoed_keys);
|
|
|
|
|
|
|
|
/* zet tenslotte de NOT NULL constraint op de column */
|
|
ALTER TABLE mld_melding
|
|
MODIFY
|
|
(
|
|
mld_alg_locatie_key
|
|
NOT NULL
|
|
);
|
|
|
|
CREATE OR REPLACE TRIGGER mld_t_mld_melding_B_IU
|
|
BEFORE INSERT OR UPDATE ON mld_melding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :new.mld_melding_key IS NULL THEN SELECT mld_s_mld_melding_key.nextval INTO :new.mld_melding_key FROM DUAL; END IF;
|
|
DECLARE dummy CHAR; BEGIN SELECT 'X' INTO dummy FROM alg_v_aanweziggebouw WHERE alg_gebouw_key = :new.mld_alg_onroerendgoed_keys; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN SELECT 'X' INTO dummy FROM alg_v_aanwezigverdieping WHERE alg_verdieping_key = :new.mld_alg_onroerendgoed_keys; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN SELECT 'X' INTO dummy FROM alg_v_aanwezigruimte WHERE alg_ruimte_key = :new.mld_alg_onroerendgoed_keys; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN SELECT 'X' INTO dummy FROM alg_v_aanwezigterreinsector WHERE alg_terreinsector_key = :new.mld_alg_onroerendgoed_keys; EXCEPTION WHEN NO_DATA_FOUND THEN raise_application_error(-20000,'alg_m090'); END; END; END; END;
|
|
|
|
IF :old.mld_alg_onroerendgoed_keys IS NULL
|
|
OR :old.mld_alg_onroerendgoed_keys <> :new.mld_alg_onroerendgoed_keys
|
|
THEN
|
|
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;
|
|
END;
|
|
/
|
|
|
|
/* IMPORT_SRTVLOER */
|
|
ALTER TABLE alg_import
|
|
ADD
|
|
(
|
|
alg_import_vloer
|
|
VARCHAR2(30)
|
|
);
|
|
|
|
/* LOG#1400 */
|
|
alter table alg_import
|
|
modify (alg_import_ruimtenr varchar2(10));
|
|
|
|
/* Initiele waardes voor SCH_SRTVLOER */
|
|
#ifdef SCH
|
|
#ifdef DATA
|
|
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Beton');
|
|
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Natuursteen');
|
|
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Vloertegels,glad');
|
|
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Vloertegels,ruw');
|
|
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Parket');
|
|
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Linoleum');
|
|
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Siergrind');
|
|
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Tapijt');
|
|
#endif // DATA
|
|
#endif // SCH
|
|
|
|
|
|
/* LOG#... */
|
|
/* werk vervolgens het versienummer en de datum bij (van alle interne modules) */
|
|
UPDATE fac_module
|
|
SET fac_module_version='01.31',
|
|
fac_module_date=TO_CHAR(SYSDATE,'YYYYMMDD');
|
|
|
|
COMMIT;
|
|
|
|
SPOOL OFF
|