FCLT#85890 Als vervanging van het psr_perslid_systeemadres bij notificaties naar een persoon de technische adressen bij zijn intern bedrijf ook notificeren
svn path=/Database/trunk/; revision=68054
This commit is contained in:
@@ -149,6 +149,7 @@ CREATE OR REPLACE PACKAGE fac
|
||||
PROCEDURE backtrackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE);
|
||||
PROCEDURE notifytracking(psrtnotificatiekey NUMBER, pperslid_key NUMBER, ptracking_oms VARCHAR2, prefkey NUMBER, ptrackingkey NUMBER DEFAULT NULL);
|
||||
PROCEDURE notifytrackingbedrijven(ptrackingkey NUMBER);
|
||||
PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER);
|
||||
PROCEDURE notifygeneriekbedrijven(prefkey NUMBER, ptrackingkey NUMBER);
|
||||
PROCEDURE notifybedrijf(pbedrijf_key NUMBER,
|
||||
pbedrijfadres_type VARCHAR2,
|
||||
@@ -2402,6 +2403,31 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF pbedrijfadreskey IS NULL
|
||||
THEN -- Mogelijk naar technische adressen van het (interne) bedrijf waar deze persoon onder valt
|
||||
FOR bedrijfadresrec
|
||||
IN (SELECT ba.prs_bedrijfadres_key
|
||||
FROM prs_perslid p,
|
||||
prs_v_afdeling aa,
|
||||
prs_bedrijfadres ba,
|
||||
prs_bedrijfadres_srtnoti basrt
|
||||
WHERE p.prs_perslid_key = pto
|
||||
AND aa.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ba.prs_bedrijf_key = aa.prs_bedrijf_key
|
||||
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
|
||||
-- AND ba.prs_bedrijfadres_type = 'G' // maakt me dat uit?
|
||||
AND basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key
|
||||
AND basrt.fac_srtnotificatie_key = skey
|
||||
)
|
||||
LOOP
|
||||
putnotificationsrtprio (NULL, NULL, pcode, pref, poptmessage, 0 /* poptstatus */,
|
||||
NULL, NULL, pxref, pprio, psender, NULL,
|
||||
pbedrijfadreskey => bedrijfadresrec.prs_bedrijfadres_key -- enige bijzondere, rest gewoon blind doorgeven
|
||||
);
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
|
||||
lmode := smode;
|
||||
@@ -2593,6 +2619,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
AND sn.fac_srtnotificatie_code NOT IN (COALESCE(puitz, ' '), COALESCE(puitz2, ' '))
|
||||
)
|
||||
AND fac_notificatie_refkey = pref
|
||||
AND fac_notificatie_systeemadres IS NULL
|
||||
AND prs_bedrijfadres_key IS NULL
|
||||
AND BITAND (fac_notificatie_status, 64) = 0 -- Bitje 64 (custom notificatie MARX) ongemoeid laten
|
||||
AND COALESCE(fac_notificatie_extrakey, -1) = COALESCE(pxref, fac_notificatie_extrakey, -1);
|
||||
|
||||
@@ -2616,6 +2644,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
WHERE fac_srtnotificatie_key IN (SELECT sn.fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie sn
|
||||
WHERE sn.fac_srtnotificatie_code LIKE pcode)
|
||||
AND fac_notificatie_systeemadres IS NULL
|
||||
AND prs_bedrijfadres_key IS NULL
|
||||
AND fac_notificatie_refkey = pref
|
||||
AND fac_notificatie_oms = psubject
|
||||
AND prs_perslid_key_receiver = preceiver
|
||||
@@ -4799,6 +4829,24 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
NULL;
|
||||
END;
|
||||
|
||||
-- Zoek de nieuwste 'peventcode' tracking van prefkey en notificeer daarvan de bedrijven
|
||||
PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER)
|
||||
AS
|
||||
l_trackingkey fac_tracking.fac_tracking_key%TYPE;
|
||||
BEGIN
|
||||
SELECT MAX(t.fac_tracking_key)
|
||||
INTO l_trackingkey
|
||||
FROM fac_tracking t,
|
||||
fac_srtnotificatie fsn
|
||||
WHERE t.fac_srtnotificatie_key = fsn.fac_srtnotificatie_key
|
||||
AND t.fac_tracking_refkey = prefkey
|
||||
AND fsn.fac_srtnotificatie_code = peventcode;
|
||||
IF l_trackingkey IS NOT NULL
|
||||
THEN
|
||||
fac.notifytrackingbedrijven (l_trackingkey);
|
||||
END IF;
|
||||
END;
|
||||
|
||||
-- Notificeren via een technisch adres
|
||||
PROCEDURE notifytrackingbedrijven (ptrackingkey NUMBER)
|
||||
AS
|
||||
|
||||
@@ -2459,7 +2459,7 @@ CREATE_TABLE(fac_task, 0)
|
||||
fac_task_code VARCHAR(32) NOT NULL,
|
||||
fac_task_nextrun DATE,
|
||||
fac_task_lastrun DATE,
|
||||
fac_task_flags NUMBER(3) DEFAULT 0 NOT NULL, -- +1=disable
|
||||
fac_task_flags NUMBER(3) DEFAULT 1 NOT NULL, -- +1=enabled
|
||||
fac_task_aanmaak DATE DEFAULT SYSDATE NOT NULL,
|
||||
CONSTRAINT fac_u_fac_task UNIQUE(fac_cust_key, fac_task_code)
|
||||
);
|
||||
|
||||
@@ -1493,6 +1493,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
prs_v_afdeling d,
|
||||
prs_bedrijf b
|
||||
WHERE m.mld_melding_key = pmldkey
|
||||
AND b.prs_bedrijf_intern = 2 -- 'G' is alleen voor systeembedrijven
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_bedrijfadres ba
|
||||
|
||||
@@ -30,7 +30,7 @@ BEGIN
|
||||
prs_perslid p,
|
||||
prs_v_afdeling d,
|
||||
prs_bedrijf b,
|
||||
fac_v_orderqueue q,
|
||||
fac_v_orderqueue_OLD q,
|
||||
mld_opdr o,
|
||||
fac_srtnotificatie fsn
|
||||
WHERE q.xmlnode = 'opdracht'
|
||||
@@ -44,6 +44,7 @@ BEGIN
|
||||
AND p.prs_perslid_key = m.prs_perslid_key
|
||||
AND fac_srtnotificatie_code = 'ORDUPD') -- hardcoded ORDUPD, het gaat uiteindelijk vooral om de XMLnode 'opdracht' in putorders
|
||||
LOOP
|
||||
DBMS_OUTPUT.PUT_LINE('Notificeer opdracht ' || bedrijfrec.mld_opdr_key);
|
||||
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
|
||||
pbedrijfadres_type => 'O',
|
||||
prefkey => bedrijfrec.mld_opdr_key,
|
||||
|
||||
Reference in New Issue
Block a user