834 lines
32 KiB
Plaintext
834 lines
32 KiB
Plaintext
SPOOL 122to123
|
|
|
|
/*
|
|
* [V:\SQL\_UPDATE]
|
|
*
|
|
* Update script van versie 01.22 naar 01.23
|
|
*
|
|
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
|
|
* om #ifdef's te gebruiken voor de diverse modules.
|
|
*
|
|
* History:
|
|
*
|
|
* --- 01.23 ---
|
|
* 18-11-96 AH HUI_M051 toegevoegd
|
|
* 18-11-96 AG LOG#1034: BCO_M136, BCO_M137 toegevoegd, BCO_M113/114 aangepast
|
|
* 18-11-96 AG LOG#1043: Messages voor BCO_COMMENTAAR aangepast
|
|
* 18-11-96 AH LOG#985: HUI215/216 toegevoegd
|
|
* 15-11-96 AH LOG#985: Hui-frequentie zaken toegevoegd + ALG_V_RUIMTE_GEGEVENS
|
|
*+18-11-96 aangepast
|
|
* 15-11-96 AH De DELETE-code van locatiebestek is nu een FUNCTION geworden
|
|
* en wordt aangeroepen en in PRS021 en PRS023 bij Verwijderen
|
|
* PRS_T_PRS_LOCATIEBESTEK_B_D-trigger is verwijderd
|
|
* 14-11-96 AH LOG#1043: BCO_COMMENTAAR te klein tekst-veld en Objectgroep
|
|
* en Jaarweek opslaan,
|
|
* 14-11-96 AH LOG#1035: PRS_T_PRS_LOCATIEBESTEK_B_IU en _B_D aangepast.
|
|
* 14-11-96 AH LOG#1035: PRS_M092 aangepast, PRS_M097 - PRS_M099 toegevoegd
|
|
* 13-11-96 AH LOG#1035: PRS_T_PRS_DISCBESTEK_B_D aangepast, Als discipline-
|
|
* bestek als default uitvoerende is aangegeven bij mld_opdr
|
|
* of bij prevopdr dan mag deze ook niet verwijderd worden.
|
|
* Zelfde extra conditie geldt bij verwijderen LocatieBestek
|
|
* 13-11-96 AH LOG#1035: PRS_M088 aangepast
|
|
* 13-11-96 AH LOG#1033: MLD_M55 aangepast.
|
|
* 13-11-96 AH LOG#1021: MLD_M163, BCP_M104, BCP_M105, BCP_M106, BCP_M107 toegevoegd
|
|
* 12-11-96 AH LOG#1019: PRS_M096 toegevoegd
|
|
* 12-11-96 AH MLD_V_OPENOPDR aangepast voor Historisch overzicht.
|
|
* Ook Ingevoerde opdrachten worden meegenomen.
|
|
* 12-11-96 AH LOG#1012: BCO_V_INSTMELDING_GEGEVENS aangepast
|
|
* 12-11-96 AH LOG#1006: BCO_V_BCP_BCO_OPDR aangepast, ook locatie_key meenemen
|
|
* 12-11-96 AH LOG#999, 1000: BCP_M070 en BCP_M069 aangepast
|
|
* 11-11-96 AH LOG#991: MLD_M135 aangepast
|
|
* 11-11-96 AH LOG#988: opgelost in mld_t_mld_opdr_b_d en
|
|
* bcp_t_bcp_prevopdr_b_d
|
|
* ------ 01.22 -----
|
|
*/
|
|
|
|
#include <comsql.h>
|
|
#include <modules.h>
|
|
PROMPT Upgrading van versie 122 naar 123...
|
|
|
|
#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;
|
|
/
|
|
#endif // MLD
|
|
#ifdef BCP
|
|
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 niet verwijderd worden.
|
|
*/
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM bco_werkregel
|
|
WHERE bcp_mld_opdr_key = :old.bcp_prevopdr_key;
|
|
APPLICATION_ERROR(-20002, 'mld_m158');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20002, 'mld_m158');
|
|
END;
|
|
/* 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.bcp_prevopdr_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;
|
|
/
|
|
#endif // BCP
|
|
DEF_FAC_MESSAGE ('MLD_M162', 'De opdracht komt nog op een bestelopdracht voor.');
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code in ('MLD_M135', 'BCP_M069', 'BCP_M070');
|
|
|
|
#if defined(MRA)
|
|
DEF_FAC_MESSAGE ('mld_m135', 'Verwerkte activiteit mag niet verwijderd worden.');
|
|
#else
|
|
DEF_FAC_MESSAGE ('mld_m135', 'Verwerkte opdracht mag niet verwijderd worden.');
|
|
#endif // MRA
|
|
DEF_FAC_MESSAGE ('BCP_M069', 'De datum van de meterstand is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('BCP_M070', 'De meterstand is niet ingevuld.');
|
|
|
|
#ifdef BCO
|
|
CREATE_VIEW (bco_v_bcp_bco_opdr, NORMAAL_PRIVILEGE)
|
|
( bcp_bco_opdr_key,
|
|
bcp_bco_opdr_module,
|
|
bcp_bco_uitvoerende_keys,
|
|
bcp_bco_statusopdr_key,
|
|
bcp_bco_opdr_uren,
|
|
bcp_bco_opdr_materiaal,
|
|
bcp_bco_opdr_kosten,
|
|
bcp_bco_opdr_werkzaamheden,
|
|
bcp_bco_opdr_week,
|
|
alg_locatie_key) AS
|
|
SELECT MLD_O.mld_opdr_key,
|
|
'BCO',
|
|
MLD_O.mld_uitvoerende_keys,
|
|
MLD_O.mld_statusopdr_key,
|
|
MLD_O.mld_opdr_uren,
|
|
MLD_O.mld_opdr_materiaal,
|
|
MLD_O.mld_opdr_kosten,
|
|
MLD_O.mld_opdr_werkzaamheden,
|
|
MLD_O.bco_opdr_weekuitgifte,
|
|
MLD_OL.alg_locatie_key
|
|
FROM mld_opdr MLD_O, mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL
|
|
WHERE MLD_OL.alg_onroerendgoed_keys = MLD_M.mld_alg_onroerendgoed_keys
|
|
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
|
|
AND MLD_O.mld_opdr_module = 'BCO'
|
|
UNION
|
|
SELECT BCP_P.bcp_prevopdr_key,
|
|
'BCP',
|
|
BCP_P.bcp_mld_uitvoerende_keys,
|
|
BCP_P.bcp_mld_statusopdr_key,
|
|
BCP_P.bcp_prevopdr_uren,
|
|
BCP_P.bcp_prevopdr_materiaal,
|
|
BCP_P.bcp_prevopdr_kosten,
|
|
BCP_P.bcp_prevopdr_werkzaamheden,
|
|
BCP_P.bcp_prevopdr_week,
|
|
MLD_OL.alg_locatie_key
|
|
FROM bcp_prevopdr BCP_P, bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL
|
|
WHERE MLD_OL.alg_onroerendgoed_keys = BCP_T.bcp_alg_gebouw_key
|
|
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key;
|
|
|
|
CREATE_VIEW(bco_v_instmelding_gegevens,NORMAAL_PRIVILEGE) (bco_instmelding_key,
|
|
bco_mld_melding_key,
|
|
ins_srtdeel_omschrijving,
|
|
ins_srtdeel_upper,
|
|
ins_deel_omschrijving,
|
|
ins_deel_upper,
|
|
ins_onderdeel_omschrijving,
|
|
ins_onderdeel_upper,
|
|
ins_element_omschrijving,
|
|
ins_element_upper) AS
|
|
SELECT BCO_I.bco_instmelding_key,
|
|
BCO_I.bco_mld_melding_key,
|
|
INS_SD.ins_srtdeel_omschrijving,
|
|
INS_SD.ins_srtdeel_upper,
|
|
INS_D.ins_deel_omschrijving,
|
|
INS_D.ins_deel_upper,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM bco_instmelding BCO_I, ins_v_inst INS_I, ins_v_aanwezigsrtdeel INS_SD,
|
|
ins_v_aanwezigdeel INS_D
|
|
WHERE BCO_I.bco_ins_inst_keys = INS_I.ins_inst_keys
|
|
AND INS_I.ins_type = 'D'
|
|
AND INS_I.ins_inst_keys = INS_D.ins_deel_key
|
|
AND INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key
|
|
UNION
|
|
SELECT BCO_I.bco_instmelding_key,
|
|
BCO_I.bco_mld_melding_key,
|
|
INS_SD.ins_srtdeel_omschrijving,
|
|
INS_SD.ins_srtdeel_upper,
|
|
INS_D.ins_deel_omschrijving,
|
|
INS_D.ins_deel_upper,
|
|
INS_O.ins_onderdeel_omschrijving,
|
|
INS_O.ins_onderdeel_upper,
|
|
NULL,
|
|
NULL
|
|
FROM bco_instmelding BCO_I, ins_v_inst INS_I, ins_v_aanwezigsrtdeel INS_SD,
|
|
ins_v_aanwezigdeel INS_D, ins_v_aanwezigonderdeel INS_O
|
|
WHERE BCO_I.bco_ins_inst_keys = INS_I.ins_inst_keys
|
|
AND INS_I.ins_type = 'O'
|
|
AND INS_I.ins_inst_keys = INS_O.ins_onderdeel_key
|
|
AND INS_O.ins_deel_key = INS_D.ins_deel_key
|
|
AND INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key
|
|
UNION
|
|
SELECT BCO_I.bco_instmelding_key,
|
|
BCO_I.bco_mld_melding_key,
|
|
INS_SD.ins_srtdeel_omschrijving,
|
|
INS_SD.ins_srtdeel_upper,
|
|
INS_D.ins_deel_omschrijving,
|
|
INS_D.ins_deel_upper,
|
|
INS_O.ins_onderdeel_omschrijving,
|
|
INS_O.ins_onderdeel_upper,
|
|
INS_E.ins_element_omschrijving,
|
|
INS_E.ins_element_upper
|
|
FROM bco_instmelding BCO_I, ins_v_inst INS_I, ins_v_aanwezigsrtdeel INS_SD,
|
|
ins_v_aanwezigdeel INS_D, ins_v_aanwezigonderdeel INS_O,
|
|
ins_v_aanwezigelement INS_E
|
|
WHERE BCO_I.bco_ins_inst_keys = INS_I.ins_inst_keys
|
|
AND INS_I.ins_type = 'E'
|
|
AND INS_I.ins_inst_keys = INS_E.ins_element_key
|
|
AND INS_E.ins_onderdeel_key = INS_O.ins_onderdeel_key
|
|
AND INS_O.ins_deel_key = INS_D.ins_deel_key
|
|
AND INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key;
|
|
|
|
#endif // BCO
|
|
#ifdef MLD
|
|
CREATE_VIEW(mld_v_openopdr,NORMAAL_PRIVILEGE) AS
|
|
SELECT *
|
|
FROM mld_opdr
|
|
WHERE mld_opdr.mld_statusopdr_key IN
|
|
(SELECT mld_statusopdr_key
|
|
FROM mld_statusopdr
|
|
WHERE mld_statusopdr.mld_statusopdr_omschrijving = 'Uitgegeven' OR
|
|
mld_statusopdr.mld_statusopdr_omschrijving = 'Afgemeld' OR
|
|
mld_statusopdr.mld_statusopdr_omschrijving = 'Ingevoerd');
|
|
#endif // MLD
|
|
DEF_FAC_MESSAGE ('PRS_M096', 'Het opgegeven bestek is verlopen.');
|
|
DEF_FAC_MESSAGE ('MLD_M163', 'Afgemelde of verwerkte opdrachten kunnen alleen bekeken worden.');
|
|
DEF_FAC_MESSAGE ('BCP_M104', 'Ingeplande opdrachten kunnen niet afgemeld of verwerkt worden.');
|
|
DEF_FAC_MESSAGE ('BCP_M105', 'Afmelden preventieve opdracht');
|
|
DEF_FAC_MESSAGE ('BCP_M106', 'Preventieve opdracht %1% wordt afgemeld. Doorgaan?');
|
|
DEF_FAC_MESSAGE ('BCP_M107', 'Uitgegeven, afgemelde of verwerkte opdrachten kunnen alleen bekeken worden.');
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code IN ( 'MLD_M55', 'PRS_M088');
|
|
DEF_FAC_MESSAGE ('mld_m55', 'De termijn moet positieve waarden bevatten.');
|
|
DEF_FAC_MESSAGE ('PRS_M088', 'Er zijn nog opdrachten bij de discipline van het bestek');
|
|
|
|
#ifdef INS
|
|
DROP TRIGGER prs_t_prs_discbestek_B_D;
|
|
CREATE TRIGGER prs_t_prs_discbestek_B_D
|
|
BEFORE DELETE ON prs_disciplinebestek
|
|
FOR EACH ROW
|
|
BEGIN
|
|
/* Als het bestek al als default uitvoerende is aangegeven bij een
|
|
* INS_SRTDEEL, dan mag de koppeling tussen de discipline van het
|
|
* INS_SRTDEEL en het bestek niet verwijderd worden.
|
|
*/
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM ins_v_aanwezigsrtdeel INS_D
|
|
WHERE INS_D.bco_defaultuitv_keys = :old.prs_disciplinebestek_key;
|
|
APPLICATION_ERROR(-20002, 'prs_m069');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20002, 'prs_m069');
|
|
END;
|
|
// Mag niet verwijderd worden als er MLD_OPDR's zijn met als uitvoerende
|
|
// deze disicplinebestek
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM mld_opdr
|
|
WHERE mld_uitvoerende_keys = :old.prs_disciplinebestek_key
|
|
#ifdef BCO
|
|
OR bco_defaultuitv_keys = :old.prs_disciplinebestek_key
|
|
#endif // BCO
|
|
;
|
|
APPLICATION_ERROR(-20002, 'prs_m088');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20002, 'prs_m088');
|
|
END;
|
|
#ifdef BCP
|
|
// Mag niet verwijderd worden als er BCP_PREVOPDR's zijn met als uitvoerende
|
|
// deze disicplinebestek
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM bcp_prevopdr
|
|
WHERE bcp_mld_uitvoerende_keys = :old.prs_disciplinebestek_key
|
|
OR bcp_mld_uitvoerende_keys = :old.prs_disciplinebestek_key;
|
|
APPLICATION_ERROR(-20002, 'prs_m088');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20002, 'prs_m088');
|
|
END;
|
|
#endif // BCP
|
|
END;
|
|
/
|
|
|
|
DROP TRIGGER prs_t_prs_locatiebestek_B_IU;
|
|
CREATE TRIGGER prs_t_prs_locatiebestek_B_IU
|
|
BEFORE INSERT OR UPDATE ON prs_locatiebestek
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(prs_locatiebestek_key,prs_s_prs_locatiebestek_key);
|
|
#if defined(MLD) || defined(BCP)
|
|
/* Een LocatieBestek mag NIET toegevoegd worden als:
|
|
* - Het (discipline)bestek als (default) uitvoerende is aangegeven bij
|
|
* een of meer opdrachten en als er nog geen LocatieBestek-records zijn
|
|
* voor het bestek.
|
|
* Uitzondering: Als er opdrachten zijn EN deze allemaal betrekking hebben
|
|
* op de toe te voegen locatie.
|
|
* Een LocatieBestek mag NIET worden gewijzigd als:
|
|
* - Het (discipline)bestek als (default) uitvoerende is aangegeven bij
|
|
* een of meer opdrachten die betrekking hebben op de te wijzigen
|
|
* LocatieBestek.
|
|
*/
|
|
// Toevoegen
|
|
IF :old.alg_locatie_key IS NULL
|
|
AND :new.alg_locatie_key IS NOT NULL
|
|
THEN
|
|
#ifdef MLD
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM mld_opdr MLD_O,
|
|
prs_disciplinebestek PRS_DB,
|
|
mld_melding MLD_M,
|
|
mld_v_onroerendgoed_locatie MLD_OL
|
|
WHERE MLD_M.mld_alg_onroerendgoed_keys = MLD_OL.alg_onroerendgoed_keys
|
|
AND MLD_OL.alg_locatie_key <> :new.alg_locatie_key
|
|
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
|
|
AND (PRS_DB.prs_disciplinebestek_key = MLD_O.mld_uitvoerende_keys
|
|
OR PRS_DB.prs_disciplinebestek_key = MLD_O.bco_defaultuitv_keys)
|
|
AND PRS_DB.prs_bestek_key = :new.prs_bestek_key
|
|
AND NOT EXISTS (SELECT 'X'
|
|
FROM prs_locatiebestek PRS_LB
|
|
WHERE PRS_LB.prs_bestek_key = :new.prs_bestek_key
|
|
AND MLD_OL.alg_locatie_key = PRS_LB.alg_locatie_key
|
|
AND PRS_LB.alg_locatie_key <> :new.alg_locatie_key);
|
|
APPLICATION_ERROR(-20000, 'prs_m098');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20000, 'prs_m098');
|
|
END;
|
|
#endif // MLD
|
|
#ifdef BCP
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_disciplinebestek PRS_DB, bcp_prevopdr BCP_P,
|
|
bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL
|
|
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
|
|
AND MLD_OL.alg_locatie_key <> :new.alg_locatie_key
|
|
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
|
|
AND (PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_mld_uitvoerende_keys
|
|
OR PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_defaultuitv_keys)
|
|
AND PRS_DB.prs_bestek_key = :new.prs_bestek_key
|
|
AND NOT EXISTS (SELECT 'X'
|
|
FROM prs_locatiebestek PRS_LB
|
|
WHERE PRS_LB.prs_bestek_key = :new.prs_bestek_key
|
|
AND MLD_OL.alg_locatie_key = PRS_LB.alg_locatie_key
|
|
AND PRS_LB.alg_locatie_key <> :new.alg_locatie_key);
|
|
APPLICATION_ERROR(-20000, 'prs_m099');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20000, 'prs_m099');
|
|
END;
|
|
#endif // BCP
|
|
// Wijzigen
|
|
ELSIF :old.alg_locatie_key IS NOT NULL
|
|
AND :new.alg_locatie_key IS NOT NULL
|
|
THEN
|
|
#ifdef MLD
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_disciplinebestek PRS_DB, mld_opdr MLD_O,
|
|
mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL
|
|
WHERE MLD_M.mld_alg_onroerendgoed_keys = MLD_OL.alg_onroerendgoed_keys
|
|
AND MLD_OL.alg_locatie_key = :old.alg_locatie_key
|
|
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
|
|
AND (PRS_DB.prs_disciplinebestek_key = MLD_O.mld_uitvoerende_keys
|
|
#ifdef BCO
|
|
OR PRS_DB.prs_disciplinebestek_key = MLD_O.bco_defaultuitv_keys
|
|
#endif // BCO
|
|
)
|
|
AND PRS_DB.prs_bestek_key = :old.prs_bestek_key;
|
|
APPLICATION_ERROR(-20000, 'prs_m097');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20000, 'prs_m097');
|
|
END;
|
|
#endif // MLD
|
|
#ifdef BCP
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_disciplinebestek PRS_DB, bcp_prevopdr BCP_P,
|
|
bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL
|
|
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
|
|
AND MLD_OL.alg_locatie_key = :old.alg_locatie_key
|
|
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
|
|
AND (PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_mld_uitvoerende_keys
|
|
OR PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_defaultuitv_keys)
|
|
AND PRS_DB.prs_bestek_key = :old.prs_bestek_key;
|
|
APPLICATION_ERROR(-20000, 'prs_m097');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20000, 'prs_m097');
|
|
END;
|
|
#endif // BCP
|
|
END IF;
|
|
#endif // MLD || BCP
|
|
END;
|
|
/
|
|
|
|
DROP TRIGGER prs_t_prs_locatiebestek_B_D;
|
|
CREATE TRIGGER prs_t_prs_locatiebestek_B_D
|
|
BEFORE DELETE ON prs_locatiebestek
|
|
FOR EACH ROW
|
|
BEGIN
|
|
#ifdef MLD
|
|
/* Een LocatieBestek mag NIET verwijderd worden als:
|
|
* - Het (discipline)bestek als (default) uitvoerende is aangegeven bij
|
|
* een of meer opdrachten die betrekking hebben op de te verwijderen
|
|
* LocatieBestek.
|
|
*/
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_disciplinebestek PRS_DB, mld_opdr MLD_O,
|
|
mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL
|
|
WHERE MLD_M.mld_alg_onroerendgoed_keys = MLD_OL.alg_onroerendgoed_keys
|
|
AND MLD_OL.alg_locatie_key = :old.alg_locatie_key
|
|
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
|
|
AND (PRS_DB.prs_disciplinebestek_key = MLD_O.mld_uitvoerende_keys
|
|
#ifdef BCO
|
|
OR PRS_DB.prs_disciplinebestek_key = MLD_O.bco_defaultuitv_keys
|
|
#endif // BCO
|
|
)
|
|
AND PRS_DB.prs_bestek_key = :old.prs_bestek_key;
|
|
APPLICATION_ERROR(-20002, 'prs_m092');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20002, 'prs_m092');
|
|
END;
|
|
#endif
|
|
#ifdef BCP
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_disciplinebestek PRS_DB, bcp_prevopdr BCP_P,
|
|
bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL
|
|
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
|
|
AND MLD_OL.alg_locatie_key = :old.alg_locatie_key
|
|
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
|
|
AND (PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_mld_uitvoerende_keys
|
|
OR PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_defaultuitv_keys)
|
|
AND PRS_DB.prs_bestek_key = :old.prs_bestek_key;
|
|
APPLICATION_ERROR(-20002, 'prs_m092');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20002, 'prs_m092');
|
|
END;
|
|
#endif
|
|
#if !defined(MLD) && !defined(BCP)
|
|
NULL;
|
|
#endif
|
|
END;
|
|
/
|
|
#endif // INS
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code = 'PRS_M092';
|
|
#ifdef BCO
|
|
DEF_FAC_MESSAGE ('PRS_M092', 'Er zijn nog opdrachten van het bestek bij dit object.');
|
|
DEF_FAC_MESSAGE ('PRS_M097', 'Er zijn nog opdrachten van het bestek bij het oude object.');
|
|
DEF_FAC_MESSAGE ('PRS_M098', 'Er zijn nog opdrachten van het bestek bij andere objecten.');
|
|
DEF_FAC_MESSAGE ('PRS_M099', 'Er zijn nog preventieve opdrachten van het bestek bij andere objecten.');
|
|
#else
|
|
DEF_FAC_MESSAGE ('PRS_M092', 'Er zijn nog opdrachten van het bestek bij deze locatie.');
|
|
DEF_FAC_MESSAGE ('PRS_M097', 'Er zijn nog opdrachten van het bestek bij de oude locatie.');
|
|
DEF_FAC_MESSAGE ('PRS_M098', 'Er zijn nog opdrachten van het bestek bij andere locaties.');
|
|
DEF_FAC_MESSAGE ('PRS_M099', 'Er zijn nog preventieve opdrachten van het bestek bij andere locaties.');
|
|
#endif
|
|
#ifdef BCO
|
|
ALTER TABLE bco_commentaar
|
|
ADD
|
|
(
|
|
bco_commentaar_jaarweek
|
|
NUMBER(6),
|
|
bco_locatiegroep_key
|
|
NUMBER(10)
|
|
);
|
|
|
|
|
|
ALTER TABLE bco_commentaar
|
|
MODIFY
|
|
(
|
|
bco_commentaar_tekst
|
|
VARCHAR2(200)
|
|
);
|
|
#endif // BCO
|
|
|
|
#ifdef PRS
|
|
CREATE OR REPLACE FUNCTION prs_t_prs_locatiebestek_B_D( bestek_key IN NUMBER, locatie_key IN NUMBER,
|
|
key_soort IN CHAR )
|
|
RETURN VARCHAR2 AS
|
|
error_msg fac_message.fac_message_code%TYPE;
|
|
BEGIN
|
|
error_msg := NULL;
|
|
#ifdef MLD
|
|
/* Een LocatieBestek mag NIET verwijderd worden als:
|
|
* - Het (discipline)bestek als (default) uitvoerende is aangegeven bij
|
|
* een of meer opdrachten die betrekking hebben op de te verwijderen
|
|
* LocatieBestek.
|
|
*/
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_disciplinebestek PRS_DB, mld_opdr MLD_O,
|
|
mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL,
|
|
prs_locatiebestek PRS_LB
|
|
WHERE MLD_M.mld_alg_onroerendgoed_keys = MLD_OL.alg_onroerendgoed_keys
|
|
AND ((MLD_OL.alg_locatie_key = PRS_LB.alg_locatie_key
|
|
AND key_soort = 'B')
|
|
OR (MLD_OL.alg_locatie_key = locatie_key
|
|
AND key_soort = 'L'))
|
|
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
|
|
AND (PRS_DB.prs_disciplinebestek_key = MLD_O.mld_uitvoerende_keys
|
|
#ifdef BCO
|
|
OR PRS_DB.prs_disciplinebestek_key = MLD_O.bco_defaultuitv_keys
|
|
#endif // BCO
|
|
)
|
|
AND PRS_DB.prs_bestek_key = PRS_LB.prs_bestek_key
|
|
AND PRS_DB.prs_bestek_key = bestek_key;
|
|
error_msg := 'prs_m092';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN error_msg := 'prs_m092';
|
|
END;
|
|
#endif
|
|
#ifdef BCP
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_disciplinebestek PRS_DB, bcp_prevopdr BCP_P,
|
|
bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL,
|
|
prs_locatiebestek PRS_LB
|
|
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
|
|
AND ((MLD_OL.alg_locatie_key = PRS_LB.alg_locatie_key
|
|
AND key_soort = 'B')
|
|
OR (MLD_OL.alg_locatie_key = locatie_key
|
|
AND key_soort = 'L'))
|
|
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
|
|
AND (PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_mld_uitvoerende_keys
|
|
OR PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_defaultuitv_keys)
|
|
AND PRS_LB.prs_bestek_key = PRS_DB.prs_bestek_key
|
|
AND PRS_DB.prs_bestek_key = bestek_key;
|
|
error_msg := 'prs_m092';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN error_msg := 'prs_m092';
|
|
END;
|
|
#endif
|
|
RETURN error_msg;
|
|
END;
|
|
/
|
|
DROP TRIGGER prs_t_prs_locatiebestek_B_D;
|
|
|
|
#endif // PRS
|
|
|
|
DEF_FAC_FORM('HUI015', NULL, NULL ,'150150','HUI_HUI015','Overzichtscherm Frequentie');
|
|
DEF_FAC_FORM('HUI115', NULL, NULL ,'151150','HUI_HUI115','Mutatiescherm Frequentie');
|
|
DEF_FAC_FORM('HUI016', NULL, NULL ,'150160','HUI_HUI016','Overzichtscherm Schoonmaakfreq. onrgoed');
|
|
DEF_FAC_FORM('HUI116', NULL, NULL ,'151160','HUI_HUI116','Mutatiescherm Schoonmaakfreq. onrgoed');
|
|
DEF_FAC_ENTITY ('HUI_FREQUENTIE', 'Frequentie', 'Frequenties', 'de');
|
|
DEF_FAC_ENTITY ('HUI_FREQUENTIE_OMSCHRIJVING', 'Omschrijving', 'Omschrijvingen', 'de');
|
|
DEF_FAC_ENTITY ('HUI_FREQUENTIE_DAGEN', 'Dagen', NULL, 'de');
|
|
DEF_FAC_MESSAGE ('HUI_M041', 'Verwijderen frequentie ');
|
|
DEF_FAC_MESSAGE ('HUI_M042', 'De omschrijving is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('HUI_M043', 'Het aantal dagen is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('HUI_M044', 'Schoonmaakfrequentie onroerendgoed');
|
|
DEF_FAC_MESSAGE ('HUI_M045', 'Verwijderen schoonmaakfrequentie');
|
|
DEF_FAC_MESSAGE ('HUI_M046', 'Verwijderen schoonmaakfrequentie %1% van ruimte %2%');
|
|
DEF_FAC_MESSAGE ('HUI_M047', 'Verwijder de geselecteerde schoonmaakfrequenties?');
|
|
DEF_FAC_MESSAGE ('HUI_M048', 'De frequentie is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('HUI_M049', 'Overzicht schoonmaken glas');
|
|
DEF_FAC_MESSAGE ('HUI_M050', 'Overzicht schoonmaken ruimte');
|
|
DEF_FAC_ENTITY ('ALG_RUIMTE_VLOER_OMSCHRIJVING', 'Vloerbedekking', NULL, NULL);
|
|
DEF_FAC_ENTITY ('ALG_RUIMTE_OPP_GEVELGLAS', 'Gevelglas', NULL, NULL);
|
|
DEF_FAC_ENTITY ('ALG_RUIMTE_OPP_EENHEID', '(m2)', NULL, NULL);
|
|
DEF_FAC_ENTITY ('ALG_RUIMTE_OPP_SEPARATIEGLAS', 'Separatieglas', NULL, NULL);
|
|
DEF_FAC_ENTITY ('ALG_RUIMTE_OPP_GEVELBEKLEDING', 'Gevelbekleding', NULL, NULL);
|
|
DEF_FAC_ENTITY ('ALG_RUIMTE_VLOEROPP_PER_WEEK', 'Per week', NULL, NULL);
|
|
|
|
#ifdef HUI
|
|
CREATE_TABLE(hui_frequentie, NORMAAL_PRIVILEGE)
|
|
(
|
|
hui_frequentie_key
|
|
NUMBER(10)
|
|
NOT NULL
|
|
PRIMARY KEY,
|
|
hui_frequentie_omschrijving
|
|
VARCHAR2(30)
|
|
NOT NULL,
|
|
hui_frequentie_upper
|
|
VARCHAR2(30)
|
|
NOT NULL
|
|
UNIQUE,
|
|
hui_frequentie_dagen
|
|
NUMBER(3)
|
|
NOT NULL
|
|
);
|
|
|
|
CREATE_TABLE(hui_onroerendgoed_frequentie, NORMAAL_PRIVILEGE)
|
|
(
|
|
hui_frequentie_key
|
|
NUMBER(10)
|
|
NOT NULL
|
|
REFERENCES hui_frequentie(hui_frequentie_key),
|
|
hui_alg_onroerendgoed_keys
|
|
NUMBER(10)
|
|
NOT NULL,
|
|
hui_alg_onroerendgoed_type
|
|
VARCHAR2(1)
|
|
NOT NULL,
|
|
UNIQUE(hui_alg_onroerendgoed_keys)
|
|
);
|
|
|
|
CREATE SEQUENCE hui_s_hui_frequentie_key MINVALUE 1;
|
|
|
|
CREATE TRIGGER hui_t_hui_frequentie_b_iu
|
|
BEFORE INSERT OR UPDATE ON hui_frequentie
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(hui_frequentie_key, hui_s_hui_frequentie_key);
|
|
UPDATE_UPPER(hui_frequentie_omschrijving, hui_frequentie_upper);
|
|
END;
|
|
/
|
|
|
|
CREATE_VIEW(hui_v_frequentie_gegevens, NORMAAL_PRIVILEGE)
|
|
AS
|
|
SELECT HUI_OF.hui_alg_onroerendgoed_keys,
|
|
HUI_OF.hui_alg_onroerendgoed_type,
|
|
HUI_OF.hui_frequentie_key,
|
|
HUI_F.hui_frequentie_omschrijving,
|
|
HUI_F.hui_frequentie_upper,
|
|
ALG_G.alg_gebouw_key,
|
|
ALG_G.alg_locatie_key,
|
|
ALG_G.alg_gebouw_omschrijving,
|
|
ALG_G.alg_gebouw_upper,
|
|
ALG_V.alg_verdieping_key,
|
|
ALG_V.alg_verdieping_omschrijving,
|
|
ALG_V.alg_verdieping_volgnr,
|
|
ALG_R.alg_ruimte_key,
|
|
ALG_R.alg_ruimte_nr,
|
|
ALG_R.alg_ruimte_upper_nr
|
|
FROM hui_onroerendgoed_frequentie HUI_OF, hui_frequentie HUI_F,
|
|
alg_gebouw ALG_G, alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R
|
|
WHERE ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
|
|
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
|
|
AND ALG_R.alg_ruimte_key = HUI_OF.hui_alg_onroerendgoed_keys
|
|
AND HUI_OF.hui_frequentie_key = HUI_F.hui_frequentie_key;
|
|
|
|
#endif // HUI
|
|
#ifdef ALG
|
|
CREATE_VIEW(alg_v_ruimte_gegevens,NORMAAL_PRIVILEGE) AS
|
|
SELECT ALG_L.alg_locatie_key, ALG_L.alg_district_key,
|
|
ALG_L.alg_locatie_omschrijving, ALG_L.alg_locatie_code,
|
|
ALG_L.alg_locatie_upper,
|
|
ALG_G.alg_gebouw_key, ALG_G.alg_srtgebouw_key,
|
|
ALG_G.alg_gebouw_omschrijving, ALG_G.alg_gebouw_upper,
|
|
ALG_V.alg_verdieping_key,
|
|
ALG_V.alg_verdieping_omschrijving, ALG_V.alg_verdieping_upper,
|
|
ALG_V.alg_verdieping_volgnr,
|
|
ALG_V.alg_verdieping_tekening, ALG_R.alg_ruimte_key,
|
|
ALG_S.alg_srtruimte_key, ALG_R.alg_ruimte_nr,
|
|
ALG_R.alg_ruimte_acadkey,
|
|
ALG_R.alg_ruimte_omschrijving, ALG_R.alg_ruimte_upper_nr,
|
|
ALG_S.alg_srtruimte_omschrijving,
|
|
ALG_R.alg_ruimte_vloer_omschrijving,
|
|
ALG_R.alg_ruimte_bruto_vloeropp,
|
|
ALG_R.alg_ruimte_opp_gevelglas,
|
|
ALG_R.alg_ruimte_opp_separatieglas,
|
|
ALG_R.alg_ruimte_opp_gevelbekleding
|
|
#ifdef HUI
|
|
, ALG_R.prs_huismeester_key
|
|
#endif
|
|
FROM alg_locatie ALG_L, alg_gebouw ALG_G,
|
|
alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R,
|
|
alg_v_aanwezigsrtruimte ALG_S
|
|
WHERE
|
|
ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key AND
|
|
ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key AND
|
|
ALG_L.alg_locatie_key = ALG_G.alg_locatie_key AND
|
|
ALG_R.alg_srtruimte_key = ALG_S.alg_srtruimte_key (+);
|
|
#endif // ALG
|
|
DEF_FAC_FORM('HUI215', NULL, NULL ,'152150','HUI_HUI215','Rapport schoonmaak glas');
|
|
DEF_FAC_FORM('HUI216', NULL, NULL ,'152160','HUI_HUI216','Rapport schoonmaak ruimte');
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code IN ('BCP_M082',
|
|
'BCP_M083',
|
|
'BCP_M073',
|
|
'BCP_M074',
|
|
'BCP_M091',
|
|
'BCP_M097',
|
|
'BCP_M102',
|
|
'BCO_M119',
|
|
'BCO_M134');
|
|
|
|
INSERT INTO FAC_MESSAGE VALUES('BCP_M073', 'Nieuwe preventieve opdracht %1% aangemaakt en heeft status ''%2%''');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCP_M074', 'Nieuwe taak %1% van verzamelopdracht %2% aangemaakt voor onroerendgoed %3%');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCP_M082', 'Bestek %1% heeft niet genoeg uren (%2%) beschikbaar');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCP_M083', 'Bestek %1% heeft niet genoeg materiaalkosten (%2%) beschikbaar');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCP_M091', 'Preventieve opdracht %1% is uitgegeven aan functie %2%');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCP_M097', 'Aantal nieuwe preventieve opdrachten aangemaakt: %1%');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCP_M102', 'Preventieve opdracht %1% van functie %2% is ingetrokken');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCO_M119', 'Correctieve opdracht %1% is uitgegeven aan functie %2%');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCO_M134', 'Correctieve opdracht %1% van functie %2% is ingetrokken');
|
|
|
|
DEF_FAC_MESSAGE ('BCO_M136', 'Er zijn opdrachten van deze weekplanning afgemeld of verwerkt.');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCO_M137', '%1% uitgegeven correctieve opdrachten zijn weer ingetrokken');
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code IN ('BCO_M113', 'BCO_M114');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCO_M113', 'Correctieve opdracht %1% is ingetrokken, deze is langer dan 2 weken uitgegeven.');
|
|
INSERT INTO FAC_MESSAGE VALUES('BCO_M114', '%1% correctieve opdrachten ingetrokken, ze zijn langer dan 2 weken uitgegeven.');
|
|
DEF_FAC_MESSAGE ('HUI_M051', 'De huidige frequenties van de ruimtes in %1% %2% overschrijven?');
|
|
|
|
PROMPT Vergeet niet te committen!
|