PZEE#88371 Notifybedrijven vaker rekening houden met discipline
FCLT#88913 Uitzondering van ORDNEW in notificatiequeue uitfaseren svn path=/Database/trunk/; revision=69068
This commit is contained in:
@@ -781,11 +781,15 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
||||
l.alg_locatie_key,
|
||||
CASE WHEN b.prs_bedrijf_key = c.cnt_prs_bedrijf_key THEN 'C' ELSE 'G' END bedrijfadres_type,
|
||||
cnt_contract_nummer_intern,
|
||||
COALESCE (l.alg_locatie_email, ins_discipline_email)
|
||||
c.ins_discipline_key,
|
||||
COALESCE (l.alg_locatie_email, ins_discipline_email),
|
||||
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
|
||||
FROM prs_bedrijf b,
|
||||
cnt_contract c,
|
||||
ins_tab_discipline d,
|
||||
alg_locatie l,
|
||||
prs_perslid p,
|
||||
prs_v_afdeling d,
|
||||
( SELECT cnt_contract_key,
|
||||
DECODE (MIN (cp1.cnt_alg_plaats_code),
|
||||
'L', MIN (cp1.cnt_alg_plaats_key),
|
||||
@@ -829,6 +833,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
||||
AND d.ins_discipline_key = c.ins_discipline_key
|
||||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||||
AND cp.cnt_locatie_key = l.alg_locatie_key(+)
|
||||
AND d.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND p.prs_perslid_key = c.prs_perslid_key_beh
|
||||
AND ( b.prs_bedrijf_key = c.cnt_prs_bedrijf_key -- type 'C'
|
||||
OR EXISTS
|
||||
(SELECT 1
|
||||
@@ -842,7 +848,9 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
||||
prefkey => pcntkey,
|
||||
ptrackingkey => ptrackingkey,
|
||||
preference => bedrijfrec.cnt_contract_nummer_intern,
|
||||
pdiscipline_key => bedrijfrec.ins_discipline_key,
|
||||
plocatie_key => bedrijfrec.alg_locatie_key,
|
||||
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
|
||||
pnotidelay => pnotidelay);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
@@ -163,8 +163,7 @@ CREATE OR REPLACE PACKAGE fac
|
||||
plocatie_key NUMBER DEFAULT NULL,
|
||||
pdiscipline_key NUMBER DEFAULT NULL,
|
||||
ptypeopdr_key NUMBER DEFAULT NULL,
|
||||
pbedrijf_key2 NUMBER DEFAULT NULL,
|
||||
pdisc_key NUMBER DEFAULT NULL);
|
||||
pbedrijf_key2 NUMBER DEFAULT NULL);
|
||||
FUNCTION gettrackingdate (peventcode IN VARCHAR2, pkey IN number) RETURN date;
|
||||
FUNCTION gettrackinguserkey (peventcode IN VARCHAR2, pkey IN number) RETURN number;
|
||||
PROCEDURE initsession (flcode IN VARCHAR2);
|
||||
@@ -2998,7 +2997,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
AND k.mld_kenmerk_default LIKE '%##SQL##%'
|
||||
AND k.mld_kenmerk_verplicht = 1
|
||||
AND t.mld_srtkenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_volgnummer <= 900
|
||||
AND BITAND(k.mld_kenmerk_rolcode, 3) > 0
|
||||
AND NOT EXISTS
|
||||
(SELECT ''
|
||||
FROM mld_kenmerkmelding km
|
||||
@@ -3890,6 +3889,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
VALUES (prefkey, puserkey, tkey, loms, psubjectkey
|
||||
)
|
||||
RETURNING fac_tracking_key INTO new_fac_tracking_key;
|
||||
-- LET OP: Dit activeert fac_t_fac_tracking_b_i aan waar fac.notifytracking wordt aangeroepen.
|
||||
ELSE
|
||||
INSERT INTO fac_tracking (fac_tracking_refkey, prs_perslid_key, fac_srtnotificatie_key, fac_tracking_datum, fac_tracking_oms, fac_tracking_subject_refkey
|
||||
)
|
||||
@@ -4996,8 +4996,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
plocatie_key NUMBER DEFAULT NULL,
|
||||
pdiscipline_key NUMBER DEFAULT NULL,
|
||||
ptypeopdr_key NUMBER DEFAULT NULL,
|
||||
pbedrijf_key2 NUMBER DEFAULT NULL,
|
||||
pdisc_key NUMBER DEFAULT NULL) -- future use
|
||||
pbedrijf_key2 NUMBER DEFAULT NULL)
|
||||
AS
|
||||
l_bdradr_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE;
|
||||
l_basrt_key prs_bedrijfadres_srtnoti.prs_bedrijfadres_srtnoti_key%TYPE;
|
||||
@@ -5009,7 +5008,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
l_oms fac_notificatie.fac_notificatie_oms%TYPE;
|
||||
l_perslid_key fac_tracking.prs_perslid_key%TYPE;
|
||||
l_extra_key fac_tracking.fac_tracking_subject_refkey%TYPE;
|
||||
nn_noti NUMBER (10);
|
||||
aantal NUMBER (10);
|
||||
dummy VARCHAR2 (1);
|
||||
notbefore fac_notificatie.fac_notificatie_notbefore%TYPE;
|
||||
@@ -5060,20 +5058,14 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
|
||||
-- Merk op: per bedrijf notificeren we hooguit <20><>n enkel technisch adres
|
||||
-- Dat adres wordt eerst bepaald op basis van locatie/district/opdrachttype/discipline/bedrijfadres_type
|
||||
-- Als er meerdere adressen zijn die aan zo'n combinatie voldoen moet je er altijd srtnotificaties aan hangen
|
||||
-- Alleen als er maar een enkel adres is mag dat eventueel zonder srtnotificatie
|
||||
-- (dat werkt alleen voor ORDNEW, BES2NE en CNTNEW voor backwards compatibiliteit)
|
||||
-- Als er meerdere adressen zijn die aan zo'n combinatie wordt gekeken welke srtnotificaties er aan hangen
|
||||
-- Dit is om het begrijpbaar te houden.
|
||||
-- Ook: je kunt onder een bedrijf een adres maken voor alle locaties maar specifiek opdrachttype
|
||||
-- en eentje voor specifieke locatie en algemene opdracht
|
||||
-- Dat ondersteunen we niet en geeft ongedefinieerd gedrag.
|
||||
BEGIN
|
||||
SELECT ba.prs_bedrijfadres_key,
|
||||
(SELECT COUNT (*)
|
||||
FROM prs_bedrijfadres_srtnoti basrt
|
||||
WHERE basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key
|
||||
AND basrt.fac_srtnotificatie_key = l_srtnoti_key)
|
||||
INTO l_bdradr_key, nn_noti
|
||||
SELECT ba.prs_bedrijfadres_key
|
||||
INTO l_bdradr_key
|
||||
FROM prs_bedrijfadres ba
|
||||
WHERE ba.prs_bedrijf_key = pbedrijf_key
|
||||
AND ba.prs_bedrijfadres_type = pbedrijfadres_type
|
||||
@@ -5082,7 +5074,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
AND (ba.ins_discipline_key = pdiscipline_key OR ba.ins_discipline_key IS NULL)
|
||||
AND (ba.alg_locatie_key = plocatie_key OR ba.alg_locatie_key IS NULL)
|
||||
AND (ba.prs_bedrijf_key2 = pbedrijf_key2 OR ba.prs_bedrijf_key2 IS NULL)
|
||||
AND (ba.ins_discipline_key = pdisc_key OR ba.ins_discipline_key IS NULL)
|
||||
AND ( ba.alg_district_key = (SELECT d.alg_district_key
|
||||
FROM alg_locatie d
|
||||
WHERE d.alg_locatie_key = plocatie_key)
|
||||
@@ -5090,9 +5081,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
AND (l_srtnoti_key IN (SELECT basrt.fac_srtnotificatie_key
|
||||
FROM prs_bedrijfadres_srtnoti basrt
|
||||
WHERE basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key)
|
||||
OR NOT EXISTS (SELECT 1 -- backwards compatible: technische adressen zonder srtnoti werken nog steeds voor ORDNEW
|
||||
FROM prs_bedrijfadres_srtnoti basrt
|
||||
WHERE basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key)
|
||||
)
|
||||
ORDER BY ba.mld_typeopdr_key NULLS LAST, -- door de NULLS LAST heeft een specifieke altijd voorkeur
|
||||
ba.ins_discipline_key NULLS LAST,
|
||||
@@ -5124,21 +5112,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
AND basrt.fac_srtnotificatie_key(+) = srtnoti.fac_srtnotificatie_key
|
||||
AND srtnoti.fac_srtnotificatie_key = l_srtnoti_key;
|
||||
|
||||
IF (nn_noti = 0) // geen specifiek record gevonden
|
||||
THEN
|
||||
IF (pbedrijfadres_type = 'O' AND l_srtnoti_code = 'ORDNEW')
|
||||
OR (pbedrijfadres_type = 'O' AND l_srtnoti_code = 'ORDUPD' AND ptrackingkey IS NULL) -- vanuit trigger mld_t_mld_opdr_B_IU toen teverzenden op 2 is gezet
|
||||
OR (pbedrijfadres_type = 'B' AND l_srtnoti_code = 'BES2NE') -- bestelopdracht aangemaakt
|
||||
OR (pbedrijfadres_type = 'C' AND l_srtnoti_code = 'CNTNEW')
|
||||
-- RESNEW nooit automatisch OR (pbedrijfadres_type = 'R' AND l_srtnoti_code = 'RESNEW')
|
||||
THEN
|
||||
NULL; -- backwards compatible: als geen enkel prs_bedrijfadres_srtnoti is dan is er default een xxxNEW
|
||||
ELSE
|
||||
DBMS_OUTPUT.Put_line ('Technisch adres onder bedrijf ' || pbedrijf_key || ' luistert niet naar notificatie ' || l_srtnoti_code);
|
||||
RETURN;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- ORDUPD of wat dan ook sturen we niet als er nog geen ORDNEW tracking (en naar we aannamen notificatie) is geweest
|
||||
-- (DECODE mag alleen binnen een SELECT, domme Oracle)
|
||||
SELECT DECODE(l_srtnoti_xmlnode, 'opdracht', 'ORDNEW',
|
||||
|
||||
@@ -1485,7 +1485,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
preference => bedrijfrec.reference,
|
||||
ptypeopdr_key => bedrijfrec.mld_typeopdr_key,
|
||||
plocatie_key => bedrijfrec.alg_locatie_key,
|
||||
pdisc_key => bedrijfrec.mld_opdr_discipline_key,
|
||||
pdiscipline_key => bedrijfrec.mld_opdr_discipline_key,
|
||||
psender => bedrijfrec.alg_locatie_email,
|
||||
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
|
||||
pnotidelay => pnotidelay);
|
||||
@@ -1532,8 +1532,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
ptrackingkey => ptrackingkey,
|
||||
preference => bedrijfrec.reference,
|
||||
plocatie_key => bedrijfrec.alg_locatie_key,
|
||||
pdisc_key => bedrijfrec.mld_ins_discipline_key,
|
||||
pdiscipline_key => bedrijfrec.mld_ins_discipline_key,
|
||||
psender => bedrijfrec.alg_locatie_email,
|
||||
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
|
||||
pnotidelay => pnotidelay);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
@@ -464,7 +464,7 @@ BEGIN
|
||||
preference => bedrijfrec.reference,
|
||||
ptypeopdr_key => :NEW.mld_typeopdr_key,
|
||||
plocatie_key => bedrijfrec.alg_locatie_key,
|
||||
pdisc_key => :NEW.mld_opdr_discipline_key,
|
||||
pdiscipline_key => :NEW.mld_opdr_discipline_key,
|
||||
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
|
||||
psender => bedrijfrec.alg_locatie_email);
|
||||
END LOOP;
|
||||
|
||||
@@ -2549,14 +2549,20 @@ AS
|
||||
AS
|
||||
BEGIN
|
||||
FOR bedrijfrec
|
||||
-- JGL: Vooralsnog geen ondersteuning van technische adressen per discipline
|
||||
-- Dat wordt te ingewikkeld omdat onderstaande loop dan per discipline fac.notifybedrijf
|
||||
-- gaat aanroepen waardoor je altijd een notificatie per catalogus krijgt wat je misschien helemaal niet wilt
|
||||
IN (SELECT b.prs_bedrijf_key,
|
||||
l.alg_locatie_key,
|
||||
CASE WHEN b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key THEN 'R' ELSE 'G' END bedrijfadres_type,
|
||||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reference
|
||||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reference,
|
||||
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
|
||||
FROM prs_bedrijf b,
|
||||
res_rsv_ruimte rrr,
|
||||
alg_locatie l,
|
||||
alg_v_ruimte_gegevens_all ruimte_geg,
|
||||
prs_perslid p,
|
||||
prs_v_afdeling d,
|
||||
( SELECT res_ruimte_opstel_key,
|
||||
rr.res_ruimte_key,
|
||||
MIN (alg_ruimte_key) alg_ruimte_key
|
||||
@@ -2575,6 +2581,8 @@ AS
|
||||
AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)
|
||||
AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key)
|
||||
AND ruimte_geg.alg_locatie_key = l.alg_locatie_key
|
||||
AND d.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
||||
AND ( b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key -- type 'R'
|
||||
OR EXISTS
|
||||
(SELECT 1
|
||||
@@ -2589,6 +2597,7 @@ AS
|
||||
ptrackingkey => ptrackingkey,
|
||||
preference => bedrijfrec.reference,
|
||||
plocatie_key => bedrijfrec.alg_locatie_key,
|
||||
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
|
||||
pnotidelay => pnotidelay);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
Reference in New Issue
Block a user