Files
Database/_UP/123TO124.SRC
1998-09-23 08:56:36 +00:00

1352 lines
48 KiB
Plaintext

SPOOL 123to124
/*
* [V:\SQL\_UPDATE]
*
* Update script van versie 01.23 naar 01.24
*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* History:
*
* --- 01.24 ---
* 04-12-96 AH Controle op MLD_ADRES + MLD_M172 toegevoegd
* 04-12-96 AH PRS_M059 + BCO_M113 + MLD_T_MLD_OPDR_B_D aangepast.
* 03-12-96 AH BCO_M147 toegevoegd en BCO_M116/118/120/122 aangepast
* 03-12-96 AH ControleerGoedJaarweek toegevoegd en gebruik in NIETWERKBAAR
* en NIETBESCHIK toegevoegd
* 03-12-96 AH BCO_COMMENTAAR krijgt primary key
* 03-12-96 AH BCO_V_CORROPDR_BEDRIJF aangepast. Bij bestekken gaat het om
* Contractbedrijven ipv. UitvoerendeBedrijven.
* BCO_V_PERSLID_CORROPDR aangepast Naam voor Voorletters
* BCP_V_PERSLID aangepast. Naam voor Voorletters
* 03-12-96 AH BCO_M136, BCP_M076 aangepast
* 03-12-96 AH BCP_V_PREVOPDR_GEGEVENS aangepast.
* 03-12-96 AH MLD_BESTELREGEL aangepast
* 02-12-96 AH MLD_M124, BCO_M126 en 127 aangepast, PRS_SRTBEDRIJF toegevoegd
* 02-12-96 AH BCO_NIETBESCHIK_UREN aangepast.
* 29-11-96 AH Extra velden voor BEBIS en Entities en messages toegevoegd.
* En schermen toegevoegd in FAC_FORM
* 27-11-96 AH LOG#1081: BCP_M119-120 toegevoegd, BCP_T_BCP_TAAK_B_IU-verwijder-
* controle weggehaald.
* 27-11-96 AH LOG#1068: UNIQUE op BCO_NIETBESCHIK en trigger aangepast
* 26-11-96 AH LOG#1080: Functie BepaalEinWeek toegevoegd
* 26-11-96 AH LOG#1080: BCO_V_CORROPDR_ORDER aangemaakt voor de ordering op
* eindweek in de planning
* 26-11-96 AH LOG#1079: BCP_M110 - BCP_M118, BCO_M139 - 145 toegevoegd
* 25-11-96 AH LOG#1074: BCO_M138 toegevoegd
* 22-11-96 AH LOG#1073: MLD_ADRES-table toegevoegd en MLD_BESTELOPDR-adressen
* 22-11-96 AH LOG#1073: MLD_S_MLD_ADRES_KEY toegevoegd
* 22-11-96 AH LOG#1073: MLD022 en MLD122 toegevoegd voor BCO
* 22-11-96 AH LOG#1073: MLD_ADRES entities en messages toegevoegd
* 21-11-96 AH LOG#1072: Verwijderen MLD_OPDR mag ook werkregels en bestelregels
* verwijderen, om consistentie met BCP_PREVOPDR
* BCP_M109 toegevoegd
* 20-11-96 AH LOG#1069: BCP_V_PREVOPDR_BEDRIJF aangepast voor Bestek en
* zijn Contractbedrijf, BCP_V_DEFAULTUITV aangepast.
* 20-11-96 AH LOG#1066: BCP_V_HISTORISCH_OVZ aangepast, BCP_PREVOPDR_KEY
* toegevoegd
* 20-11-96 AH LOG#1066: MLD_OPDR_KEY toegevoegd in MLD_V_OVZ
* 19-11-96 AH LOG#1057: BCO_M126 en 127 aangepast
* 19-11-96 PF Update van fac_module toegevoegd
* 19-11-96 AH LOG#1034: BCP_M108 toegevoegd
* --- 01.23 ---
*/
#include <modules.h>
#include <comsql.h>
PROMPT Upgrading van versie 123 naar 124...
DEF_FAC_MESSAGE ('BCP_M108', '%1% uitgegeven preventieve opdrachten zijn weer ingetrokken');
UPDATE fac_module SET fac_module_version='01.24*',
fac_module_date=to_char(sysdate, 'YYYYMMDD');
DELETE FROM fac_message
WHERE fac_message_code IN ('BCO_M126',
'BCO_M127');
INSERT INTO FAC_MESSAGE VALUES('BCO_M126', 'Totale uren moet groter zijn dan de preventieve uren plus de storingsuren');
INSERT INTO FAC_MESSAGE VALUES('BCO_M127', 'Totale uren moet groter zijn dan de correctieve uren plus de storingsuren');
#ifdef MLD
CREATE_VIEW(MLD_V_OVZ,NORMAAL_PRIVILEGE) (ALG_LOCATIE_KEY, ALG_LOCATIE_OMSCHRIJVING,
ALG_ONRGOED_KEY, ALG_GEBOUW_KEY,
ALG_TERREINSECTOR_KEY, ALG_ONRGOED_OMSCHRIJVING,
INS_DISCIPLINE_KEY, INS_DISCIPLINE_OMSCHRIJVING,
INS_SRTGROEP_KEY, INS_SRTGROEP_OMSCHRIJVING,
MLD_UITVOERENDE_KEYS, MLD_UITVOERENDE_OMSCHRIJVING,
MLD_MELDING_KEY, MLD_OPDR_KEY, MLD_OPDR_DATUMUITGEVOERD,
MLD_OPDR_WERKZAAMHEDEN, MLD_UREN, MLD_MATERIAAL,
MLD_KOSTEN, MLD_OPDR_MODULE,
MLD_TYPEOPDR_KEY,
MLD_TYPEOPDR_OMSCHRIJVING
#ifdef MRA
, MRA_HFDCATEGORIE_KEY, MRA_HFDCATEGORIE_OMSCHRIJVING,
MRA_SRTGROEPVERV_KEY, MRA_SRTGROEPVERV_OMSCHRIJVING
#endif
) AS
SELECT ALG_L.ALG_LOCATIE_KEY,
ALG_L.ALG_LOCATIE_OMSCHRIJVING,
MLD_OL.ALG_ONROERENDGOED_KEYS,
MLD_OL.ALG_GEBOUW_KEY,
MLD_OL.ALG_TERREINSECTOR_KEY,
MLD_OL.ALG_ONRGOED_OMSCHRIJVING,
#ifdef INS
INS_D.INS_DISCIPLINE_KEY,
INS_D.INS_DISCIPLINE_OMSCHRIJVING,
INS_D.INS_SRTGROEP_KEY,
INS_D.INS_SRTGROEP_OMSCHRIJVING,
#else
to_number(NULL),
NULL,
to_number(NULL),
NULL,
#endif
MLD_U.KEY,
MLD_U.NAAM,
MLD_M.MLD_MELDING_KEY,
MLD_O.MLD_OPDR_KEY,
MLD_O.MLD_OPDR_DATUMUITGEVOERD,
MLD_O.MLD_OPDR_WERKZAAMHEDEN,
MLD_O.MLD_OPDR_UREN,
MLD_O.MLD_OPDR_MATERIAAL,
MLD_O.MLD_OPDR_KOSTEN,
MLD_O.MLD_OPDR_MODULE,
MLD_T.MLD_TYPEOPDR_KEY,
MLD_T.MLD_TYPEOPDR_OMSCHRIJVING
#ifdef MRA
, MRA_H.MRA_HFDCATEGORIE_KEY,
MRA_H.MRA_HFDCATEGORIE_OMSCHRIJVING,
MRA_SGV.MRA_SRTGROEPVERV_KEY,
MRA_SGV.MRA_SRTGROEPVERV_OMSCHRIJVING
#endif
FROM MLD_OPDR MLD_O,
MLD_MELDING MLD_M,
MLD_V_ONROERENDGOED_LOCATIE MLD_OL,
ALG_LOCATIE ALG_L,
#ifdef INS
INS_V_SRTINST_DISCIPLINE INS_D,
#endif
MLD_V_UITVOERENDE MLD_U,
MLD_STATUSOPDR MLD_S,
MLD_TYPEOPDR MLD_T
#ifdef MRA
, MRA_CATEGORIE MRA_C,
MRA_HFDCATEGORIE MRA_H,
MRA_SRTDEELVERV MRA_SDV,
MRA_SRTGROEPVERV MRA_SGV
#endif
WHERE MLD_O.MLD_MELDING_KEY = MLD_M.MLD_MELDING_KEY
AND MLD_M.MLD_ALG_ONROERENDGOED_KEYS = MLD_OL.ALG_ONROERENDGOED_KEYS
AND MLD_OL.alg_locatie_key = ALG_L.alg_locatie_key
AND MLD_O.MLD_UITVOERENDE_KEYS = MLD_U.KEY
AND MLD_O.MLD_STATUSOPDR_KEY = MLD_S.MLD_STATUSOPDR_KEY
AND MLD_S.MLD_STATUSOPDR_OMSCHRIJVING = 'Verwerkt'
AND MLD_O.MLD_TYPEOPDR_KEY = MLD_T.MLD_TYPEOPDR_KEY
#ifdef INS
AND MLD_M.MLD_INS_SRTINST_KEYS = INS_D.INS_SRTINST_KEYS (+)
#endif
#ifdef MRA
AND MLD_M.MRA_CATEGORIE_KEY = MRA_C.MRA_CATEGORIE_KEY (+)
AND MRA_C.MRA_HFDCATEGORIE_KEY = MRA_H.MRA_HFDCATEGORIE_KEY (+)
AND MLD_M.MRA_SRTDEELVERV_KEY = MRA_SDV.MRA_SRTDEELVERV_KEY (+)
AND MRA_SDV.MRA_SRTGROEPVERV_KEY = MRA_SGV.MRA_SRTGROEPVERV_KEY (+)
#endif
;
#endif // MLD
#ifdef BCP
CREATE_VIEW(bcp_v_historisch_ovz,NORMAAL_PRIVILEGE)
(alg_locatie_key, alg_locatie_omschrijving,
alg_onrgoed_key, alg_gebouw_key,
alg_terreinsector_key, alg_onrgoed_omschrijving,
ins_discipline_key, ins_discipline_omschrijving,
ins_srtgroep_key, ins_srtgroep_omschrijving,
bcp_mld_uitvoerende_keys, mld_uitvoerende_omschrijving,
bcp_prevopdr_key, bcp_prevopdr_datumgereed,
bcp_prevopdr_werkzaamheden, bcp_uren, bcp_materiaal,
bcp_kosten) AS
SELECT ALG_L.alg_locatie_key,
ALG_L.alg_locatie_omschrijving,
MLD_OL.alg_onroerendgoed_keys,
MLD_OL.alg_gebouw_key,
MLD_OL.alg_terreinsector_key,
MLD_OL.alg_onrgoed_omschrijving,
INS_D.ins_discipline_key,
INS_D.ins_discipline_omschrijving,
INS_SG.ins_srtgroep_key,
INS_SG.ins_srtgroep_omschrijving,
MLD_U.key,
MLD_U.naam,
BCP_P.bcp_prevopdr_key,
BCP_P.bcp_prevopdr_datumgereed,
BCP_P.bcp_prevopdr_werkzaamheden,
BCP_P.bcp_prevopdr_uren,
BCP_P.bcp_prevopdr_materiaal,
BCP_P.bcp_prevopdr_kosten
FROM bcp_prevopdr BCP_P,
mld_v_uitvoerende MLD_U,
bcp_taak bcp_T,
bcp_verzamel BCP_V,
ins_srtdeel INS_SD,
ins_srtgroep INS_SG,
ins_discipline INS_D,
mld_v_onroerendgoed_locatie MLD_OL,
alg_locatie ALG_L,
mld_statusopdr MLD_S
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
AND MLD_OL.alg_locatie_key = ALG_L.alg_locatie_key
AND BCP_P.bcp_mld_uitvoerende_keys = MLD_U.key
AND BCP_P.bcp_mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_omschrijving = 'Verwerkt'
AND BCP_P.bcp_taak_key= BCP_T.bcp_taak_key
AND BCP_T.bcp_verzamel_key = BCP_V.bcp_verzamel_key
AND BCP_V.bcp_ins_srtdeel_key = INS_SD.ins_srtdeel_key
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key;
CREATE_VIEW(bcp_v_defaultuitv,NORMAAL_PRIVILEGE) (bcp_bco_defaultuitv_key,
naam,
type) AS
SELECT key, naam, type
FROM bco_v_defaultuitv;
CREATE_VIEW(bcp_v_prevopdr_bedrijf,NORMAAL_PRIVILEGE)
(bcp_uitv_omschrijving,
bcp_bedrijf_omschrijving,
bcp_mld_uitvoerende_keys,
prs_bedrijf_key,
bcp_prevopdr_somuren,
bcp_locatiegroep_key,
bcp_prevopdr_week) AS
SELECT PRS_S.prs_srtperslid_omschrijving,
PRS_U.prs_bedrijf_naam,
PRS_S.prs_srtperslid_key,
PRS_U.prs_bedrijf_key,
BCP_S.bcp_prevopdr_somuren,
BCP_O.bco_locatiegroep_key,
BCP_P.bcp_prevopdr_week
FROM prs_v_uitvoerendebedrijf PRS_U,
prs_srtperslid PRS_S,
bcp_v_aanwezigprevopdr BCP_P,
bcp_v_aanwezigtaak BCP_T,
bcp_v_onrgoed_op_locgroep BCP_O,
bcp_v_prevopdr_somuren BCP_S
WHERE BCP_P.bcp_taak_key = BCP_T.bcp_taak_key AND
BCP_T.bcp_alg_gebouw_key = BCP_O.alg_onrgoed_key AND
BCP_O.bco_locatiegroep_key = BCP_S.bcp_locatiegroep_key AND
BCP_P.bcp_prevopdr_week = BCP_S.bcp_prevopdr_week AND
BCP_P.bcp_mld_uitvoerende_keys = BCP_S.bcp_mld_uitvoerende_keys AND
BCP_P.bcp_mld_uitvoerende_keys = PRS_S.prs_srtperslid_key AND
PRS_U.prs_bedrijf_key = PRS_S.prs_bedrijf_key
UNION
SELECT PRS_E.prs_bestek_omschrijving,
PRS_U.prs_bedrijf_naam,
PRS_D.prs_disciplinebestek_key,
PRS_U.prs_bedrijf_key,
BCP_S.bcp_prevopdr_somuren,
BCP_O.bco_locatiegroep_key,
BCP_P.bcp_prevopdr_week
FROM prs_v_contractbedrijf PRS_U,
prs_disciplinebestek PRS_D,
prs_bestek PRS_E,
bcp_v_aanwezigprevopdr BCP_P,
bcp_v_aanwezigtaak BCP_T,
bcp_v_onrgoed_op_locgroep BCP_O,
bcp_v_prevopdr_somuren BCP_S
WHERE BCP_P.bcp_taak_key = BCP_T.bcp_taak_key AND
BCP_T.bcp_alg_gebouw_key = BCP_O.alg_onrgoed_key AND
BCP_O.bco_locatiegroep_key = BCP_S.bcp_locatiegroep_key AND
BCP_P.bcp_prevopdr_week = BCP_S.bcp_prevopdr_week AND
BCP_P.bcp_mld_uitvoerende_keys = BCP_S.bcp_mld_uitvoerende_keys AND
BCP_P.bcp_mld_uitvoerende_keys = PRS_D.prs_disciplinebestek_key AND
PRS_D.prs_bestek_key = PRS_E.prs_bestek_key AND
PRS_U.prs_bedrijf_key = PRS_E.prs_bedrijf_key
UNION
SELECT NULL,
PRS_U.prs_bedrijf_naam,
PRS_U.prs_bedrijf_key,
PRS_U.prs_bedrijf_key,
BCP_S.bcp_prevopdr_somuren,
BCP_O.bco_locatiegroep_key,
BCP_P.bcp_prevopdr_week
FROM prs_v_uitvoerendebedrijf PRS_U,
bcp_v_aanwezigprevopdr BCP_P,
bcp_v_aanwezigtaak BCP_T,
bcp_v_onrgoed_op_locgroep BCP_O,
bcp_v_prevopdr_somuren BCP_S
WHERE BCP_P.bcp_taak_key = BCP_T.bcp_taak_key AND
BCP_T.bcp_alg_gebouw_key = BCP_O.alg_onrgoed_key AND
BCP_O.bco_locatiegroep_key = BCP_S.bcp_locatiegroep_key AND
BCP_P.bcp_prevopdr_week = BCP_S.bcp_prevopdr_week AND
BCP_P.bcp_mld_uitvoerende_keys = BCP_S.bcp_mld_uitvoerende_keys AND
BCP_P.bcp_mld_uitvoerende_keys = PRS_U.prs_bedrijf_key;
CREATE OR REPLACE TRIGGER bcp_t_bcp_prevopdr_b_d
BEFORE DELETE ON bcp_prevopdr
FOR EACH ROW
BEGIN
/* Een verwerkte opdracht mag niet verwijderd worden */
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_statusopdr MLD_S
WHERE :old.bcp_mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_omschrijving = 'Verwerkt';
APPLICATION_ERROR(-20002, 'mld_m135');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
/* Een opdracht die voorkomt op een werkregel mag NU OOK verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
DELETE FROM bco_werkregel
WHERE bcp_mld_opdr_key = :old.bcp_prevopdr_key;
END;
/* Een opdracht komt nog voor in een bestelopdracht, mag NU OOK verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
DELETE FROM mld_bestelregel
WHERE bcp_mld_opdr_key = :old.bcp_prevopdr_key;
END;
END;
/
#endif // BCP
#ifdef MLD
CREATE OR REPLACE TRIGGER mld_t_mld_opdr_b_d
BEFORE DELETE ON mld_opdr
FOR EACH ROW
BEGIN
/* Een verwerkte opdracht mag niet verwijderd worden */
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_statusopdr MLD_S
WHERE :old.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_omschrijving = 'Verwerkt';
APPLICATION_ERROR(-20002, 'mld_m135');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
#ifdef BCO
/* Een opdracht die voorkomt op een werkregel mag NU OOK verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
DELETE FROM bco_werkregel
WHERE bcp_mld_opdr_key = :old.mld_opdr_key;
END;
#endif
/* Een opdracht komt nog voor in een bestelopdracht, mag NU OOK verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
DELETE FROM mld_bestelregel
WHERE bcp_mld_opdr_key = :old.mld_opdr_key;
END;
END;
/
#endif
DEF_FAC_MESSAGE ('BCP_M109', 'Preventieve opdracht %1% kan niet verwijderd worden.');
DEF_FAC_FORM('MLD022', NULL, NULL ,'210220','MLD_MLD022','Overzichtscherm Adres');
DEF_FAC_FORM('MLD122', NULL, NULL ,'211220','MLD_MLD122','Mutatiescherm Adres');
DEF_FAC_MESSAGE ('MLD_M164', 'Factuuradres');
DEF_FAC_MESSAGE ('MLD_M165', 'Opdrachtgeveradres');
DEF_FAC_MESSAGE ('MLD_M166', 'Afleveradres');
DEF_FAC_MESSAGE ('MLD_M167', 'Verwijderen adres');
DEF_FAC_MESSAGE ('MLD_M168', 'Verwijderen adres %1%?');
DEF_FAC_MESSAGE ('MLD_M169', 'Factuuradres is niet ingevuld.');
DEF_FAC_MESSAGE ('MLD_M170', 'Opdrachtgeveradres is niet ingevuld.');
DEF_FAC_MESSAGE ('MLD_M171', 'Afleveradres is niet ingevuld.');
DEF_FAC_ENTITY ('MLD_ADRES', 'Adres', 'Adressen', 'het');
DEF_FAC_ENTITY ('MLD_ADRES_NAAM', 'Naam', 'Namen', 'de');
DEF_FAC_ENTITY ('MLD_ADRES_BEZOEK', 'Bezoek', NULL, 'het');
DEF_FAC_ENTITY ('MLD_ADRES_BEZOEK_ADRES', 'Adres', 'Adressen', 'het');
DEF_FAC_ENTITY ('MLD_ADRES_GEBOUW_RUIMTE', 'Gebouw/Ruimte', , 'het');
DEF_FAC_ENTITY ('MLD_ADRES_BEZOEK_POSTCODE', 'Postcode', NULL, 'de');
DEF_FAC_ENTITY ('MLD_ADRES_BEZOEK_PLAATS', 'Plaats', 'Plaatsen', 'de');
DEF_FAC_ENTITY ('MLD_ADRES_BEZOEK_LAND', 'Land', 'Landen', 'het');
DEF_FAC_ENTITY ('MLD_ADRES_POST', 'Post', NULL, 'het');
DEF_FAC_ENTITY ('MLD_ADRES_POST_ADRES', 'Adres', 'Adressen', 'het');
DEF_FAC_ENTITY ('MLD_ADRES_POST_POSTCODE', 'Postcode', NULL, 'de');
DEF_FAC_ENTITY ('MLD_ADRES_POST_PLAATS', 'Plaats', 'Plaatsen', 'de');
DEF_FAC_ENTITY ('MLD_ADRES_POST_LAND', 'Land', 'Landen', 'het');
DEF_FAC_ENTITY ('MLD_ADRES_CONTACTPERSOON', 'Contactpersoon', NULL, 'het');
DEF_FAC_ENTITY ('MLD_ADRES_CONTACTPERS_TELEFOON', 'Telefoon', NULL, 'de');
DEF_FAC_ENTITY ('MLD_ADRES_CONTACTPERS_FAX', 'Fax', NULL, 'de');
DEF_FAC_ENTITY ('MLD_ADRES_CONTACTPERS_BUREAU', 'Bureau', NULL, 'het');
DEF_FAC_ENTITY ('MLD_ADRES_TELEFOON', 'Telefoon', NULL, 'de');
DEF_FAC_ENTITY ('MLD_ADRES_FAX', 'Fax', NULL, 'de');
DEF_FAC_ENTITY ('MLD_BESTELOPDR_OPDRGEVER', 'Opdrachtgever', NULL, 'de');
DEF_FAC_ENTITY ('MLD_BESTELOPDR_AANVRAGER', 'Aanvrager', NULL, 'de');
#ifdef MLD
CREATE_TABLE(mld_adres, NORMAAL_PRIVILEGE)
(
mld_adres_key
NUMBER(10)
PRIMARY KEY,
mld_adres_naam
VARCHAR2(30)
NOT NULL,
mld_adres_upper
VARCHAR2(30)
NOT NULL,
mld_adres_bezoek_adres
VARCHAR2(35),
mld_adres_bezoek_postcode
VARCHAR2(12),
mld_adres_bezoek_plaats
VARCHAR2(30),
mld_adres_bezoek_land
VARCHAR2(30),
mld_adres_post_adres
VARCHAR2(35),
mld_adres_gebouw_ruimte
VARCHAR2(30),
mld_adres_post_postcode
VARCHAR2(12),
mld_adres_post_plaats
VARCHAR2(30),
mld_adres_post_land
VARCHAR2(30),
mld_adres_contactpersoon
VARCHAR2(30),
mld_adres_contactpers_telefoon
VARCHAR2(15),
mld_adres_contactpers_fax
VARCHAR2(15),
mld_adres_contactpers_bureau
VARCHAR2(20),
mld_adres_telefoon
VARCHAR2(15),
mld_adres_fax
VARCHAR2(15),
mld_adres_factuuradres
NUMBER(1)
CHECK(mld_adres_factuuradres IS NULL
OR mld_adres_factuuradres = 1),
mld_adres_opdrachtadres
NUMBER(1)
CHECK(mld_adres_opdrachtadres IS NULL
OR mld_adres_opdrachtadres = 1),
mld_adres_afleveradres
NUMBER(1)
CHECK(mld_adres_afleveradres IS NULL
OR mld_adres_afleveradres = 1)
);
ALTER TABLE mld_bestelopdr
ADD
(
mld_bestelopdr_factuuradres
NUMBER(10)
REFERENCES mld_adres(mld_adres_key),
mld_bestelopdr_afleveradres
NUMBER(10)
REFERENCES mld_adres(mld_adres_key)
);
CREATE SEQUENCE mld_s_mld_adres_key MINVALUE 1;
CREATE TRIGGER mld_t_mld_adres_B_IU
BEFORE INSERT OR UPDATE ON mld_adres
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_adres_key, mld_s_mld_adres_key);
UPDATE_UPPER(mld_adres_naam, mld_adres_upper);
END;
/
#endif // MLD
DEF_FAC_MESSAGE ('BCO_M138', 'Er moeten 4 niet werkbare weken aangegeven worden.');
DEF_FAC_MESSAGE ('BCP_M110', 'Aanmaken preventieve weekplanning');
DEF_FAC_MESSAGE ('BCP_M111', 'Taken worden bijgewerkt');
DEF_FAC_MESSAGE ('BCP_M112', 'Nieuwe preventieve opdrachten worden aangemaakt');
DEF_FAC_MESSAGE ('BCP_M113', 'Preventieve opdrachten worden bijgewerkt');
DEF_FAC_MESSAGE ('BCP_M114', 'Bedrijven worden ingepland');
DEF_FAC_MESSAGE ('BCP_M115', 'Bestekken worden ingepland');
DEF_FAC_MESSAGE ('BCP_M116', 'Functies bij bedrijven worden ingepland');
DEF_FAC_MESSAGE ('BCP_M117', 'Personeelsleden worden ingepland');
DEF_FAC_MESSAGE ('BCP_M118', 'Preventieve planning voltooid.');
DEF_FAC_MESSAGE ('BCO_M139', 'Aanmaken correctieve weekplanning');
DEF_FAC_MESSAGE ('BCO_M140', 'Correctieve opdrachten worden bijgewerkt');
DEF_FAC_MESSAGE ('BCO_M141', 'Bedrijven worden ingepland');
DEF_FAC_MESSAGE ('BCO_M142', 'Bestekken worden ingepland');
DEF_FAC_MESSAGE ('BCO_M143', 'Functies bij bedrijven worden ingepland');
DEF_FAC_MESSAGE ('BCO_M144', 'Personeelsleden worden ingepland');
DEF_FAC_MESSAGE ('BCO_M145', 'Correctieve planning voltooid.');
#ifdef BCO
/* Bepaal de JAARWEEK van Jaarweek + aantak_weken, rekening houdend met
* jaargrenzen. Er wordt geen rekening gehouden met BCO_NIETWERKBAAR.
*/
CREATE OR REPLACE FUNCTION BCO_BepaalEindWeek(jaarweek IN NUMBER, weken IN NUMBER) RETURN NUMBER
IS
jaar NUMBER;
week NUMBER;
aantal_weken NUMBER;
eind_jaarweek NUMBER;
BEGIN
jaar := TO_NUMBER(SUBSTR(TO_CHAR(jaarweek), 1, 4));
week := TO_NUMBER(SUBSTR(TO_CHAR(jaarweek), 5, 2));
/* Bepaal het maximum aantal weken van het opgegeven jaar.
* Als 31-december in week 1 valt, dan zijn er 52 weken in het opgegeven
* jaar. Anders zijn er 53 weken in het opgegeven jaar.
*/
aantal_weken := to_number(to_char(to_date('31-12-'||TO_CHAR(jaar), 'DD-MM-YYYY'), 'IW'));
IF aantal_weken = 1
THEN
aantal_weken := 52;
END IF;
week := week + weken;
/* Als het nieuwe weeknummer over het aantal weken heen gaat
* moet het jaar 1 groter worden en weeknr kleiner worden
*/
IF week > aantal_weken
THEN
jaar := jaar + 1;
week := week - aantal_weken;
END IF;
eind_jaarweek := TO_NUMBER(LTRIM(TO_CHAR(jaar, '0999'))||LTRIM(TO_CHAR(week,'09')));
RETURN eind_jaarweek;
END;
/
CREATE_VIEW(bco_v_corropdr_order, NORMAAL_PRIVILEGE)
(mld_opdr_key,
mld_opdr_module,
bco_opdr_eindweek) AS
SELECT mld_opdr_key,
mld_opdr_module,
BCO_BepaalEindWeek(bco_opdr_weekingave, (mld_opdr_dagen/7))
FROM mld_opdr
WHERE mld_opdr_module = 'BCO';
ALTER TABLE bco_nietbeschik
ADD
UNIQUE(bco_prs_perslid_key, bco_nietbeschik_week, bco_nietbeschik_datum);
CREATE OR REPLACE TRIGGER bco_t_bco_nietbeschik_B_IU
BEFORE INSERT OR UPDATE ON bco_nietbeschik
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bco_nietbeschik_key, bco_s_bco_nietbeschik_key);
IF NOT :new.bco_nietbeschik_datum IS NULL
THEN
:new.bco_nietbeschik_datum := TRUNC(:new.bco_nietbeschik_datum);
END IF;
END;
/
CREATE OR REPLACE TRIGGER bcp_t_bcp_taak_B_IU
BEFORE INSERT OR UPDATE ON bcp_taak
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bcp_taak_key, bcp_s_bcp_taak_key);
END;
/
#endif // BCO
DEF_FAC_MESSAGE ('BCP_M119', 'Preventieve opdracht %1% verwijderd.');
DEF_FAC_MESSAGE ('BCP_M120', 'Preventieve opdracht %1% kan niet verwijderd worden.');
DELETE FROM fac_entity_name
WHERE fac_entity_system_name = 'MLD_BESTELOPDR_BCO_LETTER';
INSERT INTO FAC_ENTITY_NAME VALUES('MLD_BESTELOPDR_BCO_LETTER', NULL, NULL, NULL);
#ifdef ALG
ALTER TABLE alg_regio
ADD
(
alg_regio_land
VARCHAR2(15),
alg_regio_tekening
VARCHAR2(32)
);
ALTER TABLE alg_district
ADD
(
alg_district_code
VARCHAR2(1)
#ifdef BEB
NOT NULL
#endif
,
alg_district_acadkey
VARCHAR2(10)
);
ALTER TABLE alg_locatie
ADD
(
alg_locatie_gemeente
VARCHAR2(30),
alg_locatie_provincie
VARCHAR2(15),
alg_locatie_oppervlak
NUMBER(10,2),
alg_locatie_omtrek
NUMBER(8,2)
);
ALTER TABLE alg_objectdeel
(
alg_objectdeel_code
VARCHAR2(5)
NOT NULL,
alg_objectdeel_acadkey
VARCHAR2(10),
alg_objectdeel_oppervlak
NUMBER(10,2),
alg_objectdeel_omtrek
NUMBER(8,2)
);
ALTER TABLE alg_systeemcluster
(
alg_systeemcluster_code
VARCHAR2(5)
NOT NULL,
alg_systeemcluster_acadkey
VARCHAR2(10),
alg_systeemcluster_oppervlak
NUMBER(10,2),
alg_systeemcluster_omtrek
NUMBER(8,2)
);
ALTER TABLE alg_gebouw
ADD
(
alg_gebouw_omtrek
NUMBER(8,2)
);
CREATE_TABLE(alg_srtterrein,NORMAAL_PRIVILEGE)
(
alg_srtterrein_key
NUMBER(10)
PRIMARY KEY,
alg_srtterrein_omschrijving
VARCHAR2(30)
NOT NULL,
alg_srtterrein_upper
VARCHAR2(30)
NOT NULL,
alg_srtterrein_aanmaak
DATE
DEFAULT SYSDATE
NOT NULL,
alg_srtterrein_verwijder
DATE
DEFAULT NULL,
UNIQUE(alg_srtterrein_upper, alg_srtterrein_verwijder)
);
ALTER TABLE alg_terreinsector
ADD
(
alg_srtterrein_key
NUMBER(10)
REFERENCES alg_srtterrein(alg_srtterrein_key),
alg_terreinsector_acadkey
VARCHAR2(10),
alg_terreinsector_oppervlak
NUMBER(10,2),
alg_terreinsector_omtrek
NUMBER(8,2),
alg_terreinsector_opmerking
VARCHAR2(50)
);
ALTER TABLE alg_bouwdeel
(
alg_bouwdeel_code
VARCHAR2(2)
NOT NULL
);
CREATE_TABLE(alg_srtverdieping,NORMAAL_PRIVILEGE)
(
alg_srtverdieping_key
NUMBER(10)
PRIMARY KEY,
alg_srtverdieping_omschrijving
VARCHAR2(30)
NOT NULL,
alg_srtverdieping_upper
VARCHAR2(30)
NOT NULL,
alg_srtverdieping_volgnr
NUMBER(3)
NOT NULL,
alg_srtverdieping_aanmaak
DATE
DEFAULT SYSDATE
NOT NULL,
alg_srtverdieping_verwijder
DATE
DEFAULT NULL,
UNIQUE(alg_srtverdieping_volgnr, alg_srtverdieping_verwijder)
);
ALTER TABLE alg_verdieping
ADD
(
alg_srtverdieping_key
NUMBER(10)
REFERENCES alg_srtverdieping(alg_srtverdieping_key)
#ifdef BEB
NOT NULL
#endif
);
ALTER TABLE alg_ruimte
ADD
(
alg_ruimte_omtrek
NUMBER(8,2)
);
CREATE SEQUENCE alg_s_alg_srtterrein_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_srtverdieping_key MINVALUE 1;
DEFINIEER_VIEW_AANWEZIG(alg_regio, alg_regio_verwijder,
alg_v_aanwezigregio,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_district, alg_district_verwijder,
alg_v_aanwezigdistrict,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_locatie, alg_locatie_verwijder,
alg_v_aanweziglocatie,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_srtgebouw, alg_srtgebouw_verwijder,
alg_v_aanwezigsrtgebouw,BIBLIOTHEEK_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_gebouw, alg_gebouw_verwijder,
alg_v_aanweziggebouw,NORMAAL_PRIVILEGE) AND
alg_locatie_key IN (SELECT alg_locatie_key
FROM alg_v_aanweziglocatie);
DEFINIEER_VIEW_AANWEZIG(alg_verdieping, alg_verdieping_verwijder,
alg_v_aanwezigverdieping,NORMAAL_PRIVILEGE) AND
alg_gebouw_key IN (SELECT alg_gebouw_key
FROM alg_v_aanweziggebouw);
DEFINIEER_VIEW_AANWEZIG(alg_srtruimte, alg_srtruimte_verwijder,
alg_v_aanwezigsrtruimte,BIBLIOTHEEK_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_ruimte, alg_ruimte_verwijder,
alg_v_aanwezigruimte,NORMAAL_PRIVILEGE) AND
alg_verdieping_key IN (SELECT alg_verdieping_key
FROM alg_v_aanwezigverdieping);
DEFINIEER_VIEW_AANWEZIG(alg_terreinsector, alg_terreinsector_verwijder,
alg_v_aanwezigterreinsector,NORMAAL_PRIVILEGE) AND
alg_locatie_key IN (SELECT alg_locatie_key
FROM alg_v_aanweziglocatie);
DEFINIEER_VIEW_AANWEZIG(alg_objectdeel, alg_objectdeel_verwijder,
alg_v_aanwezigobjectdeel,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_systeemcluster, alg_systeemcluster_verwijder,
alg_v_aanwezigsysteemcluster,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_bouwdeel, alg_bouwdeel_verwijder,
alg_v_aanwezigbouwdeel,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_srtterrein, alg_srtterrein_verwijder,
alg_v_aanwezigsrtterrein,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_srtverdieping, alg_srtverdieping_verwijder,
alg_v_aanwezigsrtverdieping,NORMAAL_PRIVILEGE);
CREATE OR REAPLCE TRIGGER alg_t_alg_district_B_IU
BEFORE INSERT OR UPDATE ON alg_district
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_district_key, alg_s_alg_district_key);
UPDATE_UPPER(alg_district_code, alg_district_code);
UPDATE_UPPER(alg_district_omschrijving, alg_district_upper);
SET_VERWIJDER_CHILDREN(alg_locatie, alg_district_key, alg_district_verwijder, alg_locatie_verwijder);
END;
/
CREATE OR REPLACE TRIGGER alg_t_alg_terreinsector_B_IU
BEFORE INSERT OR UPDATE ON alg_terreinsector
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_terreinsector_key, alg_s_alg_onroerendgoed_keys);
:new.alg_terreinsector_omschrijving := SUBSTRB(:new.alg_terreinsector_code ||' - '|| :new.alg_terreinsector_naam,1,30);
UPDATE_UPPER(alg_terreinsector_code,alg_terreinsector_upper);
#ifdef MRA
IF :new.alg_terreinsector_verwijder IS NOT NULL
THEN
DELETE FROM mra_onrgoedvoorschr
WHERE mra_onroerendgoed_keys = :old.alg_terreinsector_key;
DELETE FROM mra_onrgoedbestemming
WHERE mra_onroerendgoed_keys = :old.alg_terreinsector_key;
END IF;
#endif // MRA
#ifdef INS
SET_VERWIJDER_CHILDREN_DEEL(ins_deel, alg_terreinsector_key,
alg_terreinsector_verwijder, ins_deel_verwijder, ins_alg_ruimte_key);
#endif // INS
END;
/
CREATE OR REPLACE TRIGGER alg_t_alg_verdieping_B_IU
BEFORE INSERT OR UPDATE ON alg_verdieping
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_verdieping_key, alg_s_alg_onroerendgoed_keys);
UPDATE_UPPER(alg_verdieping_omschrijving, alg_verdieping_upper);
LAAT_RUIMTE_VERVALLEN_VOOR_VERDIEPING('alg_m55');
#ifdef INS
SET_VERWIJDER_CHILDREN_DEEL(ins_deel, alg_verdieping_key,
alg_verdieping_verwijder, ins_deel_verwijder, ins_alg_ruimte_key);
#endif // INS
/* Voor BEB: ALG_VERDIEPING_Volgnr = ALG_SRTVERDIEPING_VOLGNR */
IF NOT :new.alg_srtverdieping_key IS NULL
THEN
SELECT alg_srtverdieping_volgnr
INTO :new.alg_verdieping_volgnr
FROM alg_srtverdieping
WHERE alg_srtverdieping_key = :new.alg_srtverdieping_key;
END IF;
END;
/
CREATE OR REPLACE TRIGGER alg_t_alg_objectdeel_B_IU
BEFORE INSERT OR UPDATE ON alg_objectdeel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_objectdeel_key, alg_s_alg_objectdeel_key);
UPDATE_UPPER(alg_objectdeel_code, alg_objectdeel_code);
UPDATE_UPPER(alg_objectdeel_omschrijving, alg_objectdeel_upper);
SET_VERWIJDER_CHILDREN(alg_systeemcluster, alg_objectdeel_key, alg_objectdeel_verwijder,
alg_systeemcluster_verwijder);
END;
/
CREATE OR REPLACE TRIGGER alg_t_alg_systeemcluster_B_IU
BEFORE INSERT OR UPDATE ON alg_systeemcluster
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_systeemcluster_key, alg_s_alg_systeemcluster_key);
UPDATE_UPPER(alg_systeemcluster_code, alg_systeemcluster_code);
UPDATE_UPPER(alg_systeemclust_omschrijving, alg_systeemcluster_upper);
CHECK_NOG_REFERENCES(alg_systeemcluster, alg_systeemcluster_verwijder,
alg_v_aanweziggebouw, alg_systeemcluster_key, 'alg_m182');
END;
/
CREATE OR REPLACE TRIGGER alg_t_alg_bouwdeel_B_IU
BEFORE INSERT OR UPDATE ON alg_bouwdeel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_bouwdeel_key, alg_s_alg_bouwdeel_key);
UPDATE_UPPER(alg_bouwdeel_code, alg_bouwdeel_code);
UPDATE_UPPER(alg_bouwdeel_omschrijving, alg_bouwdeel_upper);
CHECK_NOG_REFERENCES(alg_bouwdeel, alg_bouwdeel_verwijder,
alg_v_aanwezigverdieping, alg_bouwdeel_key, 'alg_m183');
END;
/
CREATE TRIGGER alg_t_alg_srtterrein_B_IU
BEFORE INSERT OR UPDATE ON alg_srtterrein
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtterrein_key, alg_s_alg_srtterrein_key);
UPDATE_UPPER(alg_srtterrein_omschrijving, alg_srtterrein_upper);
CHECK_NOG_REFERENCES(alg_srtterrein, alg_srtterrein_verwijder,
alg_v_aanwezigterreinsector, alg_srtterrein_key, 'alg_m196');
END;
/
CREATE TRIGGER alg_t_alg_srtverdieping_B_IU
BEFORE INSERT OR UPDATE ON alg_srtverdieping
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtverdieping_key, alg_s_alg_srtverdieping_key);
UPDATE_UPPER(alg_srtverdieping_omschrijving, alg_srtverdieping_upper);
CHECK_NOG_REFERENCES(alg_srtverdieping, alg_srtverdieping_verwijder,
alg_v_aanwezigverdieping, alg_srtverdieping_key, 'alg_m204');
END;
/
#endif
DEF_FAC_ENTITY ('ALG_REGIO_LAND', 'Land', 'Landen', 'het');
DEF_FAC_ENTITY ('ALG_REGIO_TEKENING', 'Tekening', 'Tekeningen', 'de');
DEF_FAC_ENTITY ('ALG_DISTRICT_CODE', 'Districtcode', NULL, 'de');
DEF_FAC_ENTITY ('ALG_DISTRICT_ACADKEY', 'Acadkey', NULL, 'de');
DEF_FAC_ENTITY ('ALG_LOCATIE_GEMEENTE', 'Gemeente', 'Gemeentes', 'de');
DEF_FAC_ENTITY ('ALG_LOCATIE_PROVINCIE', 'Provincie', 'Provincies', 'de');
DEF_FAC_ENTITY ('ALG_LOCATIE_ACADKEY', 'Acadkey', NULL, 'de');
DEF_FAC_ENTITY ('ALG_LOCATIE_OPPERVLAK', 'Oppervlakte', NULL, 'de');
DEF_FAC_ENTITY ('ALG_LOCATIE_OMTREK', 'Omtrek', NULL, 'de');
DEF_FAC_ENTITY ('ALG_OBJECTDEEL_CODE', 'Objectdeelcode', NULL, 'de');
DEF_FAC_ENTITY ('ALG_OBJECTDEEL_ACADKEY', 'Acadkey', NULL, 'de');
DEF_FAC_ENTITY ('ALG_OBJECTDEEL_OPPERVLAK', 'Oppervlakte', NULL, 'de');
DEF_FAC_ENTITY ('ALG_OBJECTDEEL_OMTREK', 'Omtrek', NULL, 'de');
DEF_FAC_ENTITY ('ALG_SYSTEEMCLUSTER_CODE', 'Code', NULL, 'de');
DEF_FAC_ENTITY ('ALG_SYSTEEMCLUSTER_ACADKEY', 'Acadkey', NULL, 'de');
DEF_FAC_ENTITY ('ALG_SYSTEEMCLUSTER_OPPERVLAK', 'Oppervlakte', NULL, 'de');
DEF_FAC_ENTITY ('ALG_SYSTEEMCLUSTER_OMTREK', 'Omtrek', NULL, 'de');
DEF_FAC_ENTITY ('ALG_GEBOUW_OMTREK', 'Omtrek', NULL, 'de');
DEF_FAC_ENTITY ('ALG_TERREINSECTOR_ACADKEY', 'Acadkey', NULL, 'de');
DEF_FAC_ENTITY ('ALG_TERREINSECTOR_OPPERVLAK', 'Oppervlakte', NULL, 'de');
DEF_FAC_ENTITY ('ALG_TERREINSECTOR_OMTREK', 'Omtrek', NULL, 'de');
DEF_FAC_ENTITY ('ALG_TERREINSECTOR_OPMERKING', 'Opmerking', NULL, 'de');
#if defined(BEB)
DEF_FAC_ENTITY ('ALG_SRTTERREIN', 'Terrein/Werksoort', NULL, 'de');
#else
DEF_FAC_ENTITY ('ALG_SRTTERREIN', 'Terreinsectorsoort', NULL, 'de');
#endif
DEF_FAC_ENTITY ('ALG_SRTTERREIN_OMSCHRIJVING', 'Omschrijving', NULL, 'de');
DEF_FAC_ENTITY ('ALG_BOUWDEEL_CODE', 'Bouwdeelcode', NULL, 'de');
DEF_FAC_ENTITY ('ALG_RUIMTE_OMTREK', 'Omtrek', NULL, 'de');
DEF_FAC_ENTITY ('ALG_SRTVERDIEPING', 'Verdiepingsoort', NULL, 'de');
DEF_FAC_ENTITY ('ALG_SRTVERDIEPING_OMSCHRIJVING', 'Omschrijving', NULL, 'de');
DEF_FAC_ENTITY ('ALG_SRTVERDIEPING_VOLGNR', 'Volgnummer', NULL, 'de');
#if defined(BEB)
DEF_FAC_MESSAGE ('ALG_M196', 'Er zijn nog terreinen/werken gekoppeld aan het terrein/werksoort.');
#else
DEF_FAC_MESSAGE ('ALG_M196', 'Er zijn nog terreinsectoren gekoppeld aan het terreinsoort.');
#endif
#if defined(BEB)
DEF_FAC_MESSAGE ('ALG_M197', 'De dienstkringcode is niet ingevuld.');
#else
DEF_FAC_MESSAGE ('ALG_M197', 'De districtcode is niet ingevuld.');
#endif
#if defined(BEB)
DEF_FAC_MESSAGE ('ALG_M198', 'Verwijderen Terrein/Werksoort');
DEF_FAC_MESSAGE ('ALG_M199', 'Verwijderen Terrein/Werksoort %1%?');
#else
DEF_FAC_MESSAGE ('ALG_M198', 'Verwijderen Terreinsoort');
DEF_FAC_MESSAGE ('ALG_M199', 'Verwijderen Terreinsoort %1%?');
#endif
DEF_FAC_MESSAGE ('ALG_M200', 'Objectcode is niet ingevuld.');
DEF_FAC_MESSAGE ('ALG_M201', 'Systeemclustercode is niet ingevuld.');
DEF_FAC_MESSAGE ('ALG_M202', 'Bouwdeelcode is niet ingevuld.');
DEF_FAC_MESSAGE ('ALG_M203', 'Omschrijving is niet ingevuld.');
DEF_FAC_MESSAGE ('ALG_M204', 'Er zijn nog verdieping gekoppeld aan de verdiepingsoort.');
DEF_FAC_MESSAGE ('ALG_M205', 'Omschrijving is niet ingevuld.');
DEF_FAC_MESSAGE ('ALG_M206', 'Volgnummer is niet ingevuld.');
DEF_FAC_MESSAGE ('ALG_M207', 'Verwijderen verdiepingsoort');
DEF_FAC_MESSAGE ('ALG_M208', 'Verwijderen verdiepingsoort %1%?');
DEF_FAC_MESSAGE ('ALG_M209', 'Verdiepingsoort is niet ingevuld.');
DEF_FAC_MESSAGE ('RMC_M006', 'De garnizoencode is niet ingevuld.');
DEF_FAC_FORM('ALG027', NULL, NULL ,'110270','ALG_ALG027','Overzichtscherm Terreinsoort');
DEF_FAC_FORM('ALG028', NULL, NULL ,'110280','ALG_ALG028','Overzichtscherm Verdiepingsoort');
DEF_FAC_FORM('ALG127', NULL, NULL ,'111270','ALG_ALG127','Mutatiescherm Terreinsoort');
DEF_FAC_FORM('ALG128', NULL, NULL ,'111280','ALG_ALG128','Mutatiescherm Verdiepingsoort');
#ifdef BCO
ALTER TABLE bco_nietbeschik
MODIFY
(
bco_nietbeschik_uren
NUMBER(5,2)
);
ALTER TABLE bco_nietbeschik
ADD
CHECK(bco_nietbeschik_uren IS NULL OR bco_nietbeschik_uren >= 0);
#endif
DELETE FROM fac_message
WHERE fac_message_code IN ('BCO_M126', 'BCO_M127', 'MLD_M124', 'BCP_M076');
INSERT INTO FAC_MESSAGE VALUES('BCO_M126', 'Totale uren moet groter of gelijk zijn dan de uren preventief en uren storing');
INSERT INTO FAC_MESSAGE VALUES('BCO_M127', 'Totale uren moet groter of gelijk zijn dan de uren correctief en uren storing');
DEF_FAC_MESSAGE ('BCP_M076', 'Preventieve opdracht %1% krijgt opnieuw de status ''%2%''');
#if defined(MRA)
DEF_FAC_MESSAGE ('MLD_M124', 'Activiteit of omschrijving is niet ingevuld.');
#else
DEF_FAC_MESSAGE ('MLD_M124', 'Opdracht of omschrijving is niet ingevuld.');
#endif // MRA
DEF_FAC_ENTITY ('PRS_SRTBEDRIJF', 'Bedrijfsoort', 'Bedrijfsoorten', 'het');
#ifdef MLD
DROP TABLE mld_bestelregel;
CREATE_TABLE(mld_bestelregel,NORMAAL_PRIVILEGE)
(
mld_bestelregel_key
NUMBER(10)
PRIMARY KEY,
mld_bestelopdr_key
NUMBER(10)
NOT NULL
REFERENCES mld_bestelopdr ON DELETE CASCADE,
bcp_mld_opdr_key
NUMBER(10)
UNIQUE,
mld_bestelregel_omschrijving
VARCHAR2(320),
CHECK(bcp_mld_opdr_key IS NOT NULL OR
mld_bestelregel_omschrijving IS NOT NULL)
);
CREATE TRIGGER mld_t_mld_bestelregel_B_IU
BEFORE INSERT OR UPDATE ON mld_bestelregel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_bestelregel_key, mld_s_mld_bestelregel_key);
IF :new.bcp_mld_opdr_key IS NOT NULL
THEN
DECLARE
dummy CHAR;
BEGIN
dummy := NULL;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_opdr
WHERE mld_opdr_key = :new.bcp_mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN dummy := NULL;
END;
#ifdef BCP
IF dummy IS NULL
THEN
BEGIN
SELECT 'X'
INTO dummy
FROM bcp_prevopdr
WHERE bcp_prevopdr_key = :new.bcp_mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN dummy := NULL;
END;
END IF;
#endif // BCP
IF dummy IS NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m159');
END IF;
END;
END IF;
END;
/
#endif
#ifdef BCP
CREATE_VIEW(bcp_v_prevopdr_gegevens,NORMAAL_PRIVILEGE)
(bcp_prevopdr_key,
bcp_prevopdr_status,
bcp_prevopdr_status_key,
bcp_prevopdr_jaarweek,
bcp_prevopdr_discipline,
bcp_prevopdr_discipline_key,
bcp_prevopdr_locatie,
bcp_prevopdr_locatie_key) AS
SELECT BCP_P.bcp_prevopdr_key,
MLD_S.mld_statusopdr_omschrijving,
MLD_S.mld_statusopdr_key,
BCP_P.bcp_prevopdr_week,
INS_D.ins_discipline_omschrijving,
INS_D.ins_discipline_key,
ALG_L.alg_locatie_omschrijving,
ALG_L.alg_locatie_key
FROM bcp_prevopdr BCP_P,
mld_statusopdr MLD_S,
bcp_taak BCP_T,
bcp_verzamel BCP_V,
ins_srtdeel INS_SD,
ins_srtgroep INS_SG,
ins_discipline INS_D,
bcp_v_onrgoed_op_locgroep BCP_L,
alg_locatie ALG_L
WHERE BCP_P.bcp_mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
AND BCP_T.bcp_verzamel_key = BCP_V.bcp_verzamel_key
AND BCP_V.bcp_ins_srtdeel_key = INS_SD.ins_srtdeel_key
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key
AND BCP_T.bcp_alg_gebouw_key = BCP_L.alg_onrgoed_key
AND BCP_L.alg_locatie_key = ALG_L.alg_locatie_key;
#endif
DELETE FROM fac_message
WHERE fac_message_code = 'BCO_M136';
INSERT INTO FAC_MESSAGE VALUES('BCO_M136', 'Weekplanning niet mogelijk: er zijn opdrachten afgemeld of verwerkt.');
#ifdef BCO
CREATE_VIEW(bco_v_corropdr_bedrijf,NORMAAL_PRIVILEGE)
(bco_uitv_omschrijving,
bco_bedrijf_omschrijving,
mld_uitvoerende_keys,
prs_bedrijf_key,
mld_opdr_uren,
bco_locatiegroep_key,
bco_opdr_weekuitgifte) AS
SELECT PRS_S.prs_srtperslid_omschrijving,
PRS_U.prs_bedrijf_naam,
PRS_S.prs_srtperslid_key,
PRS_U.prs_bedrijf_key,
BCO_S.bco_opdr_somuren,
BCO_S.bco_locatiegroep_key,
BCO_S.bco_opdr_weekuitgifte
FROM bco_v_corropdr_somuren BCO_S,
prs_srtperslid PRS_S,
prs_v_uitvoerendebedrijf PRS_U
WHERE BCO_S.mld_uitvoerende_keys = PRS_S.prs_srtperslid_key AND
PRS_S.prs_bedrijf_key = PRS_U.prs_bedrijf_key
UNION
SELECT PRS_E.prs_bestek_omschrijving,
PRS_U.prs_bedrijf_naam,
PRS_D.prs_disciplinebestek_key,
PRS_U.prs_bedrijf_key,
BCO_S.bco_opdr_somuren,
BCO_S.bco_locatiegroep_key,
BCO_S.bco_opdr_weekuitgifte
FROM bco_v_corropdr_somuren BCO_S,
prs_v_contractbedrijf PRS_U,
prs_disciplinebestek PRS_D,
prs_bestek PRS_E
WHERE BCO_S.mld_uitvoerende_keys = PRS_D.prs_disciplinebestek_key AND
PRS_D.prs_bestek_key = PRS_E.prs_bestek_key AND
PRS_E.prs_bedrijf_key = PRS_U.prs_bedrijf_key
UNION
SELECT NULL,
PRS_U.prs_bedrijf_naam,
PRS_U.prs_bedrijf_key,
PRS_U.prs_bedrijf_key,
BCO_S.bco_opdr_somuren,
BCO_S.bco_locatiegroep_key,
BCO_S.bco_opdr_weekuitgifte
FROM bco_v_corropdr_somuren BCO_S,
prs_v_uitvoerendebedrijf PRS_U
WHERE BCO_S.mld_uitvoerende_keys = PRS_U.prs_bedrijf_key;
CREATE_VIEW (bco_v_perslid_corropdr,NORMAAL_PRIVILEGE)
(prs_perslid_key,
key,
prs_srtperslid_key,
naam,
soort,
locatiegroep_key,
bco_locatiegroep_key) AS
SELECT PRS_P.prs_perslid_key,
PRS_P.prs_perslid_key,
PRS_P.prs_srtperslid_key,
PRS_P.prs_perslid_naam||' '||PRS_P.prs_perslid_voorletters,
PRS_S.prs_srtperslid_omschrijving,
PRS_P.bco_locatiegroep_key,
PRS_P.bco_locatiegroep_key
FROM prs_v_aanwezigperslid PRS_P,
prs_v_aanwezigsrtperslid PRS_S
WHERE PRS_P.prs_srtperslid_key = PRS_S.prs_srtperslid_key;
#endif
#ifdef BCP
CREATE_VIEW(bcp_v_perslid,NORMAAL_PRIVILEGE) (key,
naam,
soort,
locatiegroep_key) AS
SELECT P.prs_perslid_key,
P.prs_perslid_naam||' '||P.prs_perslid_voorletters,
S.prs_srtperslid_omschrijving,
P.bco_locatiegroep_key
FROM prs_v_aanwezigperslid P,
prs_srtperslid S
WHERE P.prs_srtperslid_key = S.prs_srtperslid_key;
#endif
#ifdef BCO
DROP TABLE bco_commentaar;
CREATE TABLE bco_commentaar
(
bco_commentaar_key
NUMBER(10)
PRIMARY KEY,
bco_commentaar_tijd
DATE
DEFAULT SYSDATE,
bco_commentaar_jaarweek
NUMBER(6),
bco_locatiegroep_key
NUMBER(10),
bco_commentaar_source
VARCHAR2(2)
NOT NULL,
bco_commentaar_tekst
VARCHAR2(200)
NOT NULL,
bco_commentaar_type
VARCHAR2(1)
);
CREATE SEQUENCE bco_s_bco_commentaar_key MINVALUE 1;
CREATE TRIGGER bco_t_bco_commentaar_B_IU
BEFORE INSERT OR UPDATE ON bco_commentaar
FOR EACH ROW
BEGIN
IF :new.bco_commentaar_key IS NULL THEN SELECT bco_s_bco_commentaar_key.nextval INTO :new.bco_commentaar_key FROM DUAL; END IF;
END;
/
CREATE OR REPLACE FUNCTION ControleerGoedJaarweek(jaarweek IN NUMBER) RETURN BOOLEAN
IS
jaar NUMBER;
week NUMBER;
aantal_weken NUMBER;
BEGIN
jaar := TO_NUMBER(SUBSTR(TO_CHAR(jaarweek), 1, 4));
week := TO_NUMBER(SUBSTR(TO_CHAR(jaarweek), 5, 2));
/* Bepaal het maximum aantal weken van het opgegeven jaar.
* Als 31-december in week 1 valt, dan zijn er 52 weken in het opgegeven
* jaar. Anders zijn er 53 weken in het opgegeven jaar.
*/
aantal_weken := to_number(to_char(to_date('31-12-'||TO_CHAR(jaar), 'DD-MM-YYYY'), 'IW'));
IF aantal_weken = 1
THEN
aantal_weken := 52;
END IF;
IF week <= aantal_weken
AND LENGTH(TO_CHAR(jaarweek)) = 6
AND week > 0
THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END;
/
CREATE OR REPLACE TRIGGER bco_t_bco_nietwerkbaar_B_IU
BEFORE INSERT OR UPDATE ON bco_nietwerkbaar
FOR EACH ROW
BEGIN
IF :new.bco_nietwerkbaar_key IS NULL THEN SELECT bco_s_bco_nietwerkbaar_key.nextval INTO :new.bco_nietwerkbaar_key FROM DUAL; END IF;
IF (:old.bco_nietwerkbaar_week IS NULL
OR :old.bco_nietwerkbaar_week <> :new.bco_nietwerkbaar_week)
AND NOT ControleerGoedJaarweek(:new.bco_nietwerkbaar_week)
THEN
raise_application_error(-20000, 'bco_m146');
END IF;
END;
/
CREATE OR REPLACE TRIGGER bco_t_bco_nietbeschik_B_IU
BEFORE INSERT OR UPDATE ON bco_nietbeschik
FOR EACH ROW
BEGIN
IF :new.bco_nietbeschik_key IS NULL THEN SELECT bco_s_bco_nietbeschik_key.nextval INTO :new.bco_nietbeschik_key FROM DUAL; END IF;
IF (:old.bco_nietbeschik_week IS NULL
OR :old.bco_nietbeschik_week <> :new.bco_nietbeschik_week)
AND NOT ControleerGoedJaarweek(:new.bco_nietbeschik_week)
THEN
raise_application_error(-20000, 'bco_m146');
END IF;
IF NOT :new.bco_nietbeschik_datum IS NULL
THEN
:new.bco_nietbeschik_datum := TRUNC(:new.bco_nietbeschik_datum);
END IF;
END;
/
#endif
INSERT INTO FAC_MESSAGE VALUES('BCO_M146', 'De week bestaat niet in het opgegeven jaar.');
DELETE FROM fac_message
WHERE fac_message_code IN ('BCO_M116',
'BCO_M118',
'BCO_M120',
'BCO_M122',
'PRS_M059',
'BCO_M113');
INSERT INTO FAC_MESSAGE VALUES('BCO_M116', 'Aantal uitgegeven correctieve opdrachten aan bedrijven: %1%');
INSERT INTO FAC_MESSAGE VALUES('BCO_M118', 'Aantal uitgegeven correctieve opdrachten aan bestekken: %1%');
INSERT INTO FAC_MESSAGE VALUES('BCO_M120', 'Aantal uitgegeven correctieve opdrachten aan functies bij bedrijven: %1%');
INSERT INTO FAC_MESSAGE VALUES('BCO_M122', 'Aantal uitgegeven correctieve opdrachten aan personen: %1%');
INSERT INTO FAC_MESSAGE VALUES('BCO_M147', 'Maatregel is niet ingevuld.');
DEF_FAC_MESSAGE ('PRS_M059', 'Functie wordt nog default uitvoerende bij een deelsoort gebruikt.');
DEF_FAC_MESSAGE ('BCO_M113', 'Correctieve opdracht %1% is ingetrokken, deze is langer dan 2 weken uitgegeven.');
#ifdef MLD
CREATE OR REPLACE TRIGGER mld_t_mld_opdr_b_d
BEFORE DELETE ON mld_opdr
FOR EACH ROW
BEGIN
/* Een verwerkte opdracht mag niet verwijderd worden */
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_statusopdr MLD_S
WHERE :old.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_omschrijving = 'Verwerkt';
APPLICATION_ERROR(-20002, 'mld_m135');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
#ifdef BCO
/* Een opdracht die voorkomt op een werkregel mag niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM bco_werkregel
WHERE bcp_mld_opdr_key = :old.mld_opdr_key;
APPLICATION_ERROR(-20002, 'mld_m158');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'mld_m158');
END;
#endif
/* Een opdracht komt nog voor in een bestelopdracht, mag niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_bestelregel
WHERE bcp_mld_opdr_key = :old.mld_opdr_key;
APPLICATION_ERROR(-20002, 'mld_m162');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'mld_m162');
END;
END;
/
ALTER TABLE mld_adres
ADD
CHECK(mld_adres_factuuradres IS NOT NULL
OR mld_adres_opdrachtadres IS NOT NULL
OR mld_adres_afleveradres IS NOT NULL);
#endif
DEF_FAC_MESSAGE ('MLD_M172', 'Er is geen adrestype opgegeven.');
PROMPT Vergeet niet te committen!