From 4bf86cbb966a52c04165fecc93ad70289d09e024 Mon Sep 17 00:00:00 2001 From: Arthur Egberink Date: Wed, 17 Sep 2014 07:27:35 +0000 Subject: [PATCH] Initiele versie svn path=/Customer/trunk/; revision=22583 --- NMMS/nmms.sql | 518 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 388 insertions(+), 130 deletions(-) diff --git a/NMMS/nmms.sql b/NMMS/nmms.sql index 147bf933e..69285444b 100644 --- a/NMMS/nmms.sql +++ b/NMMS/nmms.sql @@ -27,7 +27,7 @@ END; CREATE OR REPLACE PACKAGE BODY nmms AS FUNCTION get_first_melding (p_melding_key IN NUMBER, - p_index IN NUMBER) + p_index IN NUMBER) RETURN NUMBER AS 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 ( melding_key, @@ -223,6 +224,7 @@ CREATE OR REPLACE VIEW nmms_v_monitoring begin, gereed, thtijdstip, + verwerkt, tht, wht, regime, @@ -239,6 +241,7 @@ CREATE OR REPLACE VIEW nmms_v_monitoring afgerond, dienst, stdmelding_key, + overlappend, wegingsfactor, melding_omschrijving, melding_opmerking @@ -247,7 +250,7 @@ AS SELECT mld_melding_key, 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 (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 (aantal_beschikb, 0, '', 'B'), -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte q_vervolg, @@ -268,9 +271,14 @@ AS object, thema, mld_stdmelding_omschrijving omschrijving, - TO_CHAR (t_van, 'dd-mm-yyyy hh24:mi:ss') begin, - TO_CHAR (einddatum, 'dd-mm-yyyy hh24:mi:ss') eind, - TO_CHAR (thtijdstip, 'dd-mm-yyyy hh24:mi:ss') thtijdstip, + t_van begin, + einddatum eind, + thtijdstip thtijdstip, + (SELECT fac_tracking_datum + FROM fac_tracking t + WHERE fac_tracking_refkey = mld_melding_key + AND fac_srtnotificatie_key = 36) + verwerkt, DECODE ( kortingtype, 'Q', @@ -333,15 +341,21 @@ AS (SELECT mld_statuses_omschrijving FROM mld_statuses s WHERE s.mld_statuses_key = mld_melding_status), - DECODE(mld_melding_afgerond, 1, 'x'), + DECODE (mld_melding_afgerond, 1, 'x'), (SELECT prs_dienst_omschrijving FROM prs_dienst di WHERE di.prs_dienst_key = g.prs_dienst_key), mld_stdmelding_key, + overlappend, wegingsfactor, - (SELECT mld_melding_omschrijving 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) + (SELECT mld_melding_omschrijving + 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, + DECODE(m.aantal, 1, NULL, m.overlappend) overlappend, m.mld_melding_status, m.mld_melding_afgerond, m.mld_melding_key, @@ -447,9 +461,13 @@ AS FROM ( -- selecteer de begin en eindtijd van overlappende meldingen van dezelfde dienst op dezelfde ruimte -- SELECT m_start, - MIN (mld_melding_status) mld_melding_status, - MIN (mld_melding_afgerond) mld_melding_afgerond, + -- als er één van de onderliggende meldingen openstaat moet ook de eerste de status uitgegeven krijgen. + 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, + LISTAGG(mld_melding_key, ',') WITHIN GROUP (ORDER BY mld_melding_key) AS overlappend, MIN (mld_melding_datum) t_van, MAX (t_tot) t_tot, MIN (mld_melding_key) mld_melding_key, @@ -471,9 +489,14 @@ AS fac.gettrackingdate ('MLDAFM', m.mld_melding_key) t_tot, + DECODE(m.mld_melding_status, 4, 1, 0) open, 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, mld_stdmeldinggroep stdg, alg_v_ruimte_gegevens rg, @@ -514,7 +537,9 @@ AS GROUP BY mo1.mld_melding_key) obj, ins_deel d 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_melding_key = obj.mld_melding_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, hide_f_stdmelding_key, wegingsfactor, + overlappend, hide_f_melding_omschrijving, hide_f_melding_opmerking ) @@ -568,7 +594,7 @@ AS || melding_key || '' melding, - melding_key, + melding_key, afw, q_vervolg, indult, @@ -577,9 +603,9 @@ AS object, thema, omschrijving, - begin, - gereed, - thtijdstip, + to_char(begin, 'dd-mm-yyyy hh24:mi:ss') begin, + to_char(gereed, 'dd-mm-yyyy hh24:mi:ss') gereed, + to_char(thtijdstip, 'dd-mm-yyyy hh24:mi:ss') thtijdstip, tht, wht, regime, @@ -597,11 +623,12 @@ AS dienst, stdmelding_key, wegingsfactor, + overlappend, melding_omschrijving, melding_opmerking FROM nmms_v_monitoring; - +-- rapportage view CREATE OR REPLACE VIEW nmms_v_rap_monitoring_og ( html_melding, @@ -671,8 +698,200 @@ AS hide_f_melding_omschrijving, hide_f_melding_opmerking 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 ( html_melding, @@ -700,13 +919,20 @@ CREATE OR REPLACE VIEW nmms_v_rap_monitoring_tot prestatiekorting, factor, kp, + kinderen, wegingsfactor, totaal ) AS - SELECT html_melding, - hide_f_melding_key, - fclt_f_afw, + SELECT '' + || melding_key + || '' + melding, + melding_key, + afw, q_vervolg, indult, respijt, @@ -714,9 +940,9 @@ AS object, thema, omschrijving, - begin, - gereed, - thtijdstip, + to_char(begin, 'dd-mm-yyyy hh24:mi:ss') begin, + to_char(gereed, 'dd-mm-yyyy hh24:mi:ss') gereed, + to_char(thtijdstip, 'dd-mm-yyyy hh24:mi:ss') thtijdstip, tht, wht, regime, @@ -729,112 +955,10 @@ AS prestatiekorting, factor, kp, + kinderen, wegingsfactor, - COALESCE (kb, kp) * COALESCE (wegingsfactor, 1) - FROM nmms_v_rap_monitoring - 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; - + totaal + FROM nmms_v_monitoring_tot; CREATE OR REPLACE VIEW nmms_v_dwh_monitoring ( @@ -916,6 +1040,140 @@ AS AND std.prs_kostensoort_key = ks.prs_kostensoort_key) 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 ( opdr_id, @@ -1102,7 +1360,7 @@ GRANT SELECT ON nmms_v_dwh_opdr_materiaal TO aafm; BEGIN adm.systrackscriptId('$Id$', 0); END; / -BEGIN fac.registercustversion('NMMS', 1); END; +BEGIN fac.registercustversion('NMMS', 2); END; / COMMIT; spool off