AAXX#73318 -- Splitsing Ordertrackinglijst voor Covestro binnen INLO-omgeving

svn path=/Customer/; revision=56590
This commit is contained in:
Jos Migo
2022-07-14 21:20:51 +00:00
parent 0691b0d8af
commit f92c5562a7

View File

@@ -0,0 +1,383 @@
--
-- $Id$
--
-- ONCESCRIPT om aanpassing in notificatie en rapport-view te leveren naar PROD voor Covestro
DEFINE thisfile = 'AAXX#73318_covestro.SQL'
DEFINE dbuser = 'AAXX'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
-- Rapportview behorende bij job AAXX_V_NOTIFY_BACKOFFICE_OT
CREATE OR REPLACE VIEW aaxx_v_rap_ordertrackinglijst
(
account,
subaccount, -- in geval INLO - Op gebouwniveau een kenmerk...!
regio, -- in geval dsm en rabo
vakgroep_email,
extra_key, -- vanuit job extra filter_key
opdrachtnr,
mld_opdr_key,
uitvoerder,
behandelaar,
opdracht_type,
soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijziging
datum,
actie_door,
actie_omschrijving,
actie_details,
run_deze,
run_vorige
)
AS
SELECT -- Voor notities
fac_version_cust account,
CASE WHEN acc.fac_version_cust in ('INLO') THEN v.klant
ELSE NULL
END subaccount, -- in geval INLO
CASE WHEN acc.fac_version_cust in ('RABO') THEN og.alg_regio_omschrijving
WHEN acc.fac_version_cust in ('AADS') THEN og.alg_district_omschrijving
ELSE NULL
END regio, -- in geval dsm en rabo
dp.mld_disc_params_emailnw3 vakgroep_email,
NULL extra_key, -- vanuit job extra filter_key - niet nodig in deze..
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
o.mld_opdr_key,
u.naam uitvoerder,
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')' behandelaar,
ot.mld_typeopdr_omschrijving opdracht_type,
'Notitie' soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
TO_CHAR(mld_opdr_note_aanmaak,'dd-mm-yyyy hh24:mm:ss') datum,
pn.prs_perslid_naam || ' (' || pn.prs_perslid_voornaam || ')' actie_door,
'Notitie' actie_omschrijving, -- Subsoort voor status
mld_opdr_note_omschrijving actie_details,
TO_CHAR(d1.fac_tracking_datum, 'dd-mm-yyyy hh24:mm:ss'), -- Deze_run
TO_CHAR(d2.fac_tracking_datum, 'dd-mm-yyyy hh24:mm:ss') -- Vorige_run
FROM mld_melding m,
mld_opdr o,
mld_typeopdr ot,
mld_v_uitvoerende u,
mld_opdr_note note,
prs_perslid pn,
prs_perslid po,
mld_stdmelding sm,
ins_tab_discipline d,
mld_disc_params dp,
aaxx_v_dwh_alg_onrgoed og,
(
SELECT m.mld_melding_key, og.alg_gebouw_key,
DECODE(aaxx_get_user, 'INLO', DECODE(fud.fac_usrdata_omschr, 'Covestro', fud.fac_usrdata_omschr || ' - ' || og.alg_locatie_omschrijving, fud.fac_usrdata_omschr),
fud.fac_usrdata_omschr) klant
FROM mld_melding m,
aaxx_v_dwh_alg_onrgoed og,
alg_onrgoedkenmerk k,
fac_usrdata fud
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = k.alg_onrgoed_key
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, 1100)
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key ) v,
(SELECT fac_version_cust FROM fac_version) acc,
(SELECT COALESCE(max(TO_DATE(v.fac_tracking_datum,'YYYY-MM-DD HH24:MI:SS')), SYSDATE - 1/24) fac_tracking_datum
FROM
(SELECT rownum volgnr, vv.fac_tracking_datum
FROM
(SELECT TO_CHAR (ft.fac_tracking_datum, 'YYYY-MM-DD HH24:MI') fac_tracking_datum
FROM (SELECT fac_tracking_key, fac_srtnotificatie_key, fac_tracking_datum FROM fac_tracking ORDER BY fac_tracking_datum DESC) ft, fac_srtnotificatie sn
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
AND sn.fac_srtnotificatie_code = 'CUST16'
GROUP BY ft.fac_tracking_datum) vv
WHERE rownum <=2 ) v
WHERE v.volgnr = 1) d1,
(SELECT COALESCE(max(TO_DATE(v.fac_tracking_datum,'YYYY-MM-DD HH24:MI:SS')), SYSDATE - 1/24) fac_tracking_datum
FROM
(SELECT rownum volgnr, vv.fac_tracking_datum
FROM
(SELECT TO_CHAR (ft.fac_tracking_datum, 'YYYY-MM-DD HH24:MI') fac_tracking_datum
FROM (SELECT fac_tracking_key, fac_srtnotificatie_key, fac_tracking_datum FROM fac_tracking ORDER BY fac_tracking_datum DESC) ft, fac_srtnotificatie sn
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
AND sn.fac_srtnotificatie_code = 'CUST16'
GROUP BY ft.fac_tracking_datum) vv
WHERE rownum <=2 ) v
WHERE v.volgnr = 2) d2
WHERE o.mld_opdr_key = note.mld_opdr_key
AND m.mld_melding_key = o.mld_melding_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND d.ins_discipline_key = dp.mld_ins_discipline_key
AND note.prs_perslid_key = pn.prs_perslid_key
AND pn.prs_perslid_verwijder IS NULL
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
AND o.prs_perslid_key = po.prs_perslid_key (+)
AND m.mld_alg_locatie_key = og.alg_locatie_key AND og.alg_type = 'L'
AND o.mld_melding_key = v.mld_melding_key (+)
AND note.prs_perslid_key NOT IN
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
AND note.mld_opdr_note_aanmaak >= d2.fac_tracking_datum
AND note.mld_opdr_note_aanmaak < d1.fac_tracking_datum
UNION
SELECT -- Voor status
acc.fac_version_cust account,
CASE WHEN acc.fac_version_cust in ('INLO') THEN v.klant
ELSE NULL
END subaccount, -- in geval INLO
CASE WHEN acc.fac_version_cust in ('RABO') THEN og.alg_regio_omschrijving
WHEN acc.fac_version_cust in ('AADS') THEN og.alg_district_omschrijving
ELSE NULL
END regio, -- in geval dsm en rabo
dp.mld_disc_params_emailnw3 vakgroep_email,
NULL extra_key, -- vanuit job extra filter_key - niet nodig in deze
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
o.mld_opdr_key,
u.naam uitvoerder,
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')' behandelaar,
ot.mld_typeopdr_omschrijving opdracht_type,
'Status' soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
TO_CHAR(t.datum,'dd-mm-yyyy hh24:mm:ss') datum,
pt.prs_perslid_naam || ' (' || pt.prs_perslid_voornaam || ')' actie_door,
COALESCE(vert.actiecode_tekst,t.actiecode) actie_omschrijving,
t.omschrijving actie_details,
TO_CHAR(d1.fac_tracking_datum, 'dd-mm-yyyy hh24:mm:ss'), -- Deze_run
TO_CHAR(d2.fac_tracking_datum, 'dd-mm-yyyy hh24:mm:ss') -- Vorige_run
FROM mld_melding m,
mld_opdr o,
mld_typeopdr ot,
aaxx_v_dwh_tracking t,
( SELECT UPPER (SUBSTR (fac_locale_xsl_label, 12)) as actiecode, fac_locale_xsl_tekst as actiecode_tekst
FROM fac_locale_xsl
WHERE INSTR (fac_locale_xsl_label, 'lcl_ord_is_') > 0
AND fac_locale_xsl_lang = 'NL') vert,
mld_v_uitvoerende u,
prs_perslid pt,
prs_perslid po,
mld_stdmelding sm,
ins_tab_discipline d,
mld_disc_params dp,
aaxx_v_dwh_alg_onrgoed og,
(
SELECT m.mld_melding_key, og.alg_gebouw_key,
DECODE(aaxx_get_user, 'INLO', DECODE(fud.fac_usrdata_omschr, 'Covestro', fud.fac_usrdata_omschr || ' - ' || og.alg_locatie_omschrijving, fud.fac_usrdata_omschr),
fud.fac_usrdata_omschr) klant
FROM mld_melding m,
aaxx_v_dwh_alg_onrgoed og,
alg_onrgoedkenmerk k,
fac_usrdata fud
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = k.alg_onrgoed_key
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, 1100)
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key ) v,
(SELECT fac_version_cust FROM fac_version) acc,
(SELECT COALESCE(max(TO_DATE(v.fac_tracking_datum,'YYYY-MM-DD HH24:MI:SS')), SYSDATE - 1/24) fac_tracking_datum
FROM
(SELECT rownum volgnr, vv.fac_tracking_datum
FROM
(SELECT TO_CHAR (ft.fac_tracking_datum, 'YYYY-MM-DD HH24:MI') fac_tracking_datum
FROM (SELECT fac_tracking_key, fac_srtnotificatie_key, fac_tracking_datum FROM fac_tracking ORDER BY fac_tracking_datum DESC) ft, fac_srtnotificatie sn
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
AND sn.fac_srtnotificatie_code = 'CUST16'
GROUP BY ft.fac_tracking_datum) vv
WHERE rownum <=2 ) v
WHERE v.volgnr = 1) d1,
(SELECT COALESCE(max(TO_DATE(v.fac_tracking_datum,'YYYY-MM-DD HH24:MI:SS')), SYSDATE - 1/24) fac_tracking_datum
FROM
(SELECT rownum volgnr, vv.fac_tracking_datum
FROM
(SELECT TO_CHAR (ft.fac_tracking_datum, 'YYYY-MM-DD HH24:MI') fac_tracking_datum
FROM (SELECT fac_tracking_key, fac_srtnotificatie_key, fac_tracking_datum FROM fac_tracking ORDER BY fac_tracking_datum DESC) ft, fac_srtnotificatie sn
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
AND sn.fac_srtnotificatie_code = 'CUST16'
GROUP BY ft.fac_tracking_datum) vv
WHERE rownum <=2 ) v
WHERE v.volgnr = 2) d2
WHERE o.mld_opdr_key = t.ref_key
AND t.soort = 'opdracht'
AND t.actiecode = vert.actiecode (+)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND m.mld_melding_key = o.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND d.ins_discipline_key = dp.mld_ins_discipline_key
AND t.prs_perslid_key = pt.prs_perslid_key
AND pt.prs_perslid_verwijder IS NULL
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
AND o.prs_perslid_key = po.prs_perslid_key (+)
AND m.mld_alg_locatie_key = og.alg_locatie_key AND og.alg_type = 'L'
AND o.mld_melding_key = v.mld_melding_key (+)
AND t.prs_perslid_key NOT IN
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
AND t.datum >= d2.fac_tracking_datum
AND t.datum < d1.fac_tracking_datum
;
-- Job voor de ordertrackinglijst te versturen. Betreft rapport met alle statusupdates en notities
CREATE OR REPLACE VIEW AAXX_V_NOTIFY_BACKOFFICE_OT -- OT = Ordertrackinglijst
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT (SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_upper = 'FACILITOR')
sender,
NULL
receiver,
'Ordertrackinglijst klant ' || acc.fac_version_cust
text,
'CUST16'
code,
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST16')
fac_srtnotificatie_key,
CASE WHEN acc.fac_version_cust = 'INLO' AND INSTR(lower(v.vakgroep_email), 'covestro')>0 THEN 1641
ELSE
DECODE (acc.fac_version_cust,
'RABO', 1321,
'INLO', 1041,
'CVGZ', 681,
'NMMS', 1001,
'AAAH', 1261,
'AAAR', 1101,
'AADO', 1001,
'AADS', 2001,
'AAES', 901,
'AAGN', 1441,
'AAIT', 1863,
'AASA', 1422,
'AAVG', 661,
'AQQA', 861,
'EXPO', 521,
'SMKA', 941,
9999)
END
key,
NULL
xkey,
v.vakgroep_email
xemail,
NULL
xmobile
FROM (select UPPER(fac_version_cust) fac_version_cust from fac_version) acc,
(SELECT dp.mld_disc_params_emailnw3
AS vakgroep_email
FROM mld_melding m,
mld_opdr o,
mld_opdr_note on1,
mld_stdmelding sm,
ins_tab_discipline d,
mld_disc_params dp,
prs_perslid p
WHERE o.mld_opdr_key = on1.mld_opdr_key
AND m.mld_melding_key = o.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND d.ins_discipline_key = dp.mld_ins_discipline_key
AND on1.prs_perslid_key NOT IN
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
AND on1.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null
AND on1.mld_opdr_note_aanmaak >=
COALESCE (
( SELECT MAX (ft.fac_tracking_datum)
FROM fac_tracking ft, fac_srtnotificatie sn
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
AND sn.fac_srtnotificatie_code = 'CUST16'),
SYSDATE -
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_OT' )
)
AND on1.mld_opdr_note_aanmaak <= SYSDATE
AND on1.mld_opdr_note_aanmaak >= SYSDATE - 3 -- Max langer dan 3 dagen terugkijken is voldoende
AND dp.mld_disc_params_emailnw3 IS NOT NULL
GROUP BY dp.mld_disc_params_emailnw3
UNION
SELECT dp.mld_disc_params_emailnw3
AS vakgroep_email
FROM mld_melding m,
mld_opdr o,
aaxx_v_dwh_tracking t,
mld_stdmelding sm,
ins_tab_discipline d,
mld_disc_params dp,
prs_perslid p
WHERE o.mld_opdr_key = t.ref_key
AND t.soort = 'opdracht'
AND m.mld_melding_key = o.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND d.ins_discipline_key = dp.mld_ins_discipline_key
AND t.prs_perslid_key NOT IN
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
AND t.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null
AND t.datum >=
COALESCE (
( SELECT MAX (ft.fac_tracking_datum)
FROM fac_tracking ft, fac_srtnotificatie sn
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
AND sn.fac_srtnotificatie_code = 'CUST16'),
SYSDATE -
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_OT' )
)
AND t.datum <= SYSDATE
AND t.datum >= SYSDATE - 3 -- Max langer dan 3 dagen terugkijken is voldoende
AND dp.mld_disc_params_emailnw3 IS NOT NULL
GROUP BY dp.mld_disc_params_emailnw3) v
;
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile