CSUN#87542 Notificatie-instelling voor vakgroep Koffieautomaten aanpassen

Deze notificatie is nu aangepast (sneller gemaakt) en omgezet naar een daily taak (ipv via pre-orders).

svn path=/Customer/trunk/; revision=70963
This commit is contained in:
Sander Schepers
2025-11-17 14:45:13 +00:00
parent 388c247d96
commit a8735bd4ac

View File

@@ -551,285 +551,244 @@ END;
CREATE OR REPLACE PROCEDURE csun_export_mailnoti
AS
CURSOR c IS
WITH
stdmelding
AS
(SELECT mld_stdmelding_key,
mld_stdmelding_default_disc,
mld_ins_discipline_key,
mld_stdmeldinggroep_key,
mld_stdmelding_autoorder
FROM mld_stdmelding
WHERE mld_stdmelding_verwijder IS NULL),
fac_ud
AS
(SELECT fac.safe_to_number (fac_usrdata_code) AS discipline_key,
fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 441 AND fac_usrdata_verwijder IS NULL),
tracking
AS
( SELECT t.fac_tracking_refkey AS mld_melding_key,
MAX (
CASE
WHEN t.fac_srtnotificatie_key = 111
AND ( t.fac_tracking_oms LIKE
'Gemaild naar BBer:%'
OR t.fac_tracking_oms LIKE
'Gemaild naar Rayonmanager:%'
OR t.fac_tracking_oms LIKE
'Gemaild naar Objectleider:%'
OR t.fac_tracking_oms LIKE
'Gemaild naar Klantsupport:%')
THEN
t.fac_tracking_datum
END) AS last_mail_dt,
MAX (
CASE
WHEN t.fac_srtnotificatie_key = 41
AND UPPER (t.fac_tracking_oms) LIKE '%PLAATS:%'
THEN
t.fac_tracking_datum
END) AS last_place_dt
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key IN (41, 111)
GROUP BY t.fac_tracking_refkey),
g
AS
(SELECT m.mld_melding_key,
lse.alg_onrgoedkenmerk_waarde AS prs_perslid_email,
m.mld_melding_status,
m.mld_stdmelding_key,
'BBer' AS functie
FROM mld_melding m
JOIN (SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk aogk
WHERE alg_kenmerk_key = 1260) lse
ON m.mld_alg_locatie_key = lse.alg_onrgoed_key
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
UNION ALL
SELECT m.mld_melding_key,
p.prs_perslid_email,
m.mld_melding_status,
m.mld_stdmelding_key,
'BBer' AS functie
FROM mld_melding m
JOIN alg_locatie l
ON m.mld_alg_locatie_key = l.alg_locatie_key
JOIN alg_locatie l2
ON l.alg_district_key = l2.alg_district_key
JOIN prs_v_werkplekperslid_gegevens pwpg
ON pwpg.alg_locatie_key = l2.alg_locatie_key
JOIN prs_perslid p
ON pwpg.prs_perslid_key = p.prs_perslid_key
JOIN prs_kenmerklink kl
ON kl.prs_link_key = p.prs_perslid_key
JOIN stdmelding sm
ON sm.mld_stdmelding_key = m.mld_stdmelding_key
WHERE m.mld_stdmelding_key != 41
AND p.prs_srtperslid_key = 32 -- BBer
AND kl.prs_kenmerk_key = 1100 -- notificatie enable
AND kl.prs_kenmerklink_waarde = '1'
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
AND sm.mld_stdmelding_default_disc IN (1181, 1183) -- BB / RM/PM & BB
UNION ALL -- CSUN#85584 extra BBer
SELECT m.mld_melding_key,
p.prs_perslid_email,
m.mld_melding_status,
m.mld_stdmelding_key,
'BBer' AS functie
FROM mld_melding m
JOIN alg_locatie l
ON m.mld_alg_locatie_key = l.alg_locatie_key
JOIN alg_locatie l2
ON l.alg_district_key = l2.alg_district_key
JOIN prs_v_werkplekperslid_gegevens pwpg
ON pwpg.alg_locatie_key = l2.alg_locatie_key
JOIN prs_perslid p
ON pwpg.prs_perslid_key = p.prs_perslid_key
JOIN prs_kenmerklink kl
ON kl.prs_link_key = p.prs_perslid_key
JOIN stdmelding sm
ON sm.mld_stdmelding_key = m.mld_stdmelding_key
JOIN ins_tab_discipline d
ON d.ins_discipline_key = sm.mld_ins_discipline_key
WHERE m.mld_stdmelding_key != 41
AND p.prs_srtperslid_key = 32 -- BBer
AND kl.prs_kenmerk_key = 1100
AND kl.prs_kenmerklink_waarde = '1'
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
AND sm.mld_stdmelding_default_disc IN (1461) -- mutatiebeheer
AND d.ins_srtdiscipline_key = 2 -- vakgroeptype Aanvraag
UNION ALL
SELECT m.mld_melding_key,
p.prs_perslid_email,
m.mld_melding_status,
m.mld_stdmelding_key,
DECODE (p.prs_srtperslid_key,
50, 'Rayonmanager',
4041, 'Objectleider') AS functie
FROM mld_melding m
JOIN prs_v_werkplekperslid_gegevens pwpg
ON pwpg.alg_locatie_key = m.mld_alg_locatie_key
JOIN prs_perslid p
ON pwpg.prs_perslid_key = p.prs_perslid_key
JOIN prs_kenmerklink kl
ON kl.prs_link_key = p.prs_perslid_key
JOIN stdmelding sm
ON sm.mld_stdmelding_key = m.mld_stdmelding_key
WHERE m.mld_stdmelding_key != 41
AND p.prs_srtperslid_key IN (4041, 50) -- OL / RM
AND kl.prs_kenmerk_key = 1100 -- notificatie enable
AND kl.prs_kenmerklink_waarde = '1'
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
AND sm.mld_stdmelding_default_disc IN (1182, 1183) -- RM / RM/PM & BB
UNION ALL
-- Klantsupport BB / RM/PM & BB
SELECT m.mld_melding_key,
NVL (ud.fac_usrdata_omschr, 'klantsupport@csu.nl')
AS prs_perslid_email,
m.mld_melding_status,
m.mld_stdmelding_key,
'Klantsupport'
AS functie
FROM mld_melding m
JOIN stdmelding sm
ON sm.mld_stdmelding_key = m.mld_stdmelding_key
LEFT JOIN fac_ud ud
ON ud.discipline_key = sm.mld_ins_discipline_key
WHERE m.mld_stdmelding_key != 41
AND sm.mld_stdmelding_default_disc IN (1181, 1183)
AND NOT EXISTS
(SELECT 1
FROM prs_perslid p
JOIN prs_v_werkplekperslid_gegevens pwpg
ON pwpg.prs_perslid_key =
p.prs_perslid_key
JOIN alg_locatie l2
ON l2.alg_locatie_key =
pwpg.alg_locatie_key
JOIN alg_locatie l
ON l.alg_district_key =
l2.alg_district_key
JOIN prs_kenmerklink kl
ON kl.prs_link_key = p.prs_perslid_key
WHERE pwpg.alg_locatie_key = l2.alg_locatie_key
AND l.alg_locatie_key = m.mld_alg_locatie_key
AND p.prs_srtperslid_key = 32
AND kl.prs_kenmerk_key = 1100
AND kl.prs_kenmerklink_waarde = '1'
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL)
UNION ALL
-- Klantsupport RM / RM/PM & BB
SELECT m.mld_melding_key,
NVL (ud.fac_usrdata_omschr, 'klantsupport@csu.nl')
AS prs_perslid_email,
m.mld_melding_status,
m.mld_stdmelding_key,
'Klantsupport'
AS functie
FROM mld_melding m
JOIN stdmelding sm
ON sm.mld_stdmelding_key = m.mld_stdmelding_key
LEFT JOIN fac_ud ud
ON ud.discipline_key = sm.mld_ins_discipline_key
WHERE m.mld_stdmelding_key != 41
AND sm.mld_stdmelding_default_disc IN (1182, 1183)
AND NOT EXISTS
(SELECT 1
FROM prs_perslid p
JOIN prs_v_werkplekperslid_gegevens pwpg
ON pwpg.prs_perslid_key =
p.prs_perslid_key
JOIN prs_kenmerklink kl
ON kl.prs_link_key = p.prs_perslid_key
WHERE pwpg.alg_locatie_key =
m.mld_alg_locatie_key
AND p.prs_srtperslid_key IN (4041, 50)
AND kl.prs_kenmerk_key = 1100
AND kl.prs_kenmerklink_waarde = '1'
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL)),
g_filtered
AS
(SELECT g.*
FROM g
JOIN stdmelding sm
ON sm.mld_stdmelding_key = g.mld_stdmelding_key
WHERE -- statusfilter
( g.mld_melding_status IN (2,
3,
4,
7)
OR ( g.mld_melding_status IN (5, 6)
AND g.functie = 'BBer'
AND sm.mld_stdmelding_default_disc IN (1461)))
AND ( sm.mld_stdmeldinggroep_key IS NULL
OR sm.mld_stdmeldinggroep_key <> 1)
AND NVL (sm.mld_stdmelding_autoorder, 0) <> 1)
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,
DECODE (COUNT (x.haaglanden) OVER (PARTITION BY x.mld_melding_key),
1, 'Politie.Haaglanden@csu.nl',
x.prs_perslid_email) AS prs_perslid_email,
x.functie
FROM (SELECT DISTINCT
mld_melding_key,
prs_perslid_email,
DECODE (UPPER (prs_perslid_email),
FROM (SELECT g.mld_melding_key,
g.prs_perslid_email,
DECODE (UPPER (g.prs_perslid_email),
'POLITIE.HAAGLANDEN@CSU.NL', 1,
NULL) haaglanden,
functie
FROM (SELECT m.mld_melding_key,
alg_onrgoedkenmerk_waarde
prs_perslid_email,
mld_melding_status,
mld_stdmelding_key,
'BBer'
functie
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,
'BBer' AS functie
FROM prs_perslid p,
mld_melding m,
alg_locatie l,
alg_locatie l2,
prs_v_werkplekperslid_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 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
AND m.mld_stdmelding_key IN
(SELECT mld_stdmelding_key
FROM mld_stdmelding
WHERE mld_stdmelding_default_disc IN
(1181, 1183) -- Behandelteams BB en RM/PM & BB
AND mld_stdmelding_verwijder
IS NULL)
UNION ALL --Extra Union in CSUN#85584 (ook bij de WHERE hieronder statussen)
SELECT m.mld_melding_key,
prs_perslid_email,
mld_melding_status,
mld_stdmelding_key,
'BBer' AS functie
FROM prs_perslid p,
mld_melding m,
alg_locatie l,
alg_locatie l2,
prs_v_werkplekperslid_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 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
AND m.mld_stdmelding_key IN
(SELECT m.mld_stdmelding_key
FROM mld_stdmelding m, ins_tab_discipline d
WHERE m.mld_stdmelding_default_disc IN
(1461) -- Behandelteam mutatiebeheer
AND m.mld_ins_discipline_key =
d.ins_discipline_key
AND d.ins_srtdiscipline_key = 2 -- Vakgroeptype Aanvraag
AND m.mld_stdmelding_verwijder IS NULL)
UNION ALL
SELECT m.mld_melding_key,
prs_perslid_email,
mld_melding_status,
mld_stdmelding_key,
DECODE (p.prs_srtperslid_key,
50, 'Rayonmanager',
4041, 'Objectleider') AS functie
FROM prs_perslid p,
mld_melding m,
prs_v_werkplekperslid_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 Rayonmanager
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
AND 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
AND m.mld_stdmelding_key IN
(SELECT mld_stdmelding_key
FROM mld_stdmelding
WHERE mld_stdmelding_default_disc IN
(1182, 1183) -- Behandelteams RM en RM/PM & BB
AND mld_stdmelding_verwijder
IS NULL)
UNION ALL
SELECT m.mld_melding_key,
NVL(ud.fac_usrdata_omschr, 'klantsupport@csu.nl') AS prs_perslid_email,
m.mld_melding_status,
m.mld_stdmelding_key,
'Klantsupport' AS functie
FROM mld_melding m
JOIN mld_stdmelding s ON s.mld_stdmelding_key = m.mld_stdmelding_key
LEFT JOIN (
SELECT fac.safe_to_number(fac_usrdata_code) AS discipline_key,
fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 441
AND fac_usrdata_verwijder IS NULL
) ud
ON ud.discipline_key = s.mld_ins_discipline_key
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
AND m.mld_stdmelding_key IN
(SELECT mld_stdmelding_key
FROM mld_stdmelding
WHERE mld_stdmelding_default_disc IN
(1181, 1183) -- Behandelteams BB en RM/PM & BB
AND mld_stdmelding_verwijder
IS NULL)
AND m.mld_alg_locatie_key NOT IN
(SELECT l.alg_locatie_key
FROM prs_perslid p,
alg_locatie l,
alg_locatie l2,
prs_v_werkplekperslid_gegevens
pwpg,
prs_kenmerklink kl
WHERE 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 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,
NVL(ud.fac_usrdata_omschr, 'klantsupport@csu.nl') AS prs_perslid_email,
m.mld_melding_status,
m.mld_stdmelding_key,
'Klantsupport' AS functie
FROM mld_melding m
JOIN mld_stdmelding s ON s.mld_stdmelding_key = m.mld_stdmelding_key
LEFT JOIN (
SELECT fac.safe_to_number(fac_usrdata_code) AS discipline_key,
fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 441
AND fac_usrdata_verwijder IS NULL
) ud
ON ud.discipline_key = s.mld_ins_discipline_key
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
AND m.mld_stdmelding_key IN
(SELECT mld_stdmelding_key
FROM mld_stdmelding
WHERE mld_stdmelding_default_disc IN
(1182, 1183) -- Behandelteams RM en RM/PM & BB
AND mld_stdmelding_verwijder
IS NULL)
AND m.mld_alg_locatie_key NOT IN
(SELECT pwpg.alg_locatie_key
FROM prs_perslid p,
prs_v_werkplekperslid_gegevens
pwpg,
prs_kenmerklink kl
WHERE 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 Rayonmanager
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
AND 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)
OR ( g.mld_melding_status IN (5, 6) -- Ivm CSUN#85584 mag de notificatie ook naar BB'ers bij status afgemeld/afgerond, indien de aanvraag/storing/melding tbv behandelteam Mutatiebeheer is.
AND g.functie = 'BBer'
AND g.mld_stdmelding_key IN
(SELECT m.mld_stdmelding_key
FROM mld_stdmelding m,
ins_tab_discipline d
WHERE m.mld_stdmelding_default_disc IN
(1461) -- Behandelteam mutatiebeheer
AND m.mld_ins_discipline_key =
d.ins_discipline_key
AND d.ins_srtdiscipline_key = 2 -- Vakgroeptype Aanvraag
AND m.mld_stdmelding_verwijder
IS NULL)))
AND mld_stdmelding_key NOT IN
(SELECT mld_stdmelding_key
FROM mld_stdmelding
WHERE mld_stdmeldinggroep_key = 1 OR mld_stdmelding_autoorder = 1) -- Groep 'Niet notificeren' of automatische opdracht (#88126)
AND ( (NOT EXISTS
( SELECT MAX (fac_tracking_key)
FROM fac_tracking t
WHERE ( ( ( fac_tracking_oms LIKE
'Gemaild naar BBer:%'
OR fac_tracking_oms LIKE
'Gemaild naar Rayonmanager:%'
OR fac_tracking_oms LIKE
'Gemaild naar Objectleider:%'
OR fac_tracking_oms LIKE
'Gemaild naar Klantsupport:%')
AND fac_srtnotificatie_key =
111) -- MLDMAI
OR ( UPPER (
fac_tracking_oms) LIKE
'%PLAATS:%'
AND fac_srtnotificatie_key =
41)) -- MLDUPD
AND t.fac_srtnotificatie_key =
111
AND t.fac_tracking_refkey =
g.mld_melding_key
GROUP BY fac_tracking_refkey))
OR ((SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey =
g.mld_melding_key
AND fac_srtnotificatie_key = 41 --MLDUPD
AND UPPER (fac_tracking_oms) LIKE
'%PLAATS:%') >
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey =
g.mld_melding_key
AND fac_srtnotificatie_key = 111 --MLDMAI
AND ( fac_tracking_oms LIKE
'Gemaild naar BBer:%'
OR fac_tracking_oms LIKE
'Gemaild naar Rayonmanager:%'
OR fac_tracking_oms LIKE
'Gemaild naar Objectleider:%'
OR fac_tracking_oms LIKE
'Gemaild naar Klantsupport:%')))))
NULL) AS haaglanden,
g.functie
FROM g_filtered g
LEFT JOIN tracking tr
ON tr.mld_melding_key = g.mld_melding_key
WHERE tr.last_mail_dt IS NULL OR tr.last_place_dt > tr.last_mail_dt)
x;
v_dummy VARCHAR2 (128);
v_pattach VARCHAR2 (4000);
BEGIN
@@ -8466,12 +8425,7 @@ BEGIN
'melding'
AND n.fac_notificatie_systeemadres IS NOT NULL
AND m.mld_melding_externnr IS NULL
GROUP BY n.fac_notificatie_key);
csun_export_mailnoti;
--csun_noti_rm_noshow;
GROUP BY n.fac_notificatie_key);
END;
/
@@ -9439,7 +9393,7 @@ AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
--csun_export_mailnoti;
csun_export_mailnoti;
csun_noti_rm_noshow;