FCLT#88153 prs_perslid_systeemadres deprecated-->technisch adres

svn path=/Database/branches/DB50/; revision=68449
This commit is contained in:
Jos Groot Lipman
2025-03-19 11:16:11 +00:00
parent 061e44885d
commit 11020748a0

View File

@@ -2293,6 +2293,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
oldersmode fac_srtnotificatie.fac_srtnotificatie_mode%TYPE;
susermode fac_srtnotificatie.fac_srtnotificatie_usermode%TYPE;
lmode fac_srtnotificatie.fac_srtnotificatie_mode%TYPE;
any_tech NUMBER;
skey fac_srtnotificatie.fac_srtnotificatie_key%TYPE;
l_srtnoti_delay fac_srtnotificatie.fac_srtnotificatie_delay%TYPE;
lemail fac_notificatie.fac_notificatie_receiver_email%TYPE;
@@ -2340,13 +2341,14 @@ CREATE OR REPLACE PACKAGE BODY fac AS
NULL;
END;
END IF;
IF smode IS NULL OR smode = 0
THEN
RETURN; -- Geen kanaal om te notificeren
END IF;
-- Misschien komt er nog een technisch adres
--IF smode IS NULL OR smode = 0
--THEN
-- RETURN; -- Geen kanaal om te notificeren
--END IF;
ELSE
-- Wel status meegegeven; die is dan vast
-- Als status=2 en pcode=xxxMAI, dan moet de mail altijd vertuurd worden.
-- Als status=2 en pcode=xxxMAI, dan moet de mail altijd verstuurd worden.
smode := poptstatus;
IF ((SUBSTR(pcode, -3) = 'MAI' AND poptstatus = 2) OR pcode = 'PRSREG')
THEN
@@ -2409,59 +2411,70 @@ CREATE OR REPLACE PACKAGE BODY fac AS
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 = 'S' // Systeem notificaties
AND basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key
AND basrt.fac_srtnotificatie_key = skey
)
LOOP
notbefore := SYSDATE;
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF delaymode = 1 -- default uit, naar technische adres zonder vertraging
THEN
notbefore := notbefore + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
ELSIF delaymode > 1 -- fixed delay
THEN
notbefore := notbefore + delaymode / 60/ 60/ 24;
END IF;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
prs_perslid_key_sender,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit,
fac_notificatie_sender_email,
fac_notificatie_lang,
fac_notificatie_systeemadres,
fac_notificatie_attachments,
prs_bedrijfadres_key,
fac_notificatie_notbefore)
VALUES (skey,
0,
pfrom,
soms,
pref,
pxref,
pprio,
psender,
llang,
lsysteem,
pattach,
bedrijfadresrec.prs_bedrijfadres_key, -- enige bijzondere, rest gewoon blind doorgeven,
notbefore);
END LOOP;
END IF;
FOR bedrijfadresrec
IN (SELECT ba.prs_bedrijfadres_key
FROM prs_perslid p,
prs_v_afdeling_boom aa,
prs_bedrijfadres ba,
prs_bedrijfadres_srtnoti basrt
WHERE p.prs_perslid_key = pto
AND BITAND(prs_perslid_flags, 1) = 1 -- System user, voorkomt dat het naar elke user onder dit bedrijf gaat
AND prs_perslid_verwijder IS NULL
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 = 'S' -- Systeem notificaties
AND basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key
AND basrt.fac_srtnotificatie_key = skey
)
LOOP
DBMS_OUTPUT.PUT_LINE('Notify systeembedrijf-adres: ' || bedrijfadresrec.prs_bedrijfadres_key);
IF (pto = pfrom) -- Toch maar niet
THEN
DBMS_OUTPUT.PUT_LINE('Maar ik ga niet naar mezelf terugsturen');
CONTINUE;
END IF;
notbefore := SYSDATE;
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF delaymode = 1 -- default uit, naar technische adres zonder vertraging
THEN
notbefore := notbefore + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
ELSIF delaymode > 1 -- fixed delay
THEN
notbefore := notbefore + delaymode / 60/ 60/ 24;
END IF;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
prs_perslid_key_sender,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit,
fac_notificatie_sender_email,
fac_notificatie_lang,
fac_notificatie_attachments,
prs_bedrijfadres_key,
fac_notificatie_notbefore)
VALUES (skey, -- deze is eerder al bepaald
0, -- nooit via andere opties versturen
pfrom,
soms,
pref,
pxref,
pprio,
psender,
llang,
pattach,
bedrijfadresrec.prs_bedrijfadres_key, -- enige bijzondere, rest gewoon blind doorgeven,
notbefore);
END LOOP;
END IF;
END IF;
IF smode IS NULL OR smode = 0
THEN
RETURN; -- Geen kanaal om te notificeren
END IF;
lmode := smode;
@@ -4993,9 +5006,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
FROM fac_tracking ft
WHERE ft.fac_tracking_key = ptrackingkey;
-- als de tracking.prs_perslid_key een systeem contactpersoon is van prs_bedrijf
-- dan geen notificatie terugsturen (Arai/van Dorp case)
-- als de tracking.prs_perslid_key een systeem contactpersoon is van het prs_bedrijf
-- dan geen notificatie terugsturen (ARAI/van Dorp case)
SELECT COUNT(*)
INTO aantal
FROM prs_contactpersoon pcp
@@ -5004,6 +5016,23 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND prs_contactpersoon_systeem = 1;
IF aantal > 0
THEN
DBMS_OUTPUT.put_line ('NOT sending notification initiated by System contact person');
RETURN;
END IF;
-- als de tracking.prs_perslid_key zelf een system user is en van het prs_bedrijf
-- dan ook geen notificatie terugsturen
SELECT COUNT(*)
INTO aantal
FROM prs_perslid p,
prs_v_afdeling_boom aa
WHERE p.prs_perslid_key = l_perslid_key
AND BITAND(p.prs_perslid_flags, 1) = 1 -- System user
AND aa.prs_afdeling_key = p.prs_afdeling_key
AND aa.prs_bedrijf_key = pbedrijf_key;
IF aantal > 0
THEN
DBMS_OUTPUT.put_line ('NOT sending notification initiated by System user');
RETURN;
END IF;
END IF;