Initiele versie

svn path=/Customer/trunk/; revision=22583
This commit is contained in:
Arthur Egberink
2014-09-17 07:27:35 +00:00
parent 95407cf010
commit 4bf86cbb96

View File

@@ -27,7 +27,7 @@ END;
CREATE OR REPLACE PACKAGE BODY nmms CREATE OR REPLACE PACKAGE BODY nmms
AS AS
FUNCTION get_first_melding (p_melding_key IN NUMBER, FUNCTION get_first_melding (p_melding_key IN NUMBER,
p_index IN NUMBER) p_index IN NUMBER)
RETURN NUMBER RETURN NUMBER
AS AS
CURSOR c CURSOR c
@@ -205,6 +205,7 @@ END;
/ /
/* Formatted on 26-8-2014 15:16:20 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW nmms_v_monitoring CREATE OR REPLACE VIEW nmms_v_monitoring
( (
melding_key, melding_key,
@@ -223,6 +224,7 @@ CREATE OR REPLACE VIEW nmms_v_monitoring
begin, begin,
gereed, gereed,
thtijdstip, thtijdstip,
verwerkt,
tht, tht,
wht, wht,
regime, regime,
@@ -239,6 +241,7 @@ CREATE OR REPLACE VIEW nmms_v_monitoring
afgerond, afgerond,
dienst, dienst,
stdmelding_key, stdmelding_key,
overlappend,
wegingsfactor, wegingsfactor,
melding_omschrijving, melding_omschrijving,
melding_opmerking melding_opmerking
@@ -247,7 +250,7 @@ AS
SELECT mld_melding_key, SELECT mld_melding_key,
DECODE (antedateren, 0, '', 'T') -- de begintijd of eindtijd van de melding is aangepast DECODE (antedateren, 0, '', 'T') -- de begintijd of eindtijd van de melding is aangepast
|| DECODE (mld_melding_respijt, 0, '', 'R') -- er is een respijt ingevuld || DECODE (mld_melding_respijt, 0, '', 'R') -- er is een respijt ingevuld
|| DECODE (aantal, 1, '', 'S') -- betreft een samengestelde/overlappende melding -- || DECODE (aantal, 1, '', 'S') -- betreft een samengestelde/overlappende melding
|| DECODE (mld_melding_indult, 1, 'I', '') -- indult is aangevinkt dus melding doet niet mee || DECODE (mld_melding_indult, 1, 'I', '') -- indult is aangevinkt dus melding doet niet mee
|| DECODE (aantal_beschikb, 0, '', 'B'), -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte || DECODE (aantal_beschikb, 0, '', 'B'), -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte
q_vervolg, q_vervolg,
@@ -268,9 +271,14 @@ AS
object, object,
thema, thema,
mld_stdmelding_omschrijving omschrijving, mld_stdmelding_omschrijving omschrijving,
TO_CHAR (t_van, 'dd-mm-yyyy hh24:mi:ss') begin, t_van begin,
TO_CHAR (einddatum, 'dd-mm-yyyy hh24:mi:ss') eind, einddatum eind,
TO_CHAR (thtijdstip, 'dd-mm-yyyy hh24:mi:ss') thtijdstip, thtijdstip thtijdstip,
(SELECT fac_tracking_datum
FROM fac_tracking t
WHERE fac_tracking_refkey = mld_melding_key
AND fac_srtnotificatie_key = 36)
verwerkt,
DECODE ( DECODE (
kortingtype, kortingtype,
'Q', 'Q',
@@ -333,15 +341,21 @@ AS
(SELECT mld_statuses_omschrijving (SELECT mld_statuses_omschrijving
FROM mld_statuses s FROM mld_statuses s
WHERE s.mld_statuses_key = mld_melding_status), WHERE s.mld_statuses_key = mld_melding_status),
DECODE(mld_melding_afgerond, 1, 'x'), DECODE (mld_melding_afgerond, 1, 'x'),
(SELECT prs_dienst_omschrijving (SELECT prs_dienst_omschrijving
FROM prs_dienst di FROM prs_dienst di
WHERE di.prs_dienst_key = g.prs_dienst_key), WHERE di.prs_dienst_key = g.prs_dienst_key),
mld_stdmelding_key, mld_stdmelding_key,
overlappend,
wegingsfactor, wegingsfactor,
(SELECT mld_melding_omschrijving FROM mld_melding mo WHERE mo.mld_melding_key = g.mld_melding_key), (SELECT mld_melding_omschrijving
(SELECT mld_melding_opmerking FROM mld_melding mo WHERE mo.mld_melding_key = g.mld_melding_key) FROM mld_melding mo
WHERE mo.mld_melding_key = g.mld_melding_key),
(SELECT mld_melding_opmerking
FROM mld_melding mo
WHERE mo.mld_melding_key = g.mld_melding_key)
FROM (SELECT m.aantal, FROM (SELECT m.aantal,
DECODE(m.aantal, 1, NULL, m.overlappend) overlappend,
m.mld_melding_status, m.mld_melding_status,
m.mld_melding_afgerond, m.mld_melding_afgerond,
m.mld_melding_key, m.mld_melding_key,
@@ -447,9 +461,13 @@ AS
FROM ( -- selecteer de begin en eindtijd van overlappende meldingen van dezelfde dienst op dezelfde ruimte FROM ( -- selecteer de begin en eindtijd van overlappende meldingen van dezelfde dienst op dezelfde ruimte
-- --
SELECT m_start, SELECT m_start,
MIN (mld_melding_status) mld_melding_status, -- als er <20><>n van de onderliggende meldingen openstaat moet ook de eerste de status uitgegeven krijgen.
MIN (mld_melding_afgerond) mld_melding_afgerond, DECODE (SUM(open),
0, (SELECT mld_melding_status FROM mld_melding ms WHERE ms.mld_melding_key = m_start),4) mld_melding_status,
-- afgerond wordt alleen bij de eerste melding bijgehouden
(SELECT mld_melding_afgerond FROM mld_melding ms WHERE ms.mld_melding_key = m_start) mld_melding_afgerond,
COUNT (mld_melding_key) aantal, COUNT (mld_melding_key) aantal,
LISTAGG(mld_melding_key, ',') WITHIN GROUP (ORDER BY mld_melding_key) AS overlappend,
MIN (mld_melding_datum) t_van, MIN (mld_melding_datum) t_van,
MAX (t_tot) t_tot, MAX (t_tot) t_tot,
MIN (mld_melding_key) mld_melding_key, MIN (mld_melding_key) mld_melding_key,
@@ -471,9 +489,14 @@ AS
fac.gettrackingdate ('MLDAFM', fac.gettrackingdate ('MLDAFM',
m.mld_melding_key) m.mld_melding_key)
t_tot, t_tot,
DECODE(m.mld_melding_status, 4, 1, 0) open,
m.* m.*
FROM mld_melding m FROM mld_melding m
WHERE m.mld_melding_parentkey IS NULL) -- we nemen geen dubbele meldingen mee WHERE m.mld_melding_parentkey IS NULL
AND m.mld_melding_key NOT IN
(SELECT melding_key
FROM nmms_monitoring
WHERE melding_key is not null)) -- we nemen geen dubbele meldingen mee
GROUP BY m_start, mld_alg_onroerendgoed_keys) m, GROUP BY m_start, mld_alg_onroerendgoed_keys) m,
mld_stdmeldinggroep stdg, mld_stdmeldinggroep stdg,
alg_v_ruimte_gegevens rg, alg_v_ruimte_gegevens rg,
@@ -514,7 +537,9 @@ AS
GROUP BY mo1.mld_melding_key) obj, GROUP BY mo1.mld_melding_key) obj,
ins_deel d ins_deel d
WHERE mld_stdmelding_malus IS NOT NULL WHERE mld_stdmelding_malus IS NOT NULL
AND m.mld_melding_status IN (0, 2, 3, 4, 5, 7, 99) AND m.mld_melding_status IN (0, 2, 3, 4, 5, 6, 7, 99)
AND m.mld_melding_key NOT IN
(SELECT melding_key FROM nmms_monitoring WHERE melding_key is not null)
AND m.mld_alg_onroerendgoed_keys = rg.alg_ruimte_key(+) AND m.mld_alg_onroerendgoed_keys = rg.alg_ruimte_key(+)
AND m.mld_melding_key = obj.mld_melding_key(+) AND m.mld_melding_key = obj.mld_melding_key(+)
AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
@@ -557,6 +582,7 @@ CREATE OR REPLACE VIEW nmms_v_rap_monitoring
fclt_f_dienst, fclt_f_dienst,
hide_f_stdmelding_key, hide_f_stdmelding_key,
wegingsfactor, wegingsfactor,
overlappend,
hide_f_melding_omschrijving, hide_f_melding_omschrijving,
hide_f_melding_opmerking hide_f_melding_opmerking
) )
@@ -568,7 +594,7 @@ AS
|| melding_key || melding_key
|| '</a>' || '</a>'
melding, melding,
melding_key, melding_key,
afw, afw,
q_vervolg, q_vervolg,
indult, indult,
@@ -577,9 +603,9 @@ AS
object, object,
thema, thema,
omschrijving, omschrijving,
begin, to_char(begin, 'dd-mm-yyyy hh24:mi:ss') begin,
gereed, to_char(gereed, 'dd-mm-yyyy hh24:mi:ss') gereed,
thtijdstip, to_char(thtijdstip, 'dd-mm-yyyy hh24:mi:ss') thtijdstip,
tht, tht,
wht, wht,
regime, regime,
@@ -597,11 +623,12 @@ AS
dienst, dienst,
stdmelding_key, stdmelding_key,
wegingsfactor, wegingsfactor,
overlappend,
melding_omschrijving, melding_omschrijving,
melding_opmerking melding_opmerking
FROM nmms_v_monitoring; FROM nmms_v_monitoring;
-- rapportage view
CREATE OR REPLACE VIEW nmms_v_rap_monitoring_og CREATE OR REPLACE VIEW nmms_v_rap_monitoring_og
( (
html_melding, html_melding,
@@ -671,8 +698,200 @@ AS
hide_f_melding_omschrijving, hide_f_melding_omschrijving,
hide_f_melding_opmerking hide_f_melding_opmerking
FROM nmms_v_rap_monitoring FROM nmms_v_rap_monitoring
WHERE fclt_f_afw IS NOT NULL; WHERE fclt_f_afw IS NOT NULL OR fclt_f_afgerond IS NOT NULL;
-- view van nog te exporteren meldingen die afwijken of tot een korting leiden.
CREATE OR REPLACE VIEW nmms_v_monitoring_tot
(
melding_key,
afw,
q_vervolg,
indult,
respijt,
ruimte,
object,
thema,
omschrijving,
begin,
gereed,
thtijdstip,
verwerkt,
tht,
wht,
regime,
groep,
typekorting,
basiskorting,
variabelekorting,
uren,
kb,
prestatiekorting,
factor,
kp,
wegingsfactor,
dienst,
stdmelding_key,
totaal,
kinderen
)
AS
SELECT melding_key,
afw,
q_vervolg,
indult,
respijt,
ruimte,
object,
thema,
omschrijving,
begin,
gereed,
thtijdstip,
verwerkt,
tht,
wht,
regime,
groep,
typekorting,
basiskorting,
variabelekorting,
uren,
kb,
prestatiekorting,
factor,
kp,
wegingsfactor,
dienst,
stdmelding_key,
COALESCE (kb, kp) * COALESCE (wegingsfactor, 1),
NULL
FROM nmms_v_monitoring
WHERE (kb IS NOT NULL OR kp IS NOT NULL)
AND ( (status = 'Afgemeld' AND afw IS NULL)
OR (status = 'Historie' ))
AND (gereed < TRUNC(SYSDATE, 'MONTH') OR TRUNC(SYSDATE, 'MONTH') = ( select trunc(max(export_datum), 'MONTH') from nmms_monitoring))
UNION ALL
-- herhalingskorting op beschikbaarheid bij thema
SELECT NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
thema,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
'Kh',
NULL,
250,
COUNT ( * ) - 4,
(COUNT ( * ) - 4) * 250,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
(COUNT ( * ) - 4) * 250,
LISTAGG(melding_key, ',') WITHIN GROUP (ORDER BY melding_key) AS kinderen
FROM nmms_v_monitoring
WHERE typekorting = 'Kb' AND thema IS NOT NULL AND indult = 'Nee'
AND ( (status = 'Afgemeld' AND afw IS NULL)
OR (status = 'Historie' ))
AND (gereed < TRUNC(SYSDATE, 'MONTH') OR TRUNC(SYSDATE, 'MONTH') = ( select trunc(max(export_datum), 'MONTH') from nmms_monitoring))
GROUP BY thema, typekorting
HAVING COUNT (ruimte) > 4
UNION ALL
-- herhalingskorting op beschikbaarheid bij ruimte
SELECT NULL,
NULL,
NULL,
NULL,
NULL,
ruimte,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
'Kh',
NULL,
250,
COUNT ( * ) - 4,
(COUNT ( * ) - 4) * 250,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
(COUNT ( * ) - 4) * 250,
LISTAGG(melding_key, ',') WITHIN GROUP (ORDER BY melding_key) AS kinderen
FROM nmms_v_monitoring
WHERE typekorting = 'Kb' AND thema IS NULL AND indult = 'Nee'
AND ( (status = 'Afgemeld' AND afw IS NULL)
OR (status = 'Historie' ))
AND (gereed < TRUNC(SYSDATE, 'MONTH') OR TRUNC(SYSDATE, 'MONTH') = ( select trunc(max(export_datum), 'MONTH') from nmms_monitoring))
GROUP BY ruimte, typekorting
HAVING COUNT (ruimte) > 4
UNION ALL
-- Herhalingskorting op prestatiegebrek (stdmelding)
SELECT NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
(SELECT mld_stdmelding_omschrijving
FROM mld_stdmelding std
WHERE std.mld_stdmelding_key = r.stdmelding_key),
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
typekorting,
NULL,
250,
COUNT ( * ) - 4,
(COUNT ( * ) - 4) * 250,
NULL,
NULL,
NULL,
NULL,
NULL,
stdmelding_key,
(COUNT ( * ) - 4) * 250,
LISTAGG(melding_key, ',') WITHIN GROUP (ORDER BY melding_key) AS kinderen
FROM nmms_v_monitoring r
WHERE typekorting = 'Kp' AND indult = 'Nee'
AND ( (status = 'Afgemeld' AND afw IS NULL)
OR (status = 'Historie' ))
AND (gereed < TRUNC(SYSDATE, 'MONTH') OR TRUNC(SYSDATE, 'MONTH') = ( select trunc(max(export_datum), 'MONTH') from nmms_monitoring))
GROUP BY stdmelding_key, typekorting
HAVING COUNT (stdmelding_key) > 4;
-- rapportage view van nog te exporteren meldingen die afwijken of tot een korting leiden.
CREATE OR REPLACE VIEW nmms_v_rap_monitoring_tot CREATE OR REPLACE VIEW nmms_v_rap_monitoring_tot
( (
html_melding, html_melding,
@@ -700,13 +919,20 @@ CREATE OR REPLACE VIEW nmms_v_rap_monitoring_tot
prestatiekorting, prestatiekorting,
factor, factor,
kp, kp,
kinderen,
wegingsfactor, wegingsfactor,
totaal totaal
) )
AS AS
SELECT html_melding, SELECT '<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
hide_f_melding_key, || 'mld_key='
fclt_f_afw, || melding_key
|| '")''>'
|| melding_key
|| '</a>'
melding,
melding_key,
afw,
q_vervolg, q_vervolg,
indult, indult,
respijt, respijt,
@@ -714,9 +940,9 @@ AS
object, object,
thema, thema,
omschrijving, omschrijving,
begin, to_char(begin, 'dd-mm-yyyy hh24:mi:ss') begin,
gereed, to_char(gereed, 'dd-mm-yyyy hh24:mi:ss') gereed,
thtijdstip, to_char(thtijdstip, 'dd-mm-yyyy hh24:mi:ss') thtijdstip,
tht, tht,
wht, wht,
regime, regime,
@@ -729,112 +955,10 @@ AS
prestatiekorting, prestatiekorting,
factor, factor,
kp, kp,
kinderen,
wegingsfactor, wegingsfactor,
COALESCE (kb, kp) * COALESCE (wegingsfactor, 1) totaal
FROM nmms_v_rap_monitoring FROM nmms_v_monitoring_tot;
WHERE (kb IS NOT NULL OR kp IS NOT NULL)
AND fclt_f_afgerond = 'x'
UNION ALL
SELECT NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
thema,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
'Kh',
NULL,
250,
COUNT ( * ) - 4,
(COUNT ( * ) - 4) * 250,
NULL,
NULL,
NULL,
NULL,
(COUNT ( * ) - 4) * 250
FROM nmms_v_rap_monitoring
WHERE typekorting = 'Kb' AND thema IS NOT NULL AND indult = 'Nee'
AND fclt_f_afgerond = 'x'
GROUP BY thema, typekorting
HAVING COUNT (ruimte) > 4
UNION ALL
SELECT NULL,
NULL
NULL,
NULL,
NULL,
NULL,
ruimte,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
'Kh',
NULL,
250,
COUNT ( * ) - 4,
(COUNT ( * ) - 4) * 250,
NULL,
NULL,
NULL,
NULL,
(COUNT ( * ) - 4) * 250
FROM nmms_v_rap_monitoring
WHERE typekorting = 'Kb' AND thema IS NULL AND indult = 'Nee'
AND fclt_f_afgerond = 'x'
GROUP BY ruimte, typekorting
HAVING COUNT (ruimte) > 4
UNION ALL
SELECT NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
(SELECT mld_stdmelding_omschrijving
FROM mld_stdmelding std
WHERE std.mld_stdmelding_key = r.hide_f_stdmelding_key),
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
typekorting,
NULL,
250,
COUNT ( * ) - 4,
(COUNT ( * ) - 4) * 250,
NULL,
NULL,
NULL,
NULL,
(COUNT ( * ) - 4) * 250
FROM nmms_v_rap_monitoring r
WHERE typekorting = 'Kp' AND indult = 'Nee'
AND fclt_f_afgerond = 'x'
GROUP BY hide_f_stdmelding_key, typekorting
HAVING COUNT (hide_f_stdmelding_key) > 4;
CREATE OR REPLACE VIEW nmms_v_dwh_monitoring CREATE OR REPLACE VIEW nmms_v_dwh_monitoring
( (
@@ -916,6 +1040,140 @@ AS
AND std.prs_kostensoort_key = ks.prs_kostensoort_key) AND std.prs_kostensoort_key = ks.prs_kostensoort_key)
FROM nmms_v_monitoring m; FROM nmms_v_monitoring m;
CREATE OR REPLACE PROCEDURE nmms_export_freeze_monitoring (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR c1
IS
SELECT melding_key
FROM nmms_v_monitoring
WHERE status = 'Afgemeld'
AND gereed < TRUNC (SYSDATE, 'MONTH')
AND afw IS NULL
AND afgerond IS NULL;
CURSOR c2
IS
SELECT m_start, mld_melding_key, (SELECT mld_melding_status
FROM mld_melding ms
WHERE ms.mld_melding_key = m_start)
mld_melding_status
FROM (SELECT nmms.get_first_melding (mld_melding_key, 1) m_start,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) t_tot,
m.*
FROM mld_melding m
WHERE m.mld_melding_parentkey IS NULL
AND m.mld_melding_key NOT IN
(SELECT melding_key FROM nmms_monitoring))
WHERE m_start <> mld_melding_key;
BEGIN
-- Zet de meldingen die geen afwijking kennen en die niet op status afgerond staan naar status verwerkt
FOR rec IN c1
LOOP
BEGIN
BEGIN
mld.setmeldingstatus (rec.melding_key, 6, 4);
END;
END;
END LOOP;
-- zet slave meldingen van samenvallende meldingen ook op verwerkt
FOR rec IN c2
LOOP
BEGIN
IF rec.mld_melding_status = 6
THEN
BEGIN
mld.setmeldingstatus (rec.mld_melding_key, 6, 4);
END;
END IF;
END;
END LOOP;
-- Voeg de entries uit het monitoringsoverzicht toe aan de freeze tabel.
INSERT INTO nmms_monitoring (melding_key,
afw,
q_vervolg,
indult,
respijt,
ruimte,
object,
thema,
omschrijving,
begin,
gereed,
thtijdstip,
verwerkt,
tht,
wht,
regime,
groep,
typekorting,
basiskorting,
variabelekorting,
uren,
kb,
prestatiekorting,
factor,
kp,
wegingsfactor,
dienst,
stdmelding_key,
totaal,
kinderen,
export_datum)
SELECT melding_key,
afw,
q_vervolg,
indult,
respijt,
ruimte,
object,
thema,
omschrijving,
begin,
gereed,
thtijdstip,
verwerkt,
tht,
wht,
regime,
groep,
typekorting,
basiskorting,
variabelekorting,
uren,
kb,
prestatiekorting,
factor,
kp,
wegingsfactor,
dienst,
stdmelding_key,
totaal,
kinderen,
SYSDATE
FROM nmms_v_monitoring_tot;
INSERT INTO nmms_monitoring (melding_key, export_datum)
SELECT mld_melding_key, SYSDATE
FROM mld_melding m
WHERE m.mld_melding_status = 6 -- Historie
AND m.mld_melding_key NOT IN (SELECT nm.melding_key
FROM nmms_monitoring nm
WHERE nm.melding_key IS NOT NULL);
COMMIT;
END nmms_export_freeze_monitoring;
/
CREATE OR REPLACE VIEW nmms_v_dwh_opdr_materiaal CREATE OR REPLACE VIEW nmms_v_dwh_opdr_materiaal
( (
opdr_id, opdr_id,
@@ -1102,7 +1360,7 @@ GRANT SELECT ON nmms_v_dwh_opdr_materiaal TO aafm;
BEGIN adm.systrackscriptId('$Id$', 0); END; BEGIN adm.systrackscriptId('$Id$', 0); END;
/ /
BEGIN fac.registercustversion('NMMS', 1); END; BEGIN fac.registercustversion('NMMS', 2); END;
/ /
COMMIT; COMMIT;
spool off spool off