PCHW#61325 Aanpassing monitoring Specifiek Variabele Dienst

svn path=/Customer/trunk/; revision=55840
This commit is contained in:
Sander Schepers
2022-05-09 15:04:39 +00:00
parent 5c8f1ef962
commit c007d7d758

View File

@@ -541,441 +541,524 @@ END;
-- Monitoring
CREATE OR REPLACE VIEW pchx_v_startmelding_geg
CREATE OR REPLACE VIEW PCHX_V_STARTMELDING_GEG
(
m_start,
mld_alg_onroerendgoed_keys,
mld_melding_status,
mld_melding_afgerond,
aantal,
overlappend,
t_van,
gereed,
mld_melding_spoed,
mld_stdmelding_key,
prs_kostenplaats_key,
max_t_actual,
min_t_sla,
max_t_respijt,
min_tht_einddatum_start,
mld_melding_indult,
mld_melding_einddatum_std,
mld_melding_einddatum,
mld_melding_omschrijving,
mld_melding_opmerking,
klant_melding,
prs_bedrijf_key
M_START,
MLD_ALG_ONROERENDGOED_KEYS,
MLD_MELDING_STATUS,
MLD_MELDING_AFGEROND,
AANTAL,
OVERLAPPEND,
T_VAN,
GEREED,
MLD_MELDING_SPOED,
MLD_STDMELDING_KEY,
PRS_KOSTENPLAATS_KEY,
MAX_T_ACTUAL,
MIN_T_SLA,
MAX_T_RESPIJT,
MIN_THT_EINDDATUM_START,
MLD_MELDING_INDULT,
MLD_MELDING_EINDDATUM_STD,
MLD_MELDING_EINDDATUM,
MLD_MELDING_OMSCHRIJVING,
MLD_MELDING_OPMERKING,
KLANT_MELDING,
PRS_BEDRIJF_KEY
)
AS
SELECT m.m_start,
x.mld_alg_onroerendgoed_keys,
-- als <EFBFBD><EFBFBD>n van de onderliggende meldingen "open", dan moet ook M_START status Uitgegeven krijgen
DECODE (m.open, 0, x.mld_melding_status, 4) mld_melding_status, --- 4 = Geaccepteerd???
x.mld_melding_afgerond, -- mld_melding_afgerond van alleen M_START
m.aantal,
m.overlappend,
m.t_van, -- min_melding_datum
DECODE(m.gereed, TO_DATE('20991231', 'YYYYMMDD'), TO_DATE(NULL), m.gereed), -- max_actual_einddatum
x.mld_melding_spoed, -- mld_melding_spoed van alleen M_START
x.mld_stdmelding_key, -- mld_stdmelding_key van alleen M_START
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,
DECODE (m.gereed, TO_DATE('20991231', 'YYYYMMDD'), SYSDATE, m.gereed),
x.mld_stdmelding_key,
x.mld_melding_spoed,
x.mld_alg_onroerendgoed_keys,
NULL)
max_t_actual,
mld_t_uitvoertijd (m.min_uitvoertijd, m.min_uitvoertijd_eenheid)
min_t_sla,
mld_t_uitvoertijd (COALESCE (m.max_respijt, 0),
m.max_respijt_eenheid)
max_t_respijt, -- altijd dezelfde eenheid als uitvoertijd???
mld.geteinddatum (
m.m_start,
mld_t_uitvoertijd (m.min_uitvoertijd + m.max_respijt,
m.min_uitvoertijd_eenheid),
m.t_van)
min_tht_einddatum_start, -- meest nabije tht-einddatum van overlappende meldingen (t_van + MIN SLA + MAX respijt)
m.mld_melding_indult, -- max_melding_indult
m.mld_melding_einddatum_std, -- min_melding_einddatum_std of min_tht_einddatum_start???
m.mld_melding_einddatum, -- max_melding_einddatum
x.mld_melding_omschrijving, -- mld_melding_oms. van alleen M_START
x.mld_melding_opmerking, -- mld_melding_opm. van alleen M_START
m.klant_melding, -- melding gemeld door medewerker klant
m.prs_bedrijf_key -- bedrijf key van de melder
FROM ( SELECT m.m_start,
SUM (m.open) open,
COUNT (m.mld_melding_key) aantal,
listagg (m.mld_melding_key, ',')
WITHIN GROUP (ORDER BY m.mld_melding_key)
AS overlappend,
MIN (m.mld_melding_datum) t_van, -- min_melding_datum
MAX (m.gereed) gereed, -- max_actual_einddatum
MIN (m.mld_melding_t_uitvoertijd.tijdsduur) min_uitvoertijd,
MIN (m.mld_melding_t_uitvoertijd.eenheid)
min_uitvoertijd_eenheid,
MAX (m.mld_melding_t_respijt.tijdsduur) max_respijt,
MAX (m.mld_melding_t_respijt.eenheid) max_respijt_eenheid, -- altijd dezelfde eenheid als uitvoertijd???
MAX (m.mld_melding_indult) mld_melding_indult,
MIN (m.mld_melding_einddatum_std) mld_melding_einddatum_std, -- min_melding_einddatum_std of min_thtsla_einddatum_start???
MAX (m.mld_melding_einddatum) mld_melding_einddatum,
MAX (m.klant_melding) klant_melding,
MAX (m.prs_bedrijf_key) prs_bedrijf_key
FROM (SELECT PCHX_MON.get_first_melding (m.mld_melding_key, 1)
m_start,
m.mld_melding_key,
DECODE (m.mld_melding_status, 4, 1, 0) open, -- open = Geaccepteerd???
m.mld_melding_datum,
COALESCE(fac.gettrackingdate ('MLDAFM', m.mld_melding_key), TO_DATE('20991231', 'YYYYMMDD')) gereed,
m.mld_melding_t_uitvoertijd,
m.mld_melding_t_respijt,
m.mld_melding_indult,
m.mld_melding_einddatum_std,
m.mld_melding_einddatum,
a.prs_bedrijf_key,
pchx_mon.klant_melding(m.mld_melding_key) klant_melding
FROM mld_melding m,
mld_stdmelding std,
prs_perslid p,
prs_v_afdeling a
WHERE m.mld_melding_parentkey IS NULL
AND m.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
-- meldingen die al geexporteerd zijn (en in de tabel nmms_monitoring staan) komen niet meer in deze view
AND NOT EXISTS
(SELECT 1
FROM pchx_monitoring
WHERE melding_key = m.mld_melding_key)
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_stdmelding_slabewaken = 1 -- alleen meldingen waarvoor een malus geldt
) m
GROUP BY m.m_start) m,
mld_melding x -- gedefinieerde set gegevens bij M_START als referentie
WHERE m.m_start = x.mld_melding_key;
SELECT m.m_start,
x.mld_alg_onroerendgoed_keys,
-- als een van de onderliggende meldingen "open", dan moet ook M_START status Uitgegeven krijgen
DECODE (m.open, 0, x.mld_melding_status, 4)
mld_melding_status, --- 4 = Geaccepteerd???
x.mld_melding_afgerond, -- mld_melding_afgerond van alleen M_START
m.aantal,
m.overlappend,
m.t_van, -- min_melding_datum
DECODE (m.gereed,
TO_DATE ('20991231', 'YYYYMMDD'), TO_DATE (NULL),
m.gereed), -- max_actual_einddatum
x.mld_melding_spoed, -- mld_melding_spoed van alleen M_START
x.mld_stdmelding_key, -- mld_stdmelding_key van alleen M_START
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,
DECODE (m.gereed,
TO_DATE ('20991231', 'YYYYMMDD'), SYSDATE,
m.gereed),
x.mld_stdmelding_key,
x.mld_melding_spoed,
x.mld_alg_onroerendgoed_keys,
NULL)
max_t_actual,
mld_t_uitvoertijd (m.min_uitvoertijd, m.min_uitvoertijd_eenheid)
min_t_sla,
mld_t_uitvoertijd (COALESCE (m.max_respijt, 0),
m.max_respijt_eenheid)
max_t_respijt, -- altijd dezelfde eenheid als uitvoertijd???
mld.geteinddatum (
m.m_start,
mld_t_uitvoertijd (m.min_uitvoertijd + m.max_respijt,
m.min_uitvoertijd_eenheid),
m.t_van)
min_tht_einddatum_start, -- meest nabije tht-einddatum van overlappende meldingen (t_van + MIN SLA + MAX respijt)
m.mld_melding_indult, -- max_melding_indult
m.mld_melding_einddatum_std, -- min_melding_einddatum_std of min_tht_einddatum_start???
m.mld_melding_einddatum, -- max_melding_einddatum
x.mld_melding_omschrijving, -- mld_melding_oms. van alleen M_START
x.mld_melding_opmerking, -- mld_melding_opm. van alleen M_START
m.klant_melding, -- melding gemeld door medewerker klant
m.prs_bedrijf_key -- bedrijf key van de melder
FROM ( SELECT m.m_start,
SUM (m.open)
open,
COUNT (m.mld_melding_key)
aantal,
LISTAGG (m.mld_melding_key, ',')
WITHIN GROUP (ORDER BY m.mld_melding_key)
AS overlappend,
MIN (m.mld_melding_datum)
t_van, -- min_melding_datum
MAX (m.gereed)
gereed, -- max_actual_einddatum
MIN (m.mld_melding_t_uitvoertijd.tijdsduur)
min_uitvoertijd,
MIN (m.mld_melding_t_uitvoertijd.eenheid)
min_uitvoertijd_eenheid,
MAX (m.mld_melding_t_respijt.tijdsduur)
max_respijt,
MAX (m.mld_melding_t_respijt.eenheid)
max_respijt_eenheid, -- altijd dezelfde eenheid als uitvoertijd???
MAX (m.mld_melding_indult)
mld_melding_indult,
MIN (m.mld_melding_einddatum_std)
mld_melding_einddatum_std, -- min_melding_einddatum_std of min_thtsla_einddatum_start???
MAX (m.mld_melding_einddatum)
mld_melding_einddatum,
MAX (m.klant_melding)
klant_melding,
MAX (m.prs_bedrijf_key)
prs_bedrijf_key
FROM (SELECT PCHX_MON.get_first_melding (m.mld_melding_key, 1)
m_start,
m.mld_melding_key,
DECODE (m.mld_melding_status, 4, 1, 0)
open, -- open = Geaccepteerd???
m.mld_melding_datum,
COALESCE (
fac.gettrackingdate ('MLDAFM',
m.mld_melding_key),
TO_DATE ('20991231', 'YYYYMMDD'))
gereed,
m.mld_melding_t_uitvoertijd,
m.mld_melding_t_respijt,
m.mld_melding_indult,
m.mld_melding_einddatum_std,
m.mld_melding_einddatum,
a.prs_bedrijf_key,
pchx_mon.klant_melding (m.mld_melding_key)
klant_melding
FROM mld_melding m,
mld_stdmelding std,
ins_tab_discipline disc,
ins_srtdiscipline srtdisc,
prs_perslid p,
prs_v_afdeling a
WHERE m.mld_melding_parentkey IS NULL
AND std.mld_ins_discipline_key =
disc.ins_discipline_key
AND disc.ins_srtdiscipline_key =
srtdisc.ins_srtdiscipline_key
AND m.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
-- meldingen die al geexporteerd zijn (en in de tabel nmms_monitoring staan) komen niet meer in deze view
AND NOT EXISTS
(SELECT 1
FROM pchx_monitoring
WHERE melding_key = m.mld_melding_key)
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND ( std.mld_stdmelding_slabewaken = 1 -- alleen meldingen waarvoor een malus geldt
OR ( UPPER (
SUBSTR (
srtdisc.ins_srtdiscipline_prefix,
1,
1)) =
'W'
AND PCHX.get_user = 'PCHW'
AND EXISTS
(SELECT mld_opdr_key
FROM mld_opdr o,
mld_typeopdr ot
WHERE ot.mld_typeopdr_key =
o.mld_typeopdr_key
AND o.mld_melding_key =
m.mld_melding_key
AND ot.mld_typeopdr_upper =
'SPECIFIEK VARIABELE DIENST')))-- ivm PCHW#61325 ook wensen met opdrachttype 'Specifieke Variabele Dienst'
) m
GROUP BY m.m_start) m,
mld_melding x -- gedefinieerde set gegevens bij M_START als referentie
WHERE m.m_start = x.mld_melding_key;
CREATE OR REPLACE VIEW pchx_v_monitoring
CREATE OR REPLACE VIEW PCHX_V_MONITORING
(
melding_key,
afw,
indult,
respijt,
kostenplaats,
locatie,
gebouw,
verdieping,
ruimte,
omschrijving,
begin,
gereed,
thtijdstip,
verwerkt,
eenheid,
tht,
wht,
regime,
groep,
basiskorting,
variabelekorting,
wht_tht,
totaal,
totaal_z_respijt,
totaal_index,
status,
afgerond,
dienst,
stdmelding_key,
discipline_key,
overlappend,
gekoppeld,
wegingsfactor,
melding_omschrijving,
melding_opmerking,
klant_melding,
bedrijf_naam,
og,
bedrijf_malus,
prefix,
kenmerken,
note
MELDING_KEY,
AFW,
INDULT,
RESPIJT,
KOSTENPLAATS,
LOCATIE,
GEBOUW,
VERDIEPING,
RUIMTE,
OMSCHRIJVING,
BEGIN,
GEREED,
THTIJDSTIP,
VERWERKT,
EENHEID,
THT,
WHT,
REGIME,
GROEP,
BASISKORTING,
VARIABELEKORTING,
WHT_THT,
TOTAAL,
TOTAAL_Z_RESPIJT,
TOTAAL_INDEX,
STATUS,
AFGEROND,
DIENST,
STDMELDING_KEY,
DISCIPLINE_KEY,
OVERLAPPEND,
GEKOPPELD,
WEGINGSFACTOR,
MELDING_OMSCHRIJVING,
MELDING_OPMERKING,
KLANT_MELDING,
BEDRIJF_NAAM,
OG,
BEDRIJF_MALUS,
PREFIX,
KENMERKEN,
NOTE
)
AS
SELECT m_start, --mld_melding_key,
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,
0, NULL,
TO_CHAR (ROUND (g.respijt.tijdsduur, 2)))
respijt,
prs_kostenplaats_nr,
alg_locatie_code,
alg_gebouw_upper,
alg_verdieping_volgnr,
ruimte,
mld_stdmelding_omschrijving,
t_van,
gereed,
thtijdstip,
(SELECT MAX(fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = m_start --mld_melding_key
AND fac_srtnotificatie_key = DECODE(pchx.get_user, 'PGHE', 56, 46))
verwerkt,
eenheid,
ROUND (g.tht.tijdsduur, 2) tht,
ROUND (g.actual.tijdsduur, 2) wht,
regime,
mld_stdmeldinggroep_naam groep,
bk basiskorting,
vk variabelekorting,
DECODE (telaat, 1, ROUND (g.uitloop.tijdsduur, 2)) wht_tht,
PCHX_MON.get_abs_bedrag (
SELECT m_start, --mld_melding_key,
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,
0, NULL,
TO_CHAR (ROUND (g.respijt.tijdsduur, 2)))
respijt,
prs_kostenplaats_nr,
alg_locatie_code,
alg_gebouw_upper,
alg_verdieping_volgnr,
ruimte,
mld_stdmelding_omschrijving,
t_van,
gereed,
thtijdstip,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = m_start --mld_melding_key
AND fac_srtnotificatie_key = 46)
verwerkt,
eenheid,
ROUND (g.tht.tijdsduur, 2)
tht,
ROUND (g.actual.tijdsduur, 2)
wht,
regime,
mld_stdmeldinggroep_naam
groep,
bk
basiskorting,
vk
variabelekorting,
DECODE (telaat, 1, ROUND (g.uitloop.tijdsduur, 2))
wht_tht,
DECODE (
telaat,
1, -- Westland rond de breuk af op 1 decimaal en HGH rond af op gehele getallen.
COALESCE (bk, 0)
+ DECODE (
vk,
NULL, 0,
( ROUND (
g.uitloop.tijdsduur
/ DECODE (g.thtsla.tijdsduur,
0, 0.1,
g.thtsla.tijdsduur),
DECODE (pchx.get_user, 'PCHW', 1, 0))
* vk)), -- Alleen als dagen x24!
NULL)
totaal,
DECODE (
telaat_z_respijt,
1, -- Westland rond de breuk af op 1 decimaal en HGH rond af op gehele getallen.
COALESCE (bk, 0)
+ DECODE (
vk,
NULL, 0,
( ROUND (
g.uitloop_z_respijt.tijdsduur
/ DECODE (g.thtsla.tijdsduur,
0, 0.1,
g.thtsla.tijdsduur),
DECODE (pchx.get_user, 'PCHW', 1, 0))
* vk)), -- Alleen als dagen x24!
NULL)
totaal_z_respijt,
DECODE (
telaat,
1, -- Westland rond de breuk af op 1 decimaal en HGH rond af op gehele getallen. Gemeente Heerlen rond de breuk naar beneden af op gehele getallen.
coalesce(bk,0) + DECODE(vk, null, 0, (DECODE(pchx.get_user, 'PGHE' , TRUNC (g.uitloop.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur)) * vk,
ROUND (g.uitloop.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur), DECODE(pchx.get_user, 'PCHW', 1,0)) * vk))), -- Alleen als dagen x24!
NULL))
totaal,
DECODE (
telaat_z_respijt,
1, -- Westland rond de breuk af op 1 decimaal en HGH rond af op gehele getallen. Gemeente Heerlen rond de breuk naar beneden af op gehele getallen.
coalesce(bk,0) + DECODE(vk, null, 0, (DECODE(pchx.get_user, 'PGHE' , TRUNC (g.uitloop_z_respijt.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur)) * vk,
ROUND (g.uitloop_z_respijt.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur), DECODE(pchx.get_user, 'PCHW', 1,0)) * vk))), -- Alleen als dagen x24!
NULL)
totaal_z_respijt,
PCHX_MON.get_abs_bedrag (
DECODE (pchx.get_user, 'PGHE' ,
DECODE (
telaat,
1,
PCHX_MON.check_max(coalesce(bk,0) + DECODE(vk, null, 0, (TRUNC (g.uitloop.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur)) * vk)) * -- Alleen als dagen x24!
wegingsfactor, PCHX_MON.get_max_korting(mld_stdmelding_key))),
DECODE (
telaat,
1,
coalesce(bk,0) + DECODE(vk, null, 0, (ROUND (g.uitloop.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur), DECODE(pchx.get_user, 'PCHW', 1,0)) * vk)), -- Alleen als dagen x24!
NULL) * PCHX_MON.get_index_value(t_van, 'MON'))
)
totaal_index, -- voor PGHE is dit het totaal tov de max vergoeding en verminigvuldigd met de weging
(SELECT mld_statuses_omschrijving
FROM mld_statuses
WHERE mld_statuses_key = mld_melding_status),
DECODE (mld_melding_afgerond, 1, 'x'),
(SELECT prs_dienst_omschrijving
FROM prs_dienst
WHERE prs_dienst_key = g.prs_dienst_key),
mld_stdmelding_key,
mld_ins_discipline_key,
overlappend,
(SELECT listagg (m2.mld_melding_key, ',') WITHIN GROUP (ORDER BY m2.mld_melding_key)
AS gekoppeld
FROM mld_melding m2
WHERE COALESCE(m2.mld_melding_parentkey, -1) = m_start
GROUP BY m2.mld_melding_parentkey) gekoppeld,
wegingsfactor,
mld_melding_omschrijving,
mld_melding_opmerking,
klant_melding,
(SELECT prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = g.prs_bedrijf_key)
prs_bedrijf_naam,
DECODE (antedateren + g.respijt.tijdsduur + mld_melding_indult + mld_melding_afgerond, 0, 0, 1),
PCHX.get_kenmerk('MLD', DECODE(PCHX.get_user, 'PCHA', 61, 'PCHW', 121, 'PGHE', 102), m_start),
ins_srtdiscipline_prefix,
(SELECT listagg (mld_srtkenmerk_omschrijving || ': ' || PCHX.get_kenmerk ('MLD',k.mld_kenmerk_key, m_start), chr(10)) WITHIN GROUP (ORDER BY k.mld_kenmerk_volgnummer)
AS kenmerken
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
WHERE km.mld_melding_key = m_start
AND km.mld_kenmerk_key = k.mld_kenmerk_key
and k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_verwijder IS NULL
and sk.mld_srtkenmerk_verwijder IS NULL
GROUP BY mld_melding_key) kenmerken,
(SELECT mld_melding_note_omschrijving FROM mld_melding_note n
WHERE n.mld_melding_key = m_start
AND NOT EXISTS (SELECT mld_melding_note_key FROM mld_melding_note n2
WHERE n2.mld_melding_key = n.mld_melding_key
AND n2.mld_melding_note_key > n.mld_melding_note_key)) note
FROM (SELECT m.m_start,
m.aantal,
DECODE (m.aantal, 1, NULL, m.overlappend) overlappend,
( SELECT count(*)
telaat,
1, COALESCE (bk, 0)
+ DECODE (
vk,
NULL, 0,
( ROUND (
g.uitloop.tijdsduur
/ DECODE (g.thtsla.tijdsduur,
0, 0.1,
g.thtsla.tijdsduur),
DECODE (pchx.get_user, 'PCHW', 1, 0))
* vk)), -- Alleen als dagen x24!
NULL)
* PCHX_MON.get_index_value (t_van, 'MON')
totaal_index,
(SELECT mld_statuses_omschrijving
FROM mld_statuses
WHERE mld_statuses_key = mld_melding_status),
DECODE (mld_melding_afgerond, 1, 'x'),
(SELECT prs_dienst_omschrijving
FROM prs_dienst
WHERE prs_dienst_key = g.prs_dienst_key),
mld_stdmelding_key,
mld_ins_discipline_key,
overlappend,
( SELECT LISTAGG (m2.mld_melding_key, ',')
WITHIN GROUP (ORDER BY m2.mld_melding_key) AS gekoppeld
FROM mld_melding m2
WHERE COALESCE (m2.mld_melding_parentkey, -1) = m_start
GROUP BY m2.mld_melding_parentkey)
gekoppeld,
wegingsfactor,
mld_melding_omschrijving,
mld_melding_opmerking,
klant_melding,
(SELECT prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = g.prs_bedrijf_key)
prs_bedrijf_naam,
DECODE (
SUBSTR (g.ins_srtdiscipline_prefix, 1, 1),
'W', 1,
DECODE (
antedateren
+ g.respijt.tijdsduur
+ mld_melding_indult
+ mld_melding_afgerond,
0, 0,
1)),
PCHX.get_kenmerk ('MLD',
DECODE (PCHX.get_user, 'PCHA', 61, 121),
m_start),
ins_srtdiscipline_prefix,
( SELECT LISTAGG (
mld_srtkenmerk_omschrijving
|| ': '
|| PCHX.get_kenmerk ('MLD',
k.mld_kenmerk_key,
m_start),
CHR (10))
WITHIN GROUP (ORDER BY k.mld_kenmerk_volgnummer) AS kenmerken
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
WHERE km.mld_melding_key = m_start
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_verwijder IS NULL
AND sk.mld_srtkenmerk_verwijder IS NULL
GROUP BY mld_melding_key)
kenmerken,
(SELECT mld_melding_note_omschrijving
FROM mld_melding_note n
WHERE n.mld_melding_key = m_start
AND NOT EXISTS
(SELECT mld_melding_note_key
FROM mld_melding_note n2
WHERE n2.mld_melding_key = n.mld_melding_key
AND n2.mld_melding_note_key >
n.mld_melding_note_key))
note
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, 'PCHW', 221, 'PGHE', 121)
AND km.mld_melding_key = m_start) niet_overlappen,
m.mld_melding_status,
m.mld_melding_afgerond,
m.mld_melding_indult,
m.mld_melding_omschrijving,
m.mld_melding_opmerking,
std.prs_dienst_key,
std.mld_stdmelding_key,
std.mld_ins_discipline_key,
std.mld_stdmelding_omschrijving,
std.mld_stdmelding_malus,
m.t_van,
m.gereed,
m.mld_melding_einddatum_std thtijdstip,
stdg.mld_stdmeldinggroep_naam,
PCHX_MON.get_regime (std.mld_stdmelding_key,
m.mld_alg_onroerendgoed_keys,
NULL)
regime, -- aantal werkuren per dag
UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1))
kortingtype, -- de meldingsgroep bevat het type storing
kp.prs_kostenplaats_nr,
l.alg_locatie_code,
g.alg_gebouw_upper,
v.alg_verdieping_volgnr,
r.alg_ruimte_nr || '-' || r.alg_ruimte_omschrijving
ruimte,
COALESCE ((SELECT stsr.mld_stdmsrtruimte_malusbasis
FROM mld_stdmsrtruimte stsr
WHERE stsr.mld_stdmelding_key = std.mld_stdmelding_key
AND stsr.alg_srtruimte_key = r.alg_srtruimte_key), std.mld_stdmelding_malusbasis)
bk,
COALESCE ((SELECT stsr.mld_stdmsrtruimte_malus
FROM mld_stdmsrtruimte stsr
WHERE stsr.mld_stdmelding_key = std.mld_stdmelding_key
AND stsr.alg_srtruimte_key = r.alg_srtruimte_key), std.mld_stdmelding_malus) vk,
(SELECT COUNT (mb.mld_melding_key) aantal -- kijk of er op het moment van de melding er een beschikbaarheidsstoring was
FROM mld_melding mb, mld_stdmelding std_b
WHERE (mb.mld_melding_datum BETWEEN m.t_van
AND COALESCE (m.gereed,
SYSDATE)
OR fac.gettrackingdate ('MLDAFM', mb.mld_melding_key) BETWEEN m.t_van
AND COALESCE (
m.gereed,
SYSDATE))
AND mb.mld_alg_onroerendgoed_keys =
m.mld_alg_onroerendgoed_keys
AND mb.mld_stdmelding_key = std_b.mld_stdmelding_key
AND std_b.mld_stdmeldinggroep_key = 63 -- beschikbaarheid
AND std.mld_stdmeldinggroep_key <> 63)
aantal_beschikb, -- beschikbaarheid
-- vervolgmelding op een inspectie zijn per definitie te laat
-- inspecties zelf zijn te laat als de geplande einddatum verstreken is.
-- anders geldt de normale formule
SIGN( m.max_t_actual.tijdsduur
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,
m.mld_melding_omschrijving,
m.mld_melding_opmerking,
std.prs_dienst_key,
std.mld_stdmelding_key,
std.mld_ins_discipline_key,
std.mld_stdmelding_omschrijving,
std.mld_stdmelding_malus,
m.t_van,
m.gereed,
m.mld_melding_einddatum_std
thtijdstip,
stdg.mld_stdmeldinggroep_naam,
PCHX_MON.get_regime (std.mld_stdmelding_key,
m.mld_alg_onroerendgoed_keys,
NULL)
regime, -- aantal werkuren per dag
UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1))
kortingtype, -- de meldingsgroep bevat het type storing
kp.prs_kostenplaats_nr,
rg.alg_locatie_code,
rg.alg_gebouw_upper,
rg.alg_verdieping_volgnr,
rg.alg_ruimte_nr || '-' || rg.alg_ruimte_omschrijving
ruimte,
COALESCE (
(SELECT stsr.mld_stdmsrtruimte_malusbasis
FROM mld_stdmsrtruimte stsr
WHERE stsr.mld_stdmelding_key =
std.mld_stdmelding_key
AND stsr.alg_srtruimte_key =
rg.alg_srtruimte_key),
std.mld_stdmelding_malusbasis)
bk,
COALESCE (
(SELECT stsr.mld_stdmsrtruimte_malus
FROM mld_stdmsrtruimte stsr
WHERE stsr.mld_stdmelding_key =
std.mld_stdmelding_key
AND stsr.alg_srtruimte_key =
rg.alg_srtruimte_key),
std.mld_stdmelding_malus)
vk,
(SELECT COUNT (mb.mld_melding_key) aantal -- kijk of er op het moment van de melding er een beschikbaarheidsstoring was
FROM mld_melding mb, mld_stdmelding std_b
WHERE ( mb.mld_melding_datum BETWEEN m.t_van
AND COALESCE (
m.gereed,
SYSDATE)
OR fac.gettrackingdate ('MLDAFM',
mb.mld_melding_key) BETWEEN m.t_van
AND COALESCE (
m.gereed,
SYSDATE))
AND mb.mld_alg_onroerendgoed_keys =
m.mld_alg_onroerendgoed_keys
AND mb.mld_stdmelding_key =
std_b.mld_stdmelding_key
AND std_b.mld_stdmeldinggroep_key = 63 -- beschikbaarheid
AND std.mld_stdmeldinggroep_key <> 63)
aantal_beschikb, -- beschikbaarheid
-- vervolgmelding op een inspectie zijn per definitie te laat
-- inspecties zelf zijn te laat als de geplande einddatum verstreken is.
-- anders geldt de normale formule
SIGN (
m.max_t_actual.tijdsduur
- m.min_t_sla.tijdsduur
- m.max_t_respijt.tijdsduur) -- positief, dan te laat
telaat,
SIGN( m.max_t_actual.tijdsduur
- m.min_t_sla.tijdsduur) -- positief, dan te laat
telaat_z_respijt,
m.max_t_actual actual, -- MAX actuele doorlooptijd
m.min_t_sla thtsla, -- MIN SLA
m.min_t_sla.eenheid eenheid,
m.max_t_respijt respijt, -- MAX respijt
mld_t_uitvoertijd (
m.min_t_sla.tijdsduur
+ m.max_t_respijt.tijdsduur,
m.min_t_sla.eenheid)
tht, -- MIN SLA + MAX respijt
mld_t_uitvoertijd (
m.max_t_actual.tijdsduur
- m.min_t_sla.tijdsduur
- m.max_t_respijt.tijdsduur,
m.max_t_actual.eenheid)
uitloop, -- hoeveel te laat
mld_t_uitvoertijd (
m.max_t_actual.tijdsduur
- m.min_t_sla.tijdsduur,
m.max_t_actual.eenheid)
uitloop_z_respijt, -- hoeveel te laat
DECODE(PCHX.get_user, 'PGHE', pchx_mon.get_weging(m.t_van, stdg.mld_stdmeldinggroep_key), -- Afhankelijk van de stdmeldinggroep en de periode
sr.alg_srtruimte_prijs4) wegingsfactor, -- wegingsfactor bij soortruimte
-- is de tijd van de melding aangepast?
(SELECT COUNT ( * )
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_tracking_refkey = m.m_start -- mld_melding_key VAN MELDING MET LAAGSTE KEY???
AND t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND (t.fac_tracking_oms LIKE '%Start :%'
OR t.fac_tracking_oms LIKE '%Afgemeld:%'))
antedateren,
klant_melding,
prs_bedrijf_key,
ins_srtdiscipline_prefix
FROM pchx_v_startmelding_geg m,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd,
mld_stdmeldinggroep stdg,
prs_kostenplaats kp,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
alg_srtruimte sr
WHERE m.mld_melding_status IN (0, 2, 3, 4, 5, 6, 7, 99) -- alles behalve 1=Afgewezen
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND std.mld_stdmeldinggroep_key =
stdg.mld_stdmeldinggroep_key(+)
AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key(+)
AND r.alg_verdieping_key = v.alg_verdieping_key(+)
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key(+)
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND (
( PCHX.get_user = 'PGHE'
AND ( UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1)) IN ('M') -- Meting Periodiek
-- Meldingen op V&G en W&R worden altijd getoond ook als ze door een eigen medewerker zijn ingelegd.
OR d.ins_discipline_key IN (154, 150) -- Veiligheid en gezondheid, Regelgeving
OR klant_melding = 1
)
-- alleen meldingen waarvoor een malus geldt
AND ( std.mld_stdmelding_malus IS NOT NULL
OR std.mld_stdmelding_malusbasis IS NOT NULL
OR EXISTS (SELECT mld_stdmsrtruimte_key
FROM mld_stdmsrtruimte stdsr
WHERE stdsr.mld_stdmelding_key = std.mld_stdmelding_key
AND stdsr.alg_srtruimte_key = r.alg_srtruimte_key)
)
)
OR
( PCHX.get_user = 'PCHA'
-- meldingen op inspecties worden altijd getoond (Kq)
AND ( UPPER (SUBSTR (sd.ins_srtdiscipline_prefix, 1, 1)) = 'Q'
-- anders alleen storingen ingelegd door klant medewerkers
OR klant_melding = 1
-- Meldingen op V&G en W&R worden altijd getoond ook als ze door een eigen medewerker zijn ingelegd.
OR d.ins_discipline_key in (232, 220) -- V en G, W en R
)
AND ( std.mld_stdmelding_malus IS NOT NULL
OR EXISTS (SELECT mld_stdmsrtruimte_key
FROM mld_stdmsrtruimte stdsr
WHERE stdsr.mld_stdmelding_key = std.mld_stdmelding_key)
)
)
OR
( PCHX.get_user = 'PCHW'
-- meldingen op inspecties worden altijd getoond (Kq)
AND ( UPPER (SUBSTR (sd.ins_srtdiscipline_prefix, 1, 1)) = 'Q'
OR klant_melding = 1
)
-- alleen meldingen waarvoor een malus geldt of als er een uitzondering voor deze ruimtefunctie is.
AND ( std.mld_stdmelding_malus IS NOT NULL
OR EXISTS (SELECT mld_stdmsrtruimte_key
FROM mld_stdmsrtruimte stdsr
WHERE stdsr.mld_stdmelding_key = std.mld_stdmelding_key)
)
)
)
) g;
- m.max_t_respijt.tijdsduur) -- positief, dan te laat
telaat,
SIGN (m.max_t_actual.tijdsduur - m.min_t_sla.tijdsduur) -- positief, dan te laat
telaat_z_respijt,
m.max_t_actual
actual, -- MAX actuele doorlooptijd
m.min_t_sla
thtsla, -- MIN SLA
m.min_t_sla.eenheid
eenheid,
m.max_t_respijt
respijt, -- MAX respijt
mld_t_uitvoertijd (
m.min_t_sla.tijdsduur + m.max_t_respijt.tijdsduur,
m.min_t_sla.eenheid)
tht, -- MIN SLA + MAX respijt
mld_t_uitvoertijd (
m.max_t_actual.tijdsduur
- m.min_t_sla.tijdsduur
- m.max_t_respijt.tijdsduur,
m.max_t_actual.eenheid)
uitloop, -- hoeveel te laat
mld_t_uitvoertijd (
m.max_t_actual.tijdsduur - m.min_t_sla.tijdsduur,
m.max_t_actual.eenheid)
uitloop_z_respijt, -- hoeveel te laat
sr.alg_srtruimte_prijs4
wegingsfactor, -- wegingsfactor bij soortruimte
-- is de tijd van de melding aangepast?
(SELECT COUNT (*)
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_tracking_refkey = m.m_start -- mld_melding_key VAN MELDING MET LAAGSTE KEY???
AND t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND ( t.fac_tracking_oms LIKE '%Start :%'
OR t.fac_tracking_oms LIKE '%Afgemeld:%'))
antedateren,
klant_melding,
prs_bedrijf_key,
ins_srtdiscipline_prefix
FROM pchx_v_startmelding_geg m,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd,
mld_stdmeldinggroep stdg,
prs_kostenplaats kp,
alg_v_ruimte_gegevens rg,
alg_srtruimte sr
WHERE m.mld_melding_status IN (0,
2,
3,
4,
5,
6,
7,
99) -- alles behalve 1=Afgewezen
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND std.mld_stdmeldinggroep_key =
stdg.mld_stdmeldinggroep_key(+)
AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND m.mld_alg_onroerendgoed_keys = rg.alg_ruimte_key(+)
AND rg.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND ( ( UPPER (
SUBSTR (sd.ins_srtdiscipline_prefix, 1, 1)) =
'Q'
OR ( PCHX.get_user = 'PCHA'
AND d.ins_discipline_key IN (232, 220)) -- V en G, W en R
OR klant_melding = 1)
-- meldingen op inspecties worden altijd getoond (Kq)
-- anders alleen storingen ingelegd door klant medewerkers
-- alleen meldingen waarvoor een malus geldt
OR UPPER (
SUBSTR (sd.ins_srtdiscipline_prefix, 1, 1)) =
'W'
AND PCHX.get_user = 'PCHW'
AND klant_melding = 1) -- ivm PCHW#61325 ook wensen met opdrachttype 'Specifieke Variabele Dienst'
) g;
-- Rapport om de niet gegroeperde data te zien