LOGC#66278 -- Maandelijks Export + Noti voor Emmen

svn path=/Customer/trunk/; revision=50558
This commit is contained in:
Norbert Wassink
2021-03-30 12:21:08 +00:00
parent 3985b42e91
commit 137ce8c7c4

View File

@@ -15,6 +15,101 @@ SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE LOGC
AS
PROCEDURE tsk_emailrapport (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2);
END;
/
CREATE OR REPLACE PACKAGE BODY LOGC
AS
PROCEDURE tsk_emailrapport (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_today VARCHAR2 (10);
v_bijlage VARCHAR2(4000);
v_lastRun VARCHAR2 (20);
v_notiKey NUMBER;
BEGIN
SELECT TO_CHAR(SYSDATE,'DD') INTO v_today FROM DUAL;
IF v_today = '01' --op de eerste dag vd maand
THEN
SELECT TO_CHAR(fac_export_app_datum,'DD-MM-YYYY') INTO v_lastRun FROM fac_export_app WHERE fac_export_app_code='OPEN_MLD';
SELECT fac_srtnotificatie_key INTO v_notiKey FROM fac_srtnotificatie WHERE fac_srtnotificatie_code='CUST02';
IF v_LastRun = TO_CHAR(SYSDATE,'DD-MM-YYYY') -- export heeft gedraaid
THEN
v_bijlage := '/../../Fplace5i/CUST/LOGC/export/mld_export/MLD_LogC_'||to_char(SYSDATE, 'yyyymmdd')||'.csv';
--v_bijlage := '../../Branch20202/CUST/LOGC/export/mld_export/MLD_LogC_'||to_char(SYSDATE, 'yyyymmdd')||'.csv';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
prs_perslid_key_sender,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_attachments)
VALUES (
v_notiKey,
3,
2,
'gerard.mensink@aareon.nl',
'LogCentre meldingen per '|| TO_CHAR(SYSDATE,'DD-MM-YYYY'),
2,
2,
v_bijlage);
COMMIT;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Email rapport task afgebroken!: ' || v_errormsg,
v_errorhint);
COMMIT;
END;
END;
/
CREATE OR REPLACE PROCEDURE logc_monthly (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
logc.tsk_emailrapport(p_applname, p_applrun);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Monthly task afgebroken!: ' || v_errormsg,
v_errorhint);
COMMIT;
END;
/
CREATE OR REPLACE VIEW logc_v_my_activity
AS
@@ -2299,6 +2394,579 @@ AS
AND k.mld_srtkenmerk_key = 1
AND km.mld_kenmerkmelding_waarde LIKE '2%';
CREATE OR REPLACE VIEW logc_v_rap_emmen
(
melding_key,
module,
kostenplaats_oms,
melder,
afdeling_omschrijving,
productgroep,
subproductgroep,
subproductgroepgroep,
melding_status,
sla_werkdgn,
plan_uitvoertijd_sla,
melding_datum,
melding_einddatum_std,
melding_accepted,
melding_afgemeld,
doorlooptijd_werkdgn,
onderwerp,
melding_opmerking,
prioriteittxt,
uitvoering_sla_optijd
)
AS
SELECT
distinct melding_key,
(SELECT ud.fac_usrdata_omschr
FROM mld_srtkenmerk sk,
mld_kenmerk k,
mld_kenmerkmelding km,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'HEEFT BETREKKING OP'
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND ud.fac_usrdata_key = km.mld_kenmerkmelding_waarde
AND ut.fac_usrtab_key = ud.fac_usrtab_key
AND ut.fac_usrtab_key = 1
AND km.mld_melding_key = melding_key) module,
kostenplaats_oms,
melder,
afdeling_omschrijving,
productgroep,
subproductgroep,
subproductgroepgroep,
melding_status,
sla_werkdgn,
plan_uitvoertijd_sla,
melding_datum,
melding_einddatum_std,
melding_accepted,
melding_afgemeld,
doorlooptijd_werkdgn,
onderwerp,
melding_opmerking,
prioriteittxt,
uitvoering_sla_optijd
FROM (
SELECT melding_key,
kostenplaats_oms,
melder,
afdeling_omschrijving,
productgroep,
subproductgroep,
subproductgroepgroep,
melding_status,
sla_werkdgn,
plan_uitvoertijd_sla,
melding_datum,
melding_einddatum_std,
melding_accepted,
melding_afgemeld,
doorlooptijd_werkdgn,
onderwerp,
melding_opmerking,
prioriteittxt,
uitvoering_sla_optijd
FROM logc_v_mld_emmen mld
WHERE mld.MELDING_DATUM< TO_DATE('01-01-'||to_char(SYSDATE-365,'YYYY'), 'DD-MM-YYYY')
AND mld.MELDING_AFGEMELD > TO_DATE('01-01-'||to_char(SYSDATE-365,'YYYY'), 'DD-MM-YYYY')
UNION
SELECT melding_key,
kostenplaats_oms,
melder,
afdeling_omschrijving,
productgroep,
subproductgroep,
subproductgroepgroep,
melding_status,
sla_werkdgn,
plan_uitvoertijd_sla,
melding_datum,
melding_einddatum_std,
melding_accepted,
melding_afgemeld,
doorlooptijd_werkdgn,
onderwerp,
melding_opmerking,
prioriteittxt,
uitvoering_sla_optijd
FROM logc_v_mld_emmen mld
WHERE mld.MELDING_DATUM> TO_DATE('01-01-'||TO_CHAR(SYSDATE-365,'YYYY'), 'DD-MM-YYYY')
);
CREATE OR REPLACE VIEW logc_v_export_open_mld
(
result, result_order
)
AS
-- SELECT 'Melding key;Module;Kostenplaat oms;Melder;Afdeling omschrijving;Productgroep;Subproductgroep;Subproductgroepgroep;Melding status;Sla Werkdgn;Plan uitvoertijd sla;Melding datum;Melding datum std;Melding accepted;Melding afgemeld;Doorlooptijd werkdgn;Onderwerp;Melding opmerking;Prioriteittxt;Uitvoering sla Otijd', FROM dual
-- UNION
SELECT
module ||';'||
melding_key||';'||
kostenplaats_oms ||';'||
melder ||';'||
afdeling_omschrijving ||';'||
productgroep ||';'||
subproductgroep ||';'||
subproductgroepgroep ||';'||
melding_status||';'||
sla_werkdgn||';'||
plan_uitvoertijd_sla||';'||
melding_datum||';'||
melding_einddatum_std||';'||
melding_accepted||';'||
melding_afgemeld||';'||
doorlooptijd_werkdgn||';'||
onderwerp||';'||
melding_opmerking||';'||
prioriteittxt||';'||
uitvoering_sla_optijd,
to_char (melding_datum, 'yyyymmdd')
FROM logc_v_rap_emmen;
CREATE OR REPLACE VIEW logc_v_mld_emmen
(
melding_key,
meldingnummer,
melding_start_key,
externnummer,
melding_regio,
melding_district,
melding_locatiecode,
melding_locatie,
melding_locatieplaats,
fclt_3d_locatie_key,
melding_gebouwcode,
melding_gebouw,
melding_verdieping,
melding_ruimtenr,
melding_ruimte,
melding_ordernr,
kostensoortgroep,
kostensoort,
kostenplaats,
kostenplaats_oms,
melder,
melder_key,
afdeling,
afdeling_omschrijving,
fclt_3d_afdeling_key,
bedrijf_key,
invoerder,
meldbron,
soortmelding,
fclt_3d_discipline_key,
productgroep,
subproductgroep,
behandelgroep,
behandelaar,
behandelaar_key,
subproductgroepgroep,
fclt_3d_discipline2_key,
actieve_behandelgroep,
actieve_behandelaar_key,
actieve_behandelaar,
melding_status,
sla_nvt,
sla_werkdgn,
sla_werkuren,
sla_respijtdgn,
sla_respijturen,
sla_accptdgn,
sla_accpturen,
plan_uitvoertijd_sla,
melding_datum,
melding_einddatum,
melding_einddatum_std,
melding_acceptdatum,
melding_afgemeld,
melding_accepted,
doorlooptijd_werkdgn,
doorlooptijd_werkuren,
onderwerp,
vomschrijving,
melding_opmerking,
prioriteit,
prioriteittxt,
rating,
rating_opmerking,
bolletje,
actiecode,
accept_sla_dagen,
accept_sla_uren,
uitvoering_sla_dagen,
uitvoering_sla_uren,
afspraak_sla_dagen,
afspraak_sla_uren,
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
selfservice
)
AS
SELECT mld_melding_key,
meldingnummer,
mld_melding_start_key,
mld_melding_externnr,
alg_regio_omschrijving,
alg_district_omschrijving,
locatie,
locatie_omschrijving,
locatie_plaats,
alg_locatie_key,
gebouw,
gebouw_naam,
verdieping,
ruimte,
ruimte_omschrijving,
melding_ordernr,
kostensoortgroep,
kostensoort,
kostenplaats,
kostenplaats_oms,
melder,
prs_perslid_key,
afdeling,
afdeling_omschrijving,
afdeling_key,
prs_bedrijf_key,
invoerder,
meldbron,
soortmelding,
stdm_ins_discipline_key,
productgroep,
subproductgroep,
behandelgroep,
behandelaar,
behandelaar_key,
subproductgroepgroep,
mld_ins_discipline_key,
actieve_behandelgroep,
actieve_behandelaar_key,
actieve_behandelaar,
status,
sla_nvt,
sla_werkdgn,
sla_werkuren,
sla_respijtdgn,
sla_respijturen,
sla_accptdgn,
sla_accpturen,
plan_uitvoertijd_sla,
datum,
einddatum,
einddatum_std,
acceptdatum,
afgemeld,
accepted,
DECODE (x.t_doorlooptijd.eenheid, 'D', x.t_doorlooptijd.tijdsduur, NULL)
doorlooptijd_werkdgn,
DECODE (x.t_doorlooptijd.eenheid, 'U', x.t_doorlooptijd.tijdsduur, NULL)
doorlooptijd_werkuren,
onderwerp,
omschrijving,
opmerking,
mld_melding_spoed prioriteit,
DECODE(mld_melding_spoed,3,lcl.l('lcl_mld_urg_normaal'),1,lcl.l('lcl_mld_urg_kritiek'),2,lcl.l('lcl_mld_urg_hoog'),4,lcl.l('lcl_mld_urg_laag')),
mld_melding_satisfaction,
mld_melding_satisfaction_op,
mld_melding_flag,
mld_melding_actiecode,
DECODE (x.t_doorlooptijd.eenheid, 'D', acceptdatum - COALESCE (accepted, afgemeld), NULL)
accept_sla_dagen,
CAST (
DECODE (x.t_doorlooptijd.eenheid,
'U', (acceptdatum - COALESCE (accepted, afgemeld)) * 24,
NULL)
AS NUMBER(7,2)
)
accept_sla_uren,
DECODE (
x.t_doorlooptijd.eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (afgemeld, SYSDATE)
+ COALESCE (sla_respijtdgn, 0),
NULL)
uitvoering_sla_dagen,
CAST (
DECODE (
x.t_doorlooptijd.eenheid,
'U',
( (mld.geteinddatum (mld_melding_key) - COALESCE (afgemeld, SYSDATE)) * 24)
+ COALESCE (sla_respijturen, 0),
NULL)
AS NUMBER(7,2)
)
uitvoering_sla_uren,
DECODE (x.t_doorlooptijd.eenheid,
'D', einddatum - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0),
NULL)
afspraak_sla_dagen,
CAST (
DECODE (
x.t_doorlooptijd.eenheid,
'U',
( (einddatum - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijtdgn, 0),
NULL)
AS NUMBER(7,2)
)
afspraak_sla_uren,
CASE
WHEN acceptdatum IS NULL
OR -- Dan is er geen acceptatietijd gedefinieerd en dus altijd op tijd.
DECODE (x.t_doorlooptijd.eenheid,
'D', acceptdatum - COALESCE (accepted, afgemeld),
0)
+ DECODE (x.t_doorlooptijd.eenheid,
'U', (acceptdatum - COALESCE (accepted, afgemeld)) * 24,
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END
accept_sla_optijd,
CASE
WHEN DECODE (
x.t_doorlooptijd.eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (afgemeld, SYSDATE)
+ COALESCE (sla_respijtdgn, 0),
0)
+ DECODE (
x.t_doorlooptijd.eenheid,
'U',
( (mld.geteinddatum(mld_melding_key) - COALESCE (afgemeld, SYSDATE)) * 24)
+ COALESCE (sla_respijturen, 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END
uitvoering_sla_optijd,
CASE
WHEN DECODE (x.t_doorlooptijd.eenheid,
'D',
einddatum - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0),
0)
+ DECODE (
x.t_doorlooptijd.eenheid,
'U',
( (einddatum - COALESCE (afgemeld, SYSDATE)) * 24)
+ COALESCE (sla_respijtdgn, 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END
afspraak_sla_optijd,
DECODE(invoerder, melder, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) selfservice
FROM (SELECT m.mld_melding_key,
m.mld_melding_start_key,
m.mld_melding_externnr,
m.prs_perslid_key,
sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingnummer,
alg_regio_omschrijving,
alg_district_omschrijving,
alg_locatie_code locatie,
alg_locatie_omschrijving locatie_omschrijving,
alg_locatie_plaats locatie_plaats,
l.alg_locatie_key,
og.alg_gebouw_code gebouw,
og.alg_gebouw_naam gebouw_naam,
og.alg_verdieping_code verdieping,
og.alg_ruimte_nr ruimte,
og.alg_ruimte_omschrijving ruimte_omschrijving,
m.mld_melding_ordernr melding_ordernr,
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT COALESCE (sm.prs_kostensoort_key, disc.prs_kostensoort_key)
FROM mld_stdmelding sm, mld_discipline disc
WHERE sm.mld_ins_discipline_key = disc.ins_discipline_key
AND sm.mld_stdmelding_key = s.mld_stdmelding_key))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT COALESCE (sm.prs_kostensoort_key, disc.prs_kostensoort_key)
FROM mld_stdmelding sm, mld_discipline disc
WHERE sm.mld_ins_discipline_key = disc.ins_discipline_key
AND sm.mld_stdmelding_key = s.mld_stdmelding_key))
kostensoort,
(SELECT k.prs_kostenplaats_nr
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
kostenplaats,
(SELECT k.prs_kostenplaats_omschrijving
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
kostenplaats_oms,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = m.prs_perslid_key)
melder,
COALESCE (
(SELECT prs_afdeling_naam
FROM prs_afdeling afd
WHERE afd.prs_afdeling_key = m.prs_afdeling_key),
(SELECT prs_afdeling_naam
FROM prs_afdeling afd, prs_perslid pp
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key))
afdeling,
COALESCE (
(SELECT prs_afdeling_omschrijving
FROM prs_afdeling afd
WHERE afd.prs_afdeling_key = m.prs_afdeling_key),
(SELECT prs_afdeling_omschrijving
FROM prs_afdeling afd, prs_perslid pp
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key))
afdeling_omschrijving,
COALESCE (
(m.prs_afdeling_key),
(SELECT prs_afdeling_key
FROM prs_perslid pp
WHERE pp.prs_perslid_key = m.prs_perslid_key))
afdeling_key,
(SELECT prs_bedrijf_key
FROM prs_v_afdeling pva, prs_perslid pp
WHERE pva.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key)
prs_bedrijf_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = mld.getmeldinguser (m.mld_melding_key))
invoerder,
(SELECT mb.mld_meldbron_omschrijving
FROM mld_meldbron mb
WHERE mb.mld_meldbron_key = m.mld_meldbron_key)
meldbron,
m.mld_meldbron_key,
sd.ins_srtdiscipline_key ins_srtdiscipline_key,
sd.ins_srtdiscipline_omschrijving soortmelding,
md.ins_discipline_key stdm_ins_discipline_key,
md.ins_discipline_omschrijving productgroep,
s.mld_stdmelding_omschrijving subproductgroep,
smg.mld_stdmeldinggroep_naam subproductgroepgroep,
mbg.mld_behandelgroep_naam behandelgroep,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = m.mld_melding_behandelaar_key)
behandelaar,
m.mld_melding_behandelaar_key behandelaar_key,
m.mld_ins_discipline_key mld_ins_discipline_key,
(SELECT md2.ins_discipline_omschrijving
FROM mld_discipline md2
WHERE md2.ins_discipline_key = m.mld_ins_discipline_key) actieve_behandelgroep,
m.mld_melding_behandelaar2_key actieve_behandelaar_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = m.mld_melding_behandelaar2_key)
actieve_behandelaar,
(SELECT mld_statuses_omschrijving
FROM mld_statuses sta
WHERE sta.mld_statuses_key = m.mld_melding_status)
status,
CASE
WHEN m.mld_melding_einddatum >
COALESCE (fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
SYSDATE)
THEN
1
ELSE
0
END
plan_uitvoertijd_sla,
CASE
WHEN m.mld_melding_indult = 1 OR s.mld_stdmelding_slabewaken = 0 THEN 1
ELSE 0
END
sla_nvt,
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
NULL)
sla_werkdgn,
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
NULL)
sla_werkuren,
DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL)
sla_respijtdgn,
DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL)
sla_respijturen,
DECODE (m.mld_melding_t_accepttijd.eenheid,
'D', m.mld_melding_t_accepttijd.tijdsduur,
NULL)
sla_accptdgn,
DECODE (m.mld_melding_t_accepttijd.eenheid,
'U', m.mld_melding_t_accepttijd.tijdsduur,
NULL)
sla_accpturen,
m.mld_melding_datum datum,
CASE WHEN s.mld_stdmelding_planbaar = 2
THEN TO_DATE(NULL)
ELSE m.mld_melding_einddatum
END einddatum,
mld_melding_einddatum_std einddatum_std,
mld_melding_acceptdatum_std acceptdatum,
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1))
afgemeld,
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 4),
mld.getmeldingstatusdate (m.mld_melding_key, 1))
accepted,
mld.getactualuitvoer (m.mld_melding_key) t_doorlooptijd,
m.mld_melding_onderwerp onderwerp,
m.mld_melding_omschrijving omschrijving,
m.mld_melding_opmerking opmerking,
m.mld_melding_spoed,
m.mld_melding_satisfaction,
m.mld_melding_satisfaction_op,
m.mld_melding_flag,
mld_melding_actiecode
FROM mld_melding m,
mld_stdmelding s,
alg_locatie l,
alg_district d,
alg_regio r,
alg_v_allonrgoed_gegevens og,
mld_discipline md,
mld_disc_params mdp,
mld_behandelgroep mbg,
ins_srtdiscipline sd,
mld_stdmeldinggroep smg
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
AND s.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+)
AND mdp.mld_behandelgroep_key = mbg.mld_behandelgroep_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = r.alg_regio_key(+)
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
AND m.fac_activiteit_key IS NULL
AND m.mld_melding_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY')) x;
------ payload end ------
SET DEFINE OFF