PCHW#51361 -- Uitbreiding rapportages PCHW en PCHA

svn path=/Customer/trunk/; revision=36102
This commit is contained in:
Arthur Egberink
2017-11-23 15:17:01 +00:00
parent 4a6715fd23
commit 1e2f9d4f09

View File

@@ -44,46 +44,76 @@ AS
p_index IN NUMBER)
RETURN NUMBER
AS
CURSOR c
CURSOR ca
IS
SELECT m2.mld_melding_datum van, m2.mld_melding_key
FROM mld_melding m1,
mld_stdmelding std1,
(select mld_melding_key, mld_kenmerkmelding_waarde from mld_kenmerkmelding
where mld_kenmerk_key = 241) km1,
mld_melding m2,
mld_stdmelding std2
mld_stdmelding std2,
(select mld_melding_key, mld_kenmerkmelding_waarde from mld_kenmerkmelding
where mld_kenmerk_key = 241) km2
WHERE m1.mld_melding_key = p_melding_key
AND m1.mld_stdmelding_key = std1.mld_stdmelding_key
AND m1.mld_melding_key = km1.mld_melding_key(+)
AND km1.mld_kenmerkmelding_waarde IS NULL
AND m2.mld_melding_key = km2.mld_melding_key(+)
AND km2.mld_kenmerkmelding_waarde IS NULL
AND m2.mld_melding_parentkey IS NULL
AND NOT EXISTS (SELECT 1
FROM pchx_monitoring
WHERE melding_key = m2.mld_melding_key)
AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
AND std1.mld_ins_discipline_key NOT IN (232,220) -- V-G en W-R koppelen we nooit
AND std1.mld_stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
AND (
(
pchx.get_user = 'PCHW'
AND std2.mld_stdmelding_malus IS NOT NULL -- alleen meldingen waarvoor een malus geldt
AND std1.mld_Stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
AND (
( std1.mld_stdmeldinggroep_key = 181 -- Prestatiekortingen
AND std1.mld_ins_discipline_key = std2.mld_ins_discipline_key)
OR
( std1.mld_stdmeldinggroep_key <> 181 -- Prestatiekortingen
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
)
)
( std1.mld_stdmeldinggroep_key = 161 -- FTRC
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
OR
( pchx.get_user = 'PCHA'
AND std1.mld_ins_discipline_key NOT IN (232,220) -- V-G en W-R koppelen we nooit
AND std1.mld_stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
AND (
( std1.mld_stdmeldinggroep_key = 161 -- FTRC
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
OR
( std1.mld_stdmeldinggroep_key <> 161 -- FTRC
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
AND std1.mld_ins_discipline_key = std2.mld_ins_discipline_key -- zelfde vakgroep.
)
)
( std1.mld_stdmeldinggroep_key <> 161 -- FTRC
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
AND std1.mld_ins_discipline_key = std2.mld_ins_discipline_key -- zelfde vakgroep.
)
AND m1.mld_melding_key <> m2.mld_melding_key
AND m2.mld_melding_indult <> 1
AND m1.mld_melding_indult <> 1
AND m2.mld_melding_status <> 1 -- Afgewezen
AND m1.mld_melding_datum BETWEEN m2.mld_melding_datum
AND COALESCE(fac.gettrackingdate ('MLDAFM', m2.mld_melding_key), SYSDATE)
ORDER BY m2.mld_melding_datum;
CURSOR cw
IS
SELECT m2.mld_melding_datum van, m2.mld_melding_key
FROM mld_melding m1,
mld_stdmelding std1,
(select mld_melding_key, mld_kenmerkmelding_waarde from mld_kenmerkmelding
where mld_kenmerk_key = 221) km1,
mld_melding m2,
mld_stdmelding std2,
(select mld_melding_key, mld_kenmerkmelding_waarde from mld_kenmerkmelding
where mld_kenmerk_key = 221) km2
WHERE m1.mld_melding_key = p_melding_key
AND m1.mld_stdmelding_key = std1.mld_stdmelding_key
AND m1.mld_melding_key = km1.mld_melding_key(+)
AND km1.mld_kenmerkmelding_waarde IS NULL
AND m2.mld_melding_key = km2.mld_melding_key(+)
AND km2.mld_kenmerkmelding_waarde IS NULL
AND m2.mld_melding_parentkey IS NULL
AND NOT EXISTS (SELECT 1
FROM pchx_monitoring
WHERE melding_key = m2.mld_melding_key)
AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
AND std2.mld_stdmelding_malus IS NOT NULL -- alleen meldingen waarvoor een malus geldt
AND std1.mld_Stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
AND (
( std1.mld_stdmeldinggroep_key = 181 -- Prestatiekortingen
AND std1.mld_ins_discipline_key = std2.mld_ins_discipline_key)
OR
( std1.mld_stdmeldinggroep_key <> 181 -- Prestatiekortingen
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
)
AND m1.mld_melding_key <> m2.mld_melding_key
AND m2.mld_melding_indult <> 1
@@ -98,6 +128,7 @@ AS
v_datum_begin DATE;
l_datum_begin DATE;
v_loop_index NUMBER;
rec ca%ROWTYPE; -- maakt niet uit welke cursor we hier kiezen. Ze hebben dezelfde structuur.
BEGIN
v_melding_key := p_melding_key;
@@ -112,8 +143,24 @@ AS
v_loop_index := 1;
FOR rec IN c
IF pchx.get_user = 'PCHA' THEN
OPEN ca;
ELSE
OPEN cw;
END IF;
LOOP
IF pchx.get_user = 'PCHA' THEN
FETCH ca INTO rec;
EXIT WHEN ca%NOTFOUND;
ELSE
FETCH cw INTO rec;
EXIT WHEN cw%NOTFOUND;
END IF;
-- FOR rec IN c
-- LOOP
-- door de sortering op de cursor hoeven we alleen het eerste record te gebruiken tenzij deze niet door de klant is ingediend.
IF p_index < 10 AND v_loop_index = 1
@@ -385,7 +432,7 @@ AS
x.prs_kostenplaats_key, -- prs_kostenplaats_key van alleen M_START
mld.getactualuitvoer ( -- verschil tussen t_van en gereed/SYSDATE is de maximale - actuele - doorlooptijd!
m.t_van,
COALESCE (m.gereed, SYSDATE),
DECODE (m.gereed, TO_DATE('20991231', 'YYYYMMDD'), SYSDATE, m.gereed),
x.mld_stdmelding_key,
x.mld_melding_spoed,
x.mld_alg_onroerendgoed_keys,
@@ -492,6 +539,7 @@ CREATE OR REPLACE VIEW pchx_v_monitoring
stdmelding_key,
discipline_key,
overlappend,
gekoppeld,
wegingsfactor,
melding_omschrijving,
melding_opmerking,
@@ -506,6 +554,7 @@ AS
DECODE (antedateren, 0, '', 'T') -- de begintijd of eindtijd van de melding is aangepast
|| DECODE (g.respijt.tijdsduur, 0, '', 'R') -- er is een respijt ingevuld
|| DECODE (mld_melding_indult, 1, 'I', '') -- indult is aangevinkt dus melding doet niet mee
|| DECODE (niet_overlappen, 1, 'O', '') -- melding is gemarkeerd als zijnde niet te overlappen met een andere melding
|| DECODE (aantal_beschikb, 0, '', 'B'), -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte
DECODE (COALESCE (mld_melding_indult, 0), 0, 'Nee', 'Ja'),
DECODE (g.respijt.tijdsduur,
@@ -555,11 +604,11 @@ AS
WHERE prs_dienst_key = g.prs_dienst_key),
mld_stdmelding_key,
mld_ins_discipline_key,
DECODE(overlappend, NULL, NULL, overlappend || ',') ||
(SELECT listagg (m2.mld_melding_key, ',') WITHIN GROUP (ORDER BY m2.mld_melding_key)
AS overlappend
FROM mld_melding m2
WHERE m2.mld_melding_parentkey = m_start) overlappend,
overlappend,
(SELECT listagg (m2.mld_melding_key, ',') WITHIN GROUP (ORDER BY m2.mld_melding_key)
AS gekoppeld
FROM mld_melding m2
WHERE m2.mld_melding_parentkey = m_start) gekoppeld,
wegingsfactor,
mld_melding_omschrijving,
mld_melding_opmerking,
@@ -574,6 +623,10 @@ AS
FROM (SELECT m.m_start,
m.aantal,
DECODE (m.aantal, 1, NULL, m.overlappend) overlappend,
( SELECT count(*)
FROM mld_kenmerkmelding km
WHERE mld_kenmerk_key = DECODE(PCHX.get_user, 'PCHA', 241, 221)
AND km.mld_melding_key = m_start) niet_overlappen,
m.mld_melding_status,
m.mld_melding_afgerond,
m.mld_melding_indult,
@@ -809,6 +862,7 @@ CREATE OR REPLACE VIEW pchx_v_monitoring_tot
totaal,
totaal_index,
overlappend,
gekoppeld,
kinderen,
bedrijf_naam,
klant_melding,
@@ -846,6 +900,7 @@ AS
totaal,
totaal_index,
SUBSTR (overlappend, 1, 100),
SUBSTR (gekoppeld, 1, 100),
NULL, -- kinderen bij herhalingskorting
bedrijf_naam,
klant_melding,
@@ -888,6 +943,7 @@ AS
250 * (COUNT ( * ) - 10) * DECODE (SIGN (COUNT ( * ) - 10), 1, 1, 0) totaal,
PCHX_MON.get_index_value(TRUNC(SYSDATE)-1, 'MON') * 250 * (COUNT ( * ) - 10) * DECODE (SIGN (COUNT ( * ) - 10), 1, 1, 0) totaal_index,
NULL overlappend,
NULL gekoppeld,
listagg (melding_key, ',') WITHIN GROUP (ORDER BY melding_key) AS kinderen, -- kinderen bij overschrijdingskorting
NULL bedrijf_naam,
NULL klant_melding,
@@ -897,6 +953,7 @@ AS
WHERE PCHX.get_user = 'PCHW'
AND totaal IS NOT NULL
AND totaal <> 0
AND indult = 'Nee'
AND ( (status = 'Afgemeld' AND afw IS NULL) OR (status = 'Historie'))
AND (gereed < TRUNC (SYSDATE, 'MONTH')
OR TRUNC (SYSDATE, 'MONTH') =
@@ -933,6 +990,7 @@ AS
50 * (COUNT ( * ) - 20) * DECODE (SIGN (COUNT ( * ) - 20), 1, 1, 0) totaal,
PCHX_MON.get_index_value(TRUNC(SYSDATE)-1, 'MON') * 50 * (COUNT ( * ) - 20) * DECODE (SIGN (COUNT ( * ) - 20), 1, 1, 0) totaal_index,
NULL overlappend,
NULL gekoppeld,
listagg (melding_key, ',') WITHIN GROUP (ORDER BY melding_key) AS kinderen, -- kinderen bij overschrijdingskorting
NULL bedrijf_naam,
NULL klant_melding,
@@ -940,6 +998,7 @@ AS
NULL prefix
FROM pchx_v_monitoring
WHERE PCHX.get_user = 'PCHW'
AND indult = 'Nee'
AND ( (status = 'Afgemeld' AND afw IS NULL) OR (status = 'Historie'))
AND (gereed < TRUNC (SYSDATE, 'MONTH')
OR TRUNC (SYSDATE, 'MONTH') =
@@ -973,6 +1032,7 @@ CREATE OR REPLACE VIEW pchx_v_monitoring_history
hide_f_stdmelding_key,
wegingsfactor,
overlappend,
gekoppeld,
kinderen,
klant_melding,
bedrijf,
@@ -1007,6 +1067,7 @@ AS
stdmelding_key,
wegingsfactor,
overlappend,
gekoppeld,
kinderen,
klant_melding,
prs_bedrijf_naam,
@@ -1044,6 +1105,7 @@ CREATE OR REPLACE VIEW pchx_v_facuur_onderlegger
hide_f_stdmelding_key,
wegingsfactor,
overlappend,
gekoppeld,
klant_melding,
bedrijf,
melding_omschrijving,
@@ -1077,6 +1139,7 @@ AS
stdmelding_key,
wegingsfactor,
overlappend,
gekoppeld,
klant_melding,
prs_bedrijf_naam,
melding_omschrijving,
@@ -1361,6 +1424,7 @@ BEGIN
totaal,
totaal_index,
overlappend,
gekoppeld,
kinderen,
prs_bedrijf_naam,
klant_melding,
@@ -1397,6 +1461,7 @@ BEGIN
DECODE (rec.indult, 'Ja', 0, rec.totaal),
DECODE (rec.indult, 'Ja', 0, rec.totaal_index),
rec.overlappend,
rec.gekoppeld,
rec.kinderen,
rec.bedrijf_naam,
rec.klant_melding,