CSUN#73611 Is het mogelijk op basis van werkplek wel of geen melding te versturen?

svn path=/Customer/trunk/; revision=56840
This commit is contained in:
Sander Schepers
2022-08-11 15:25:16 +00:00
parent b0e1200ee5
commit 5b82940db2

View File

@@ -7,7 +7,7 @@
DEFINE thisfile = 'CSUN.SQL'
DEFINE dbuser = 'CSUN'
SET ECHO ON
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
@@ -548,81 +548,113 @@ END;
-- Wanneer de Politie Haaglanden gekoppeld kan worden aan een melding (via werkplek) moet de notificatie NIET naar andere personen met een werkplek op die locatie.
CREATE OR REPLACE PROCEDURE csun_export_mailnoti (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR c
IS
SELECT DISTINCT x.mld_melding_key, DECODE (count (haaglanden) OVER (PARTITION BY mld_melding_key), 1, 'Politie.Haaglanden@csu.nl', x.prs_perslid_email) prs_perslid_email
FROM
(SELECT DISTINCT mld_melding_key, prs_perslid_email, DECODE (UPPER (prs_perslid_email), 'POLITIE.HAAGLANDEN@CSU.NL', 1, NULL) haaglanden
FROM (SELECT m.mld_melding_key,
alg_onrgoedkenmerk_waarde prs_perslid_email,
mld_melding_status,
mld_stdmelding_key
FROM mld_melding m,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk aogk
WHERE alg_kenmerk_key = 1260) lse
WHERE m.mld_alg_locatie_key = lse.alg_onrgoed_key
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
UNION ALL
SELECT m.mld_melding_key, prs_perslid_email, mld_melding_status, mld_stdmelding_key
FROM prs_perslid p,
mld_melding m,
alg_locatie l,
alg_locatie l2,
prs_v_perslidwerkplek_gegevens pwpg,
prs_kenmerklink kl
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
AND pwpg.alg_locatie_key = l2.alg_locatie_key
AND l.alg_district_key = l2.alg_district_key
AND pwpg.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key = 32 -- BBer
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
AND fac.safe_to_number (prs_kenmerklink_waarde) = 1
AND kl.prs_link_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
UNION ALL
SELECT m.mld_melding_key, prs_perslid_email, mld_melding_status, mld_stdmelding_key
FROM prs_perslid p,
mld_melding m,
prs_v_perslidwerkplek_gegevens pwpg,
prs_kenmerklink kl
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
AND pwpg.alg_locatie_key = m.mld_alg_locatie_key
AND pwpg.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key IN (4041, 50) -- Objectleider en Rayonleider
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
AND fac.safe_to_number (prs_kenmerklink_waarde) = 1
AND kl.prs_link_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
) g
WHERE g.mld_melding_status IN (2, 3, 4, 7) -- Ivm CSUN#59537 moet deze notificatie ook pas wanneer deze bij Backoffice staat (status 2/3/4/7) ipv alleen nog in planning bij Frontoffice (status 0)
AND mld_stdmelding_key NOT IN (SELECT mld_stdmelding_key
FROM mld_stdmelding
WHERE mld_stdmeldinggroep_key = 1) -- Geen notificatie
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM ( SELECT MAX (fac_tracking_key) fac_tracking_key
FROM fac_tracking t
WHERE ( (fac_tracking_oms LIKE 'Gemaild naar BBer:%'
AND fac_srtnotificatie_key = 111) -- MLDMAI
OR (UPPER (fac_tracking_oms) LIKE '%PLAATS:%'
AND fac_srtnotificatie_key = 41)) -- MLDUPD
GROUP BY fac_tracking_refkey) ot,
fac_tracking ft
WHERE ot.fac_tracking_key = ft.fac_tracking_key
AND ft.fac_srtnotificatie_key = 111
AND ft.fac_tracking_refkey = g.mld_melding_key)) x;
CURSOR c IS
SELECT DISTINCT
x.mld_melding_key,
DECODE (
COUNT (haaglanden) OVER (PARTITION BY mld_melding_key),
1, 'Politie.Haaglanden@csu.nl',
x.prs_perslid_email) prs_perslid_email
FROM (SELECT DISTINCT
mld_melding_key,
prs_perslid_email,
DECODE (UPPER (prs_perslid_email),
'POLITIE.HAAGLANDEN@CSU.NL', 1,
NULL) haaglanden
FROM (SELECT m.mld_melding_key,
alg_onrgoedkenmerk_waarde
prs_perslid_email,
mld_melding_status,
mld_stdmelding_key
FROM mld_melding m,
(SELECT alg_onrgoed_key,
alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk aogk
WHERE alg_kenmerk_key = 1260) lse
WHERE m.mld_alg_locatie_key =
lse.alg_onrgoed_key
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
UNION ALL
SELECT m.mld_melding_key,
prs_perslid_email,
mld_melding_status,
mld_stdmelding_key
FROM prs_perslid p,
mld_melding m,
alg_locatie l,
alg_locatie l2,
prs_v_perslidwerkplek_gegevens pwpg,
prs_kenmerklink kl
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
AND pwpg.alg_locatie_key = l2.alg_locatie_key
AND l.alg_district_key = l2.alg_district_key
AND pwpg.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key = 32 -- BBer
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
AND fac.safe_to_number (
prs_kenmerklink_waarde) =
1
AND kl.prs_link_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
UNION ALL
SELECT m.mld_melding_key,
prs_perslid_email,
mld_melding_status,
mld_stdmelding_key
FROM prs_perslid p,
mld_melding m,
prs_v_perslidwerkplek_gegevens pwpg,
prs_kenmerklink kl
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
AND pwpg.alg_locatie_key =
m.mld_alg_locatie_key
AND pwpg.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key IN (4041, 50) -- Objectleider en Rayonleider
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
AND fac.safe_to_number (
prs_kenmerklink_waarde) =
1
AND kl.prs_link_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL) g
WHERE g.mld_melding_status IN (2,
3,
4,
7) -- Ivm CSUN#59537 moet deze notificatie ook pas wanneer deze bij Backoffice staat (status 2/3/4/7) ipv alleen nog in planning bij Frontoffice (status 0)
AND mld_stdmelding_key NOT IN
(SELECT mld_stdmelding_key
FROM mld_stdmelding
WHERE mld_stdmeldinggroep_key = 1) -- Geen notificatie
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM ( SELECT MAX (fac_tracking_key) fac_tracking_key
FROM fac_tracking t
WHERE ( ( fac_tracking_oms LIKE
'Gemaild naar BBer:%'
AND fac_srtnotificatie_key =
111) -- MLDMAI
OR ( UPPER (
fac_tracking_oms) LIKE
'%PLAATS:%'
AND fac_srtnotificatie_key =
41)) -- MLDUPD
GROUP BY fac_tracking_refkey) ot,
fac_tracking ft
WHERE ot.fac_tracking_key =
ft.fac_tracking_key
AND ft.fac_srtnotificatie_key = 111
AND ft.fac_tracking_refkey =
g.mld_melding_key)) x;
v_dummy VARCHAR2 (128);
v_dummy VARCHAR2 (128);
v_pattach VARCHAR2 (4000);
BEGIN
-- stuur de notificatie ook naar het emailadres kenmerk.
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
@@ -635,75 +667,110 @@ BEGIN
fac_notificatie_sender_email,
fac_notificatie_lang,
prs_perslid_key_sender)
SELECT n.fac_srtnotificatie_key,
2, -- e-mail
mld_kenmerkmelding_waarde,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_datum,
fac_notificatie_sender_email,
fac_notificatie_lang,
prs_perslid_key_sender
FROM fac_notificatie n,
fac_srtnotificatie sn,
mld_kenmerkmelding km,
mld_kenmerk k,
mld_melding m,
prs_perslid p
WHERE n.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND ( sn.fac_srtnotificatie_code = 'MLDAFM'
OR sn.fac_srtnotificatie_code = 'MLDUPD'
OR sn.fac_srtnotificatie_code = 'MLDREJ')
AND BITAND(fac_notificatie_status, 2) = 2 -- Alleen als het een e-mail notificatie was
AND km.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND UPPER (mld_kenmerkmelding_waarde) <>
SELECT n.fac_srtnotificatie_key,
2, -- e-mail
mld_kenmerkmelding_waarde,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_datum,
fac_notificatie_sender_email,
fac_notificatie_lang,
prs_perslid_key_sender
FROM fac_notificatie n,
fac_srtnotificatie sn,
mld_kenmerkmelding km,
mld_kenmerk k,
mld_melding m,
prs_perslid p
WHERE n.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND ( sn.fac_srtnotificatie_code = 'MLDAFM'
OR sn.fac_srtnotificatie_code = 'MLDUPD'
OR sn.fac_srtnotificatie_code = 'MLDREJ')
AND BITAND (fac_notificatie_status, 2) = 2 -- Alleen als het een e-mail notificatie was
AND km.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND UPPER (mld_kenmerkmelding_waarde) <>
UPPER (p.prs_perslid_email)
AND n.fac_notificatie_refkey = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1; -- email notificatie
AND n.fac_notificatie_refkey = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1; -- email notificatie
FOR rec IN c
LOOP
BEGIN
IF rec.prs_perslid_email IS NOT NULL
THEN
fac.putnotificationsrtprio(null, null, 'MLDMAI', rec.mld_melding_key, 'BB: Melding ' || rec.mld_melding_key || ' is aan u in behandeling gegeven', 2, rec.prs_perslid_email, null, null, 2, null);
fac.trackaction('MLDMAI', rec.mld_melding_key, 4, NULL, 'Gemaild naar BBer: ' || rec.prs_perslid_email);
ELSE
fac.trackaction('MLDMAI', rec.mld_melding_key, 4, NULL, 'Gemaild naar BBer: <Geen info gevonden>');
END IF;
END;
END LOOP;
FOR rec IN c
LOOP
BEGIN
v_pattach := NULL;
-- Op verzoek van SVB worden mail notificaties naar een mailadres dat bij de locatie geconfigureerd is gestuurd.
UPDATE fac_notificatie n
SET prs_perslid_key_receiver = NULL,
fac_notificatie_receiver_email =
(SELECT aogk.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk aogk, mld_melding m
WHERE aogk.alg_onrgoed_key = m.mld_alg_locatie_key
AND aogk.alg_kenmerk_key = 1320 -- alternatief email adres.
AND n.fac_notificatie_refkey = m.mld_melding_key)
WHERE EXISTS
(SELECT sn.fac_srtnotificatie_key
FROM fac_srtnotificatie sn,
mld_melding m,
alg_onrgoedkenmerk aogk
WHERE n.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'melding'
AND fac_notificatie_oms NOT LIKE 'BB: %'
AND ( sn.fac_srtnotificatie_code = 'MLDNEW'
IF rec.prs_perslid_email IS NOT NULL
THEN
SELECT LISTAGG (fac_bijlagen_key, '|')
WITHIN GROUP (ORDER BY fac_bijlagen_key)
INTO v_pattach
FROM fac_bijlagen
WHERE fac_bijlagen_refkey = rec.mld_melding_key
AND fac_bijlagen_module = 'MLD'
AND fac_bijlagen_verwijder IS NULL;
fac.putnotificationsrtprio (
NULL,
NULL,
'MLDMAI',
rec.mld_melding_key,
'BB: Melding '
|| rec.mld_melding_key
|| ' is aan u in behandeling gegeven',
2,
rec.prs_perslid_email,
NULL,
NULL,
2,
NULL,
v_pattach);
fac.trackaction (
'MLDMAI',
rec.mld_melding_key,
4,
NULL,
'Gemaild naar BBer: ' || rec.prs_perslid_email);
ELSE
fac.trackaction ('MLDMAI',
rec.mld_melding_key,
4,
NULL,
'Gemaild naar BBer: <Geen info gevonden>');
END IF;
END;
END LOOP;
-- Op verzoek van SVB worden mail notificaties naar een mailadres dat bij de locatie geconfigureerd is gestuurd.
UPDATE fac_notificatie n
SET prs_perslid_key_receiver = NULL,
fac_notificatie_receiver_email =
(SELECT aogk.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk aogk, mld_melding m
WHERE aogk.alg_onrgoed_key = m.mld_alg_locatie_key
AND aogk.alg_kenmerk_key = 1320 -- alternatief email adres.
AND n.fac_notificatie_refkey = m.mld_melding_key)
WHERE EXISTS
(SELECT sn.fac_srtnotificatie_key
FROM fac_srtnotificatie sn,
mld_melding m,
alg_onrgoedkenmerk aogk
WHERE n.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'melding'
AND fac_notificatie_oms NOT LIKE 'BB: %'
AND ( sn.fac_srtnotificatie_code = 'MLDNEW'
OR sn.fac_srtnotificatie_code = 'MLDAFM'
OR sn.fac_srtnotificatie_code = 'MLDACP'
OR sn.fac_srtnotificatie_code = 'MLDAFR'
OR sn.fac_srtnotificatie_code = 'MLDUPD'
OR sn.fac_srtnotificatie_code = 'MLDREJ')
AND fac_notificatie_refkey = m.mld_melding_key
AND m.mld_alg_locatie_key = aogk.alg_onrgoed_key
AND aogk.alg_kenmerk_key = 1320);
COMMIT;
AND fac_notificatie_refkey = m.mld_melding_key
AND m.mld_alg_locatie_key = aogk.alg_onrgoed_key
AND aogk.alg_kenmerk_key = 1320);
COMMIT;
END;
/