- Add trigger to update mld_typeopdr_srtdiscipline when mld_discipline changes vakgroeptype. svn path=/Database/trunk/; revision=66974
1022 lines
35 KiB
Plaintext
1022 lines
35 KiB
Plaintext
#ifdef MLD // 13-03-96 AH
|
|
/*
|
|
* $Revision$
|
|
* $Id$
|
|
*/
|
|
CREATE_TRIGGER(mld_t_mld_behandelgroep_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_behandelgroep
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_behandelgroep_key, mld_s_mld_behandelgroep_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_melding_tag_B_I)
|
|
BEFORE INSERT ON mld_melding_tag
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_melding_tag_key, mld_s_mld_melding_tag_key);
|
|
END;
|
|
/
|
|
|
|
AUDIT_BEGIN(mld_disc_params)
|
|
AUDIT_VALUE(mld_disc_params, mld_behandelgroep_key)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_bestellimiet)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_bestellimiet2)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_bestellimiet3)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_bestellimiet4)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_bestellimiet5)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_pgb)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_startdatum)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_directklaar)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_keten)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_frontendprio)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_eigen_kp)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_factuurpct)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_factuurmarge)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_factmatchmode)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_factuurappr)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_factuurgrens)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_bonotify)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_benotify)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_notify)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_noti_dagen)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_opdr_kosten)
|
|
AUDIT_VALUE(mld_disc_params, fac_activiteit_key)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_offerteauto)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_fenotes)
|
|
AUDIT_VALUE(mld_disc_params, mld_disc_params_offhours)
|
|
AUDIT_END()
|
|
|
|
CREATE_TRIGGER(mld_t_mld_disc_params_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_disc_params
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_disc_params_key, mld_s_mld_disc_params_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_vervolg_beperking_B_I)
|
|
BEFORE INSERT ON mld_vervolg_beperking
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_vervolg_beperking_key,mld_s_mld_vervolg_beperking_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_oorzaak_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_oorzaak
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_oorzaak_key,mld_s_mld_oorzaak_key);
|
|
UPDATE_UPPER(mld_oorzaak_omschrijving,mld_oorzaak_upper,mld_oorzaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_meldbron_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_meldbron
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_meldbron_key,mld_s_mld_meldbron_key);
|
|
UPDATE_UPPER(mld_meldbron_omschrijving,mld_meldbron_upper,mld_meldbron);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_standaardopdr_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_standaardopdr
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_standaardopdr_key,mld_s_mld_standaardopdr_key);
|
|
UPDATE_UPPER(mld_standaardopdr_afk,mld_standaardopdr_afk_upper,mld_standaardopdr);
|
|
END;
|
|
/
|
|
|
|
AUDIT_BEGIN(mld_stdmelding)
|
|
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_malusbasis)
|
|
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_malus)
|
|
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_malusmax)
|
|
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_verwijder)
|
|
AUDIT_END()
|
|
|
|
CREATE_TRIGGER(mld_t_mld_stdmelding_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_stdmelding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_stdmelding_key,mld_s_mld_stdmelding_key);
|
|
UPDATE_UPPER(mld_stdmelding_omschrijving,mld_stdmelding_upper,mld_stdmelding);
|
|
UPDATE_UPPER(mld_stdmelding_code,mld_stdmelding_code,mld_stdmelding);
|
|
IF :new.mld_stdmelding_planbaar = 1 THEN :new.mld_stdmelding_planbaarfe := 1; END IF;
|
|
IF :new.mld_stdmelding_planbaar = 2 THEN :new.mld_stdmelding_planbaarfe := 0; END IF;
|
|
IF :new.mld_ins_discipline_key <> :old.mld_ins_discipline_key
|
|
THEN
|
|
-- is omhangen, dus afhankelijken laten volgen
|
|
IF (fac.getSetting('mld_opdr_discipline_mode') = 1)
|
|
THEN
|
|
-- Opdrachten
|
|
UPDATE mld_opdr
|
|
SET mld_opdr_discipline_key = :new.mld_ins_discipline_key
|
|
WHERE mld_melding_key IN
|
|
(SELECT mld_melding_key
|
|
FROM mld_melding
|
|
WHERE mld_stdmelding_key = :new.mld_stdmelding_key);
|
|
END IF;
|
|
|
|
-- Kennisbankitems
|
|
UPDATE mld_stdmeldingfaq
|
|
SET ins_discipline_key = :new.mld_ins_discipline_key
|
|
WHERE mld_stdmelding_key = :new.mld_stdmelding_key;
|
|
END IF;
|
|
IF :new.mld_stdmelding_verwijder IS NOT NULL AND :old.mld_stdmelding_verwijder IS NULL
|
|
THEN
|
|
DELETE FROM mld_afmeldtekst
|
|
WHERE mld_stdmelding_key = :new.mld_stdmelding_key;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_stdm_srtinst_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_stdmelding_srtinst
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_stdmelding_srtinst_key, mld_s_mld_stdm_srtinst_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_stdmeldinggroep_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_stdmeldinggroep
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_stdmeldinggroep_key, mld_s_mld_stdmeldinggroep_key);
|
|
END;
|
|
/
|
|
|
|
AUDIT_BEGIN(mld_typeopdr)
|
|
AUDIT_VALUE(mld_typeopdr, mld_typeopdr_gvs)
|
|
AUDIT_VALUE(mld_typeopdr, mld_typeopdr_fvs)
|
|
AUDIT_VALUE(mld_typeopdr, mld_typeopdr_kosten)
|
|
AUDIT_VALUE(mld_typeopdr, mld_typeopdr_factuur)
|
|
AUDIT_END()
|
|
|
|
CREATE_TRIGGER(mld_t_mld_typeopdr_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_typeopdr
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_typeopdr_key,mld_s_mld_stdmelding_key);
|
|
UPDATE_UPPER(mld_typeopdr_omschrijving,mld_typeopdr_upper,mld_typeopdr);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_typeopdr_srtdi_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_typeopdr_srtdiscipline
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_typeopdr_srtdisc_key,mld_s_mld_typeopdr_srtdisc);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_melding_B_I)
|
|
BEFORE INSERT ON mld_melding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_melding_key, mld_s_mld_melding_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_melding_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_melding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF sys_context('USERENV', 'ACTION') = 'ANONYMIZE' OR
|
|
sys_context('USERENV', 'ACTION') = 'DBUPGRADE' THEN
|
|
RETURN;
|
|
END IF;
|
|
|
|
-- Laat de opdrachten van doorgestuurde meldingen in vakgroep volgen
|
|
IF (fac.getSetting('mld_opdr_discipline_mode') = 1 AND
|
|
:old.mld_stdmelding_key <> :new.mld_stdmelding_key AND
|
|
:new.mld_melding_status IN (4, 5, 6, 7))
|
|
THEN
|
|
-- Opdrachten
|
|
UPDATE mld_opdr
|
|
SET mld_opdr_discipline_key =
|
|
(SELECT mld_ins_discipline_key
|
|
FROM mld_stdmelding
|
|
WHERE mld_stdmelding_key = :new.mld_stdmelding_key)
|
|
WHERE mld_opdr_discipline_key <>
|
|
(SELECT mld_ins_discipline_key
|
|
FROM mld_stdmelding
|
|
WHERE mld_stdmelding_key = :new.mld_stdmelding_key) -- Alleen als ook daadwerkelijk veranderd
|
|
AND mld_melding_key = :new.mld_melding_key;
|
|
END IF;
|
|
|
|
-- Vul het dan redundante veld MLD_ALG_LOCATIE_KEY als de onroerendgoed_key gedefinieerd is,
|
|
-- zo niet, dan krijgt mld_alg_locatie_key gewoon de waarde die wordt meegegeven (of die het had)
|
|
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 :old.mld_melding_conceptstatus IS NULL
|
|
THEN
|
|
SELECT mld_stdmelding_conceptstatus
|
|
INTO :new.mld_melding_conceptstatus
|
|
FROM mld_stdmelding
|
|
WHERE mld_stdmelding_key = :new.mld_stdmelding_key;
|
|
END IF;
|
|
|
|
-- Remember/update the default SLA-data if new or possibly changed
|
|
IF :new.mld_melding_acceptdatum_std IS NULL
|
|
OR UPDATING ('mld_melding_datum')
|
|
OR UPDATING ('mld_stdmelding_key')
|
|
OR UPDATING ('mld_melding_spoed')
|
|
THEN
|
|
:new.mld_melding_acceptdatum_std :=
|
|
mld.getacceptdatum (:new.mld_melding_datum, :new.mld_stdmelding_key, :new.mld_alg_onroerendgoed_keys, :new.mld_melding_spoed);
|
|
END IF;
|
|
|
|
-- Als prs_perslid_key_voor geen waarde heeft dan gelijk aan prs_perslid_key.
|
|
-- en afhankelijk van de setting ook gelijkhouden.
|
|
IF :new.prs_perslid_key_voor IS NULL
|
|
OR (:new.prs_perslid_key <> :old.prs_perslid_key
|
|
AND fac.getSetting('mld_allow_for_others') < 1)
|
|
THEN
|
|
:new.prs_perslid_key_voor := :new.prs_perslid_key;
|
|
END IF;
|
|
|
|
DECLARE
|
|
l_planbaar mld_stdmelding.mld_stdmelding_planbaar%TYPE;
|
|
l_default_t_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE;
|
|
BEGIN
|
|
IF :new.mld_melding_einddatum_std IS NULL
|
|
OR UPDATING ('mld_melding_datum')
|
|
OR UPDATING ('mld_stdmelding_key')
|
|
OR UPDATING ('mld_melding_spoed')
|
|
OR UPDATING ('mld_alg_onroerendgoed_keys')
|
|
THEN
|
|
:new.mld_melding_einddatum_std :=
|
|
mld.geteinddatum (:new.mld_melding_datum,
|
|
:new.mld_stdmelding_key,
|
|
:new.mld_melding_spoed,
|
|
:new.mld_alg_onroerendgoed_keys,
|
|
mld.getlowestobjectuitvoer(:new.mld_melding_key)); -- Ik weet bij nieuwe meldingen nog niet welke objecten aan de meldingen zijn gekoppeld. Dan is de waarde null.
|
|
|
|
-- Jammer dat ik dat zelf nog een keer moet ophalen, maar ja
|
|
-- Deze waarden bewaren, want is iha niet terug te berekenen
|
|
SELECT mld.getstduitvoer(:new.mld_stdmelding_key,
|
|
:new.mld_melding_spoed,
|
|
:new.mld_alg_onroerendgoed_keys,
|
|
mld.getlowestobjectuitvoer(:new.mld_melding_key)),
|
|
DECODE (:new.mld_melding_spoed,
|
|
1, mld_stdmelding_t_accept_pr1,
|
|
2, mld_stdmelding_t_accept_pr2,
|
|
3, mld_stdmelding_t_accepttijd,
|
|
4, mld_stdmelding_t_accept_pr4,
|
|
mld_stdmelding_t_accepttijd),
|
|
mld_stdmelding_t_accepttijd,
|
|
mld_stdmelding_planbaar
|
|
INTO :new.mld_melding_t_uitvoertijd,
|
|
:new.mld_melding_t_accepttijd,
|
|
l_default_t_accepttijd,
|
|
l_planbaar
|
|
FROM mld_stdmelding msm
|
|
WHERE msm.mld_stdmelding_key = :new.mld_stdmelding_key;
|
|
IF :new.mld_melding_t_accepttijd.tijdsduur IS NULL
|
|
THEN
|
|
:new.mld_melding_t_accepttijd := l_default_t_accepttijd;
|
|
END IF;
|
|
-- Alleen aanpassen aan de SLA indien niet meegegeven en mogelijk gewijzigd (!)
|
|
IF (UPDATING AND NOT UPDATING('mld_melding_einddatum')
|
|
AND (:old.mld_melding_einddatum_std IS NULL
|
|
OR :old.mld_melding_einddatum_std <> :new.mld_melding_einddatum_std)
|
|
AND l_planbaar = 1)
|
|
OR (INSERTING AND :new.mld_melding_einddatum IS NULL)
|
|
THEN
|
|
:new.mld_melding_einddatum := :new.mld_melding_einddatum_std;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
|
|
IF :new.prs_perslid_key IS NULL
|
|
THEN
|
|
raise_application_error(-20000, 'mld_m233');
|
|
END IF;
|
|
-- Verwerken
|
|
IF :new.mld_melding_status = 6 AND :old.mld_melding_status <> 6
|
|
THEN
|
|
-- De melding wordt nu verwerkt
|
|
IF :old.mld_melding_status <> 5
|
|
THEN
|
|
-- wat alleen mag als de status afgemeld(5) was
|
|
raise_application_error(-20000, 'mld_m203');
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Melding is/wordt In Behandeling
|
|
IF :new.mld_melding_status = 4 OR :new.mld_melding_status = 7
|
|
THEN
|
|
-- controleer hier de status van de bijbehorende opdrachten
|
|
-- updates mogen de status wel op 4 of 7 zetten, maar wij bepalen HIER welke het daarvan wordt.
|
|
-- NB: als je consequent mld.updatemeldingstatus() zou aanroepen zou dit niet hoeven
|
|
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
|
|
-- Open orders: status = in progress
|
|
:new.mld_melding_status := 7;
|
|
ELSE
|
|
-- Only closed orders: status = Accepted again
|
|
:new.mld_melding_status := 4;
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
|
|
-- Beoordeling van de melding
|
|
IF (:new.mld_melding_satisfaction IS NOT NULL
|
|
AND (:old.mld_melding_satisfaction IS NULL OR :old.mld_melding_satisfaction <> :new.mld_melding_satisfaction))
|
|
THEN
|
|
fac.trackaction('MLDLIK', :old.mld_melding_key, NULL , SYSDATE, REPLACE(lcl.l('lcl_faclike_changed'), '{0}', :new.mld_melding_satisfaction));
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdr_B_I)
|
|
BEFORE INSERT ON mld_opdr
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_opdr_key, mld_s_mld_opdr_key);
|
|
|
|
/* Controleer of de opdracht bij een melding hoort die de goede status heeft,
|
|
* Het voorkomt dat er onverwachts opdrachten zijn op Afgewezen of nog niet Geaccepteerde meldingen
|
|
* namelijk: GEACCEPTEERD, UITGEGEVEN of AFGEMELD
|
|
* Sinds FSN#30228 hoort daar zelfs ook VERWERKT bij
|
|
* Zo niet, dan mag het alleen als de contract_key is ingevuld
|
|
*/
|
|
IF :new.mld_melding_key IS NOT NULL
|
|
THEN
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM mld_melding
|
|
WHERE mld_melding_key = :NEW.mld_melding_key
|
|
AND mld_melding_status IN (4, 5, 6, 7);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
IF :NEW.cnt_contract_key IS NULL
|
|
THEN
|
|
raise_application_error (-20000, 'mld_m201');
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
|
|
BEGIN
|
|
IF fac.getSetting ('mld_opdr_discipline_mode') = 1
|
|
THEN -- altijd vakgroep discipline
|
|
SELECT msm.mld_ins_discipline_key
|
|
INTO :NEW.mld_opdr_discipline_key
|
|
FROM mld_melding m, mld_stdmelding msm
|
|
WHERE m.mld_melding_key = :NEW.mld_melding_key
|
|
AND msm.mld_stdmelding_key = m.mld_stdmelding_key;
|
|
ELSE -- voorkeur voor behandelteam discipline
|
|
SELECT COALESCE(m.mld_ins_discipline_key, msm.mld_ins_discipline_key)
|
|
INTO :NEW.mld_opdr_discipline_key
|
|
FROM mld_melding m, mld_stdmelding msm
|
|
WHERE m.mld_melding_key = :NEW.mld_melding_key
|
|
AND msm.mld_stdmelding_key = m.mld_stdmelding_key;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
NULL; /* TWYN heeft geen meldingen boven de opdracht */
|
|
END;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdr_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_opdr
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF sys_context('USERENV', 'ACTION') = 'ANONYMIZE' OR
|
|
sys_context('USERENV', 'ACTION') = 'DBUPGRADE' THEN
|
|
RETURN;
|
|
END IF;
|
|
|
|
CHECK_REFERENCE_UITVOERENDE (mld_uitvoerende_keys, 'mld_m37');
|
|
-- gooi fiatverzoeknotificaties weg als gefiatteerd of afgewezen-> opnemen in bovenste deel
|
|
IF :OLD.mld_statusopdr_key = 3 AND :new.mld_statusopdr_key IN (4, 2)
|
|
THEN
|
|
fac.clrnotifications ('MLDAP1', :new.mld_opdr_key);
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
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,mld_adres);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_vrije_dagen_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_vrije_dagen
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_vrije_dagen_key, mld_s_mld_vrije_dagen_key);
|
|
/* Haal het tijdgedeelte van de ingevoerde datum af. */
|
|
:new.mld_vrije_dagen_datum := TRUNC_DATE(:new.mld_vrije_dagen_datum);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_mld_object_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_melding_object
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_melding_object_key, mld_s_mld_object_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_srtkenmerk_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_srtkenmerk
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_srtkenmerk_key, mld_s_mld_srtkenmerk_key);
|
|
UPDATE_UPPER(mld_srtkenmerk_omschrijving, mld_srtkenmerk_upper,mld_srtkenmerk);
|
|
UPDATE_UPPER(mld_srtkenmerk_code, mld_srtkenmerk_code, mld_srtkenmerk);
|
|
UPDATE_AANMAAKDATUM(mld_srtkenmerk, mld_srtkenmerk_aanmaak);
|
|
IF (:new.mld_srtkenmerk_verwijder IS NOT NULL AND :old.mld_srtkenmerk_verwijder IS NULL AND
|
|
BITAND(:new.mld_srtkenmerk_systeem, 1) = 1)
|
|
THEN
|
|
raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_SYSTEEM');
|
|
END IF;
|
|
--
|
|
IF :new.mld_srtkenmerk_kenmerktype IN ('C', 'N') AND :new.mld_srtkenmerk_lengte IS NULL
|
|
THEN
|
|
raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_LENGTE');
|
|
END IF;
|
|
IF :new.mld_srtkenmerk_kenmerktype = 'N' AND :new.mld_srtkenmerk_lengte > 20
|
|
THEN
|
|
:new.mld_srtkenmerk_lengte := 20;
|
|
END IF;
|
|
--
|
|
IF :new.mld_srtkenmerk_kenmerktype = 'N' AND :old.mld_srtkenmerk_key IS NOT NULL
|
|
THEN
|
|
IF :old.mld_srtkenmerk_nmin <> :new.mld_srtkenmerk_nmin
|
|
OR (:old.mld_srtkenmerk_nmin IS NULL AND :new.mld_srtkenmerk_nmin IS NOT NULL)
|
|
THEN
|
|
DECLARE
|
|
Dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO Dummy
|
|
FROM mld_kenmerkmelding
|
|
WHERE FAC.SAFE_TO_NUMBER(mld_kenmerkmelding_waarde) < :new.mld_srtkenmerk_nmin
|
|
AND mld_kenmerk_key IN
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = :old.mld_srtkenmerk_key
|
|
);
|
|
raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_MIN');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_MIN');
|
|
END;
|
|
END IF;
|
|
--
|
|
IF :old.mld_srtkenmerk_nmax <> :new.mld_srtkenmerk_nmax
|
|
OR (:old.mld_srtkenmerk_nmax IS NULL AND :new.mld_srtkenmerk_nmax IS NOT NULL)
|
|
THEN
|
|
DECLARE
|
|
Dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO Dummy
|
|
FROM mld_kenmerkmelding
|
|
WHERE FAC.SAFE_TO_NUMBER(mld_kenmerkmelding_waarde) > :new.mld_srtkenmerk_nmax
|
|
AND mld_kenmerk_key IN
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = :old.mld_srtkenmerk_key
|
|
);
|
|
raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_MAX');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_MAX');
|
|
END;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kenmerk_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_kenmerk
|
|
FOR EACH ROW
|
|
BEGIN
|
|
-- FSN#13902: we tolereren het achteraf verplicht maken
|
|
UPDATE_PRIMARY_KEY(mld_kenmerk_key, mld_s_mld_kenmerk_key);
|
|
UPDATE_UPPER(mld_kenmerk_code, mld_kenmerk_code, mld_kenmerk);
|
|
UPDATE_AANMAAKDATUM(mld_kenmerk, mld_kenmerk_aanmaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kenmerkmelding_b_i)
|
|
BEFORE INSERT ON mld_kenmerkmelding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_kenmerkmelding_key, mld_s_mld_kenmerkmelding_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kenmerkmelding_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_kenmerkmelding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
-- Controleer eerst of de ingevulde waarde goed is.
|
|
--
|
|
IF :new.mld_kenmerkmelding_waarde <> :old.mld_kenmerkmelding_waarde
|
|
OR :old.mld_kenmerkmelding_waarde IS NULL
|
|
OR :new.mld_kenmerkmelding_waarde IS NULL
|
|
THEN
|
|
DECLARE
|
|
SrtKenmerkOmschr mld_srtkenmerk.mld_srtkenmerk_omschrijving%TYPE;
|
|
SrtKenmerkType mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
|
SrtKenmerkLengte mld_srtkenmerk.mld_srtkenmerk_lengte%TYPE;
|
|
SrtKenmerkDec mld_srtkenmerk.mld_srtkenmerk_dec%TYPE;
|
|
SrtKenmerkNMin mld_srtkenmerk.mld_srtkenmerk_nmin%TYPE;
|
|
SrtKenmerkNMax mld_srtkenmerk.mld_srtkenmerk_nmax%TYPE;
|
|
KenmerkVerplicht mld_kenmerk.mld_kenmerk_verplicht%TYPE;
|
|
NumberWaarde NUMBER(25,5);
|
|
FormatMask VARCHAR2(60);
|
|
KenmerkMeldingWaarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
|
|
BEGIN
|
|
KenmerkMeldingWaarde := :new.mld_kenmerkmelding_waarde;
|
|
--
|
|
SELECT COALESCE(MLD_K.mld_kenmerk_omschrijving, MLD_SK.mld_srtkenmerk_omschrijving)
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_K.mld_kenmerk_verplicht
|
|
INTO SrtKenmerkOmschr
|
|
, SrtKenmerkType
|
|
, SrtKenmerkLengte
|
|
, SrtKenmerkDec
|
|
, SrtKenmerkNMin
|
|
, SrtKenmerkNMax
|
|
, KenmerkVerplicht
|
|
FROM mld_srtkenmerk MLD_SK
|
|
, mld_kenmerk MLD_K
|
|
WHERE MLD_SK.mld_srtkenmerk_key = MLD_K.mld_srtkenmerk_key
|
|
AND MLD_K.mld_kenmerk_key = :new.mld_kenmerk_key;
|
|
--
|
|
-- Controleer eerst of het verplichte veld ingevuld is.
|
|
--
|
|
IF KenmerkVerplicht IS NOT NULL AND KenmerkMeldingWaarde IS NULL
|
|
THEN
|
|
APPLICATION_ERROR_GOTO(-20004, 'mld_m240,'||SrtKenmerkOmschr);
|
|
--
|
|
-- Kijk welk KenmerkType gebruikt wordt.
|
|
-- Aan de hand daarvan moet een controle uitgevoerd worden.
|
|
--
|
|
ELSIF SrtKenmerkType = 'C'
|
|
THEN
|
|
-- CHAR
|
|
-- Controleer of de lengte te groot of goed is.
|
|
IF LENGTH(KenmerkMeldingWaarde) > SrtKenmerkLengte
|
|
THEN
|
|
APPLICATION_ERROR_GOTO(-20004, 'mld_m241,'||SrtKenmerkOmschr||','||TO_CHAR(SrtKenmerkLengte));
|
|
END IF;
|
|
ELSIF SrtKenmerkType = 'N'
|
|
THEN
|
|
-- NUMBER
|
|
-- Controleer of er een numerieke waarde ingevuld is.
|
|
IF SrtKenmerkDec IS NULL OR SrtKenmerkDec = 0
|
|
THEN
|
|
FormatMask := RPAD('9', SrtKenmerkLengte, '9');
|
|
ELSE
|
|
FormatMask := RPAD('9', SrtKenmerkLengte - SrtKenmerkDec, '9')||
|
|
'D'||RPAD('9', SrtKenmerkDec, '9');
|
|
END IF;
|
|
--
|
|
BEGIN
|
|
NumberWaarde := TO_NUMBER(KenmerkMeldingWaarde);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN FormatMask := REPLACE(FormatMask, '9', '#');
|
|
FormatMask := REPLACE(FormatMask, '0', '#');
|
|
FormatMask := REPLACE(FormatMask, 'D', '.');
|
|
APPLICATION_ERROR_GOTO(-20004, 'mld_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
|
END;
|
|
-- Controleer of de waarde binnen NMin en NMax ligt.
|
|
IF (SrtKenmerkNMin IS NOT NULL AND NumberWaarde < SrtKenmerkNMin)
|
|
OR (SrtKenmerkNMax IS NOT NULL AND NumberWaarde > SrtKenmerkNMax)
|
|
THEN
|
|
APPLICATION_ERROR_GOTO(-20004, 'mld_m243,'||SrtKenmerkOmschr||','||
|
|
TO_CHAR(SrtKenmerkNMin)||','||
|
|
TO_CHAR(SrtKenmerkNMax));
|
|
ELSE
|
|
-- Controleer of de waarde aan het formaat voldoet.
|
|
KenmerkMeldingWaarde := LTRIM(NUMBER_TO_CHAR(NumberWaarde, FormatMask));
|
|
IF INSTR2(KenmerkMeldingWaarde, '#') <> 0
|
|
THEN
|
|
FormatMask := REPLACE(FormatMask, '9', '#');
|
|
FormatMask := REPLACE(FormatMask, '0', '#');
|
|
FormatMask := REPLACE(FormatMask, 'D', '.');
|
|
APPLICATION_ERROR_GOTO(-20004,'mld_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
|
END IF;
|
|
END IF;
|
|
-- Zet de geconverteerde waarde terug.
|
|
:new.mld_kenmerkmelding_waarde := KenmerkMeldingWaarde;
|
|
ELSIF SrtKenmerkType = 'D'
|
|
THEN
|
|
-- DATUM
|
|
KenmerkMeldingWaarde := DATE_TO_CHAR(_TO_DATE2(KenmerkMeldingWaarde,'DD-MM-YY'),'DD-MM-YYYY');
|
|
-- Zet de geconverteerde waarde terug.
|
|
:new.mld_kenmerkmelding_waarde := KenmerkMeldingWaarde;
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kenmerkblokmelding_b_i)
|
|
BEFORE INSERT ON mld_kenmerkblokmelding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_kenmerkblokmelding_key, mld_s_mld_kenmerkblokmelding_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kenmerkopdr_b_i)
|
|
BEFORE INSERT ON mld_kenmerkopdr
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_kenmerkopdr_key, mld_s_mld_kenmerkopdr_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kenmerkopdr_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_kenmerkopdr
|
|
FOR EACH ROW
|
|
BEGIN
|
|
-- Controleer eerst of de ingevulde waarde goed is.
|
|
--
|
|
IF :new.mld_kenmerkopdr_waarde <> :old.mld_kenmerkopdr_waarde
|
|
OR :old.mld_kenmerkopdr_waarde IS NULL
|
|
OR :new.mld_kenmerkopdr_waarde IS NULL
|
|
THEN
|
|
DECLARE
|
|
SrtKenmerkOmschr mld_srtkenmerk.mld_srtkenmerk_omschrijving%TYPE;
|
|
SrtKenmerkType mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
|
SrtKenmerkLengte mld_srtkenmerk.mld_srtkenmerk_lengte%TYPE;
|
|
SrtKenmerkDec mld_srtkenmerk.mld_srtkenmerk_dec%TYPE;
|
|
SrtKenmerkNMin mld_srtkenmerk.mld_srtkenmerk_nmin%TYPE;
|
|
SrtKenmerkNMax mld_srtkenmerk.mld_srtkenmerk_nmax%TYPE;
|
|
KenmerkVerplicht mld_kenmerk.mld_kenmerk_verplicht%TYPE;
|
|
NumberWaarde NUMBER(25,5);
|
|
FormatMask VARCHAR2(60);
|
|
KenmerkOpdrWaarde mld_kenmerkopdr.mld_kenmerkopdr_waarde%TYPE;
|
|
BEGIN
|
|
KenmerkOpdrWaarde := :new.mld_kenmerkopdr_waarde;
|
|
--
|
|
SELECT COALESCE(MLD_K.mld_kenmerk_omschrijving, MLD_SK.mld_srtkenmerk_omschrijving)
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_K.mld_kenmerk_verplicht
|
|
INTO SrtKenmerkOmschr
|
|
, SrtKenmerkType
|
|
, SrtKenmerkLengte
|
|
, SrtKenmerkDec
|
|
, SrtKenmerkNMin
|
|
, SrtKenmerkNMax
|
|
, KenmerkVerplicht
|
|
FROM mld_srtkenmerk MLD_SK
|
|
, mld_kenmerk MLD_K
|
|
WHERE MLD_SK.mld_srtkenmerk_key = MLD_K.mld_srtkenmerk_key
|
|
AND MLD_K.mld_kenmerk_key = :new.mld_kenmerk_key;
|
|
--
|
|
-- Controleer eerst of het verplichte veld ingevuld is.
|
|
--
|
|
IF KenmerkVerplicht IS NOT NULL AND KenmerkOpdrWaarde IS NULL
|
|
THEN
|
|
APPLICATION_ERROR_GOTO(-20004, 'mld_m240,'||SrtKenmerkOmschr);
|
|
--
|
|
-- Kijk welk KenmerkType gebruikt wordt.
|
|
-- Aan de hand daarvan moet een controle uitgevoerd worden.
|
|
--
|
|
ELSIF SrtKenmerkType = 'C'
|
|
THEN
|
|
-- CHAR
|
|
-- Controleer of de lengte te groot of goed is.
|
|
IF LENGTH(KenmerkOpdrWaarde) > SrtKenmerkLengte
|
|
THEN
|
|
APPLICATION_ERROR_GOTO(-20004, 'mld_m241,'||SrtKenmerkOmschr||','||TO_CHAR(SrtKenmerkLengte));
|
|
END IF;
|
|
ELSIF SrtKenmerkType = 'N'
|
|
THEN
|
|
-- NUMBER
|
|
-- Controleer of er een numerieke waarde ingevuld is.
|
|
IF SrtKenmerkDec IS NULL OR SrtKenmerkDec = 0
|
|
THEN
|
|
FormatMask := RPAD('9', SrtKenmerkLengte, '9');
|
|
ELSE
|
|
FormatMask := RPAD('9', SrtKenmerkLengte - SrtKenmerkDec, '9')||
|
|
'D'||RPAD('9', SrtKenmerkDec, '9');
|
|
END IF;
|
|
--
|
|
BEGIN
|
|
NumberWaarde := TO_NUMBER(KenmerkOpdrWaarde);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN FormatMask := REPLACE(FormatMask, '9', '#');
|
|
FormatMask := REPLACE(FormatMask, '0', '#');
|
|
FormatMask := REPLACE(FormatMask, 'D', '.');
|
|
APPLICATION_ERROR_GOTO(-20004, 'mld_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
|
END;
|
|
-- Controleer of de waarde binnen NMin en NMax ligt.
|
|
IF (SrtKenmerkNMin IS NOT NULL AND NumberWaarde < SrtKenmerkNMin)
|
|
OR (SrtKenmerkNMax IS NOT NULL AND NumberWaarde > SrtKenmerkNMax)
|
|
THEN
|
|
APPLICATION_ERROR_GOTO(-20004, 'mld_m243,'||SrtKenmerkOmschr||','||
|
|
TO_CHAR(SrtKenmerkNMin)||','||
|
|
TO_CHAR(SrtKenmerkNMax));
|
|
ELSE
|
|
-- Controleer of de waarde aan het formaat voldoet.
|
|
KenmerkOpdrWaarde := LTRIM(NUMBER_TO_CHAR(NumberWaarde, FormatMask));
|
|
IF INSTR2(KenmerkOpdrWaarde, '#') <> 0
|
|
THEN
|
|
FormatMask := REPLACE(FormatMask, '9', '#');
|
|
FormatMask := REPLACE(FormatMask, '0', '#');
|
|
FormatMask := REPLACE(FormatMask, 'D', '.');
|
|
APPLICATION_ERROR_GOTO(-20004,'mld_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
|
END IF;
|
|
END IF;
|
|
-- Zet de geconverteerde waarde terug.
|
|
:new.mld_kenmerkopdr_waarde := KenmerkOpdrWaarde;
|
|
ELSIF SrtKenmerkType = 'D'
|
|
THEN
|
|
-- DATUM
|
|
KenmerkOpdrWaarde := DATE_TO_CHAR(_TO_DATE2(KenmerkOpdrWaarde,'DD-MM-YY'),'DD-MM-YYYY');
|
|
-- Zet de geconverteerde waarde terug.
|
|
:new.mld_kenmerkopdr_waarde := KenmerkOpdrWaarde;
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
/* Workflow triggers */
|
|
CREATE_TRIGGER(mld_t_mld_workflowstep_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_workflowstep
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_workflowstep_key,mld_s_mld_workflowstep_key);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(mld_t_mld_workflowstep_B_D)
|
|
BEFORE DELETE ON mld_workflowstep
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE mld_melding SET mld_workflowstep_key = NULL where mld_workflowstep_key = :old.mld_workflowstep_key;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_workflowrule_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_workflowrule
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_workflowrule_key,mld_s_mld_workflowrule_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_deelwerk_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_deelwerk
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_deelwerk_key, mld_s_mld_deelwerk_key);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(mld_t_mld_deelwerkmat_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_deelwerkmateriaal
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_deelwerkmateriaal_key, mld_s_mld_deelwerkmat_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_melding_note_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_melding_note
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_melding_note_key, mld_s_mld_melding_note_key);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER mld_t_mld_melding_note_b_u
|
|
BEFORE INSERT OR UPDATE ON mld_melding_note
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :new.mld_melding_note_omschrijving <> :old.mld_melding_note_omschrijving OR :old.mld_melding_note_omschrijving IS NULL
|
|
THEN
|
|
:new.mld_melding_note_wijzigdatum := SYSDATE;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER mld_t_mld_opdr_note_B_U
|
|
BEFORE INSERT OR UPDATE ON mld_opdr_note
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :new.mld_opdr_note_omschrijving <> :old.mld_opdr_note_omschrijving OR :old.mld_opdr_note_omschrijving IS NULL
|
|
THEN
|
|
:new.mld_opdr_note_wijzigdatum := SYSDATE;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdr_note_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_opdr_note
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_opdr_note_key, mld_s_mld_opdr_note_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdr_uren_b_i)
|
|
BEFORE INSERT ON mld_opdr_uren
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_opdr_uren_key, mld_s_mld_opdr_uren_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdr_uren_b_u)
|
|
BEFORE UPDATE ON mld_opdr_uren
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :new.mld_opdr_uren_besteed <> :old.mld_opdr_uren_besteed OR :old.mld_opdr_uren_besteed IS NULL
|
|
THEN
|
|
:new.mld_opdr_uren_wijzigdatum := SYSDATE;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_impropdr_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_impropdr
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_impropdr_key, mld_s_mld_impropdr_key);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kosten_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_kosten
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_kosten_key, mld_s_mld_kosten_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdruren_kosten_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_opdruren_kosten
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_opdruren_kosten_key, mld_s_mld_opdruren_kosten_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdruren_dagk_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_opdruren_dagkosten
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_opdruren_dagkosten_key, mld_s_mld_opdruren_dagk_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_dienstniveau_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_dienstniveau
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_dienstniveau_key, mld_s_dienstniveau_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_dienstpakket_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_dienstpakket
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_dienstpakket_key, mld_s_dienstpakket_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_stdm_srtruimte_B_I)
|
|
BEFORE INSERT ON mld_stdmelding_srtruimte
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_stdmelding_srtruimte_key, mld_s_mld_stdm_srtruimte_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdr_uitvoeren_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_opdr_uitvoeren
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_opdr_uitvoeren_key, mld_s_mld_opdr_uitvoeren_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_opdr_materiaal_B_I)
|
|
BEFORE INSERT ON mld_opdr_materiaal
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_opdr_materiaal_key, mld_s_mld_opdr_materiaal_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_afmeldtekst_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_afmeldtekst
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_afmeldtekst_key, mld_s_mld_afmeldtekst_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_stdmeldingfaq_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_stdmeldingfaq
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_stdmeldingfaq_key, mld_s_mld_stdmeldingfaq_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_typeopdrfaq_B_I)
|
|
BEFORE INSERT ON mld_typeopdrfaq
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_typeopdrfaq_key, mld_s_mld_typeopdrfaq_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_stdmsrtruimte_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_stdmsrtruimte
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_stdmsrtruimte_key, mld_s_mld_stdmsrtruimte_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_stdmsrtgebouw_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_stdmsrtgebouw
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_stdmsrtgebouw_key, mld_s_mld_stdmsrtgebouw_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_stdmsrtterrein_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_stdmsrtterrein
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_stdmsrtterrein_key, mld_s_mld_stdmsrtterrein_key);
|
|
END;
|
|
/
|
|
|
|
CREATE TRIGGER(mld_typeopdr_srtdiscipline)
|
|
BEFORE UPDATE ON mld_discipline
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE mld_typeopdr_srtdiscipline
|
|
SET mld_typeopdr_srtdiscipline.ins_srtdiscipline_key = :new.ins_srtdiscipline_key
|
|
WHERE mld_typeopdr_srtdiscipline.ins_discipline_key = :new.ins_discipline_key
|
|
END;
|
|
/
|
|
|
|
REGISTERRUN('$Id$')
|
|
|
|
#endif // MLD
|