FSN#27051 543-migratie nav. aangescherpte tijdsduren
svn path=/Customer/trunk/; revision=23122
This commit is contained in:
620
NMMS/nmms.sql
620
NMMS/nmms.sql
@@ -30,24 +30,33 @@ AS
|
||||
p_index IN NUMBER)
|
||||
RETURN NUMBER
|
||||
AS
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT m2.mld_melding_datum van, m2.mld_melding_key
|
||||
FROM mld_melding m1,
|
||||
mld_melding m2,
|
||||
mld_stdmelding std1,
|
||||
mld_stdmelding std2
|
||||
WHERE m1.mld_melding_key = p_melding_key
|
||||
AND m1.mld_stdmelding_key = std1.mld_stdmelding_key
|
||||
AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
|
||||
AND std1.prs_dienst_key = std2.prs_dienst_key
|
||||
AND m1.mld_melding_key <> m2.mld_melding_key
|
||||
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys
|
||||
AND m1.mld_melding_datum BETWEEN m2.mld_melding_datum
|
||||
AND fac.gettrackingdate (
|
||||
'MLDAFM',
|
||||
m2.mld_melding_key)
|
||||
ORDER BY m2.mld_melding_datum;
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT m2.mld_melding_datum van, m2.mld_melding_key
|
||||
FROM mld_melding m1,
|
||||
mld_stdmelding std1,
|
||||
mld_melding m2,
|
||||
mld_stdmelding std2
|
||||
WHERE m1.mld_melding_key = p_melding_key
|
||||
AND m1.mld_stdmelding_key = std1.mld_stdmelding_key
|
||||
AND m2.mld_melding_parentkey IS NULL
|
||||
AND NOT EXISTS (SELECT 1
|
||||
FROM nmms_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 m1.mld_alg_onroerendgoed_keys =
|
||||
m2.mld_alg_onroerendgoed_keys -- op dezelfde ruimte
|
||||
AND std1.prs_dienst_key =
|
||||
std2.prs_dienst_key -- voor dezelfde dienst
|
||||
AND std1.mld_stdmelding_regime =
|
||||
std2.mld_stdmelding_regime -- met hetzelfde regime
|
||||
AND m1.mld_melding_t_uitvoertijd.eenheid =
|
||||
m2.mld_melding_t_uitvoertijd.eenheid -- in dezelfde eenheid
|
||||
AND m1.mld_melding_key <> m2.mld_melding_key
|
||||
AND m1.mld_melding_datum BETWEEN m2.mld_melding_datum
|
||||
AND fac.gettrackingdate ('MLDAFM', m2.mld_melding_key)
|
||||
ORDER BY m2.mld_melding_datum;
|
||||
|
||||
v_melding_key NUMBER;
|
||||
l_melding_key NUMBER;
|
||||
@@ -98,8 +107,7 @@ AS
|
||||
RETURN NUMBER
|
||||
AS
|
||||
v_mld_stdmelding_regime NUMBER;
|
||||
v_norm_uitvoertijd NUMBER;
|
||||
v_uitvoertijdtype VARCHAR2 (100);
|
||||
v_norm_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL);
|
||||
v_beginuur NUMBER;
|
||||
v_einduur NUMBER;
|
||||
v_werkdagen NUMBER;
|
||||
@@ -110,7 +118,6 @@ AS
|
||||
NULL, -- ins key
|
||||
v_mld_stdmelding_regime,
|
||||
v_norm_uitvoertijd,
|
||||
v_uitvoertijdtype,
|
||||
v_beginuur,
|
||||
v_einduur,
|
||||
v_werkdagen);
|
||||
@@ -173,9 +180,111 @@ END;
|
||||
/
|
||||
|
||||
|
||||
-- Selecteer oa. de MIN(begintijd) en MAX(eindtijd) van overlappende meldingen:
|
||||
-- op dezelfde ruimte voor dezelfde dienst
|
||||
-- met hetzelfde regime in dezelfde eenheid
|
||||
/* Formatted on 21-10-2014 16:54:44 (QP5 v5.136.908.31019) */
|
||||
CREATE OR REPLACE VIEW nmms_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
|
||||
)
|
||||
AS
|
||||
SELECT m.m_start,
|
||||
x.mld_alg_onroerendgoed_keys,
|
||||
-- als <20><>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
|
||||
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,
|
||||
COALESCE (m.gereed, SYSDATE),
|
||||
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 (m.max_respijt, 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
|
||||
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 (mld_melding_uitvoertijd) mld_melding_uitvoertijd, -- hieronder anders opgelost!
|
||||
MIN (m.mld_melding_t_uitvoertijd.tijdsduur) min_uitvoertijd,
|
||||
MIN (m.mld_melding_t_uitvoertijd.eenheid) min_uitvoertijd_eenheid,
|
||||
--SUM (mld_melding_respijt) mld_melding_respijt, -- hieronder anders opgelost!
|
||||
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
|
||||
FROM (SELECT nmms.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,
|
||||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) gereed,
|
||||
m.mld_melding_t_uitvoertijd,
|
||||
m.mld_melding_t_respijt,
|
||||
m.mld_melding_indult,
|
||||
m.mld_melding_einddatum_std,
|
||||
m.mld_melding_einddatum
|
||||
FROM mld_melding m, mld_stdmelding std
|
||||
WHERE m.mld_melding_parentkey IS NULL
|
||||
-- meldingen die al geexporteerd zijn (en in de tabel nmms_monitoring staan) komen niet meer in deze view
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM nmms_monitoring
|
||||
WHERE melding_key = m.mld_melding_key)
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_stdmelding_malus IS NOT NULL -- 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;
|
||||
|
||||
--
|
||||
-- Basis monitoringsview voor operationele zaken. Meldingen die opgenomen zijn in de tabel nmms_monitoring komen niet meer voor in deze view.
|
||||
--
|
||||
/* Formatted on 23-10-2014 11:06:24 (QP5 v5.136.908.31019) */
|
||||
CREATE OR REPLACE VIEW nmms_v_monitoring
|
||||
(
|
||||
melding_key,
|
||||
@@ -218,21 +327,17 @@ CREATE OR REPLACE VIEW nmms_v_monitoring
|
||||
melding_opmerking
|
||||
)
|
||||
AS
|
||||
SELECT mld_melding_key,
|
||||
SELECT m_start, --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 (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 (aantal_beschikb, 0, '', 'B'), -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte
|
||||
q_vervolg,
|
||||
DECODE (COALESCE (mld_melding_indult, 0), 0, 'Nee', 'Ja'),
|
||||
DECODE (
|
||||
mld_melding_respijt,
|
||||
0,
|
||||
NULL,
|
||||
DECODE (uitvoertijdtype,
|
||||
'UREN', ROUND (mld_melding_respijt * 24, 2) || ' Uren',
|
||||
TO_CHAR (mld_melding_respijt) || ' Dagen'))
|
||||
respijt,
|
||||
DECODE (g.respijt.tijdsduur,
|
||||
0, NULL,
|
||||
TO_CHAR (ROUND (g.respijt.tijdsduur, 2)) || g.respijt.eenheid)
|
||||
respijt, -- Of Uren/Dagen??? => Maakt niet uit
|
||||
prs_kostenplaats_nr,
|
||||
alg_locatie_code,
|
||||
alg_gebouw_upper,
|
||||
@@ -240,27 +345,23 @@ AS
|
||||
ruimte,
|
||||
object,
|
||||
thema,
|
||||
mld_stdmelding_omschrijving omschrijving,
|
||||
t_van begin,
|
||||
mld_stdmelding_omschrijving,
|
||||
t_van,
|
||||
gereed,
|
||||
thtijdstip thtijdstip,
|
||||
(SELECT fac_tracking_datum
|
||||
FROM fac_tracking t
|
||||
WHERE fac_tracking_refkey = mld_melding_key
|
||||
AND fac_srtnotificatie_key = 36)
|
||||
FROM fac_tracking
|
||||
WHERE fac_tracking_refkey = m_start --mld_melding_key
|
||||
AND fac_srtnotificatie_key = 36)
|
||||
verwerkt,
|
||||
DECODE (
|
||||
kortingtype,
|
||||
'Q',
|
||||
NULL,
|
||||
DECODE (uitvoertijdtype,
|
||||
'UREN', ROUND (tht * 24, 2) || ' Uren',
|
||||
TO_CHAR (tht) || ' Dagen'))
|
||||
tht_txt,
|
||||
DECODE (kortingtype,
|
||||
'Q', TO_NUMBER (NULL),
|
||||
DECODE (uitvoertijdtype, 'UREN', 24, 1) * actual)
|
||||
wht,
|
||||
'Q', NULL,
|
||||
TO_CHAR (ROUND (g.tht.tijdsduur, 2)) || g.tht.eenheid)
|
||||
tht_txt, -- Of Uren/Dagen??? => Maakt niet uit
|
||||
DECODE (kortingtype,
|
||||
'Q', NULL,
|
||||
TO_CHAR (ROUND (g.actual.tijdsduur, 2)) || g.actual.eenheid)
|
||||
wht, -- Of zonder U/D??? => Nu beter
|
||||
DECODE (kortingtype, 'Q', TO_NUMBER (NULL), regime) regime,
|
||||
mld_stdmeldinggroep_naam groep,
|
||||
'K' || LOWER (kortingtype) || DECODE (q_vervolg, 1, '/q')
|
||||
@@ -271,13 +372,38 @@ AS
|
||||
'Q', mld_stdmelding_malus)
|
||||
basiskorting,
|
||||
DECODE (kortingtype, 'B', 50, 'S', 1000) variabelekorting,
|
||||
--DECODE (
|
||||
-- telaat,
|
||||
-- 1,
|
||||
-- DECODE (kortingtype,
|
||||
-- 'B', (actual - tht) * 24,
|
||||
-- 'S', (actual - tht) * 24))
|
||||
-- uren,
|
||||
DECODE (
|
||||
telaat,
|
||||
1,
|
||||
DECODE (kortingtype,
|
||||
'B', (actual - tht) * 24,
|
||||
'S', (actual - tht) * 24))
|
||||
uren,
|
||||
DECODE (
|
||||
kortingtype,
|
||||
'B',
|
||||
TO_CHAR (ROUND (g.uitloop.tijdsduur, 2)) || g.uitloop.eenheid,
|
||||
'S',
|
||||
TO_CHAR (ROUND (g.uitloop.tijdsduur, 2)) || g.uitloop.eenheid))
|
||||
uren, -- NIET ALTIJD MEER UREN (en ook niet meer numeriek)???
|
||||
--DECODE (
|
||||
-- telaat,
|
||||
-- 1,
|
||||
-- DECODE (
|
||||
-- kortingtype,
|
||||
-- 'Q',
|
||||
-- mld_stdmelding_malus,
|
||||
-- 'B',
|
||||
-- mld_stdmelding_malus
|
||||
-- + ( (TRUNC ( (actual - tht) * 24) + 1) * 50),
|
||||
-- 'S',
|
||||
-- mld_stdmelding_malus
|
||||
-- + ( (TRUNC ( (actual - tht) / thtsla) + 1) * 1000),
|
||||
-- NULL))
|
||||
-- kb,
|
||||
DECODE (
|
||||
telaat,
|
||||
1,
|
||||
@@ -287,207 +413,183 @@ AS
|
||||
mld_stdmelding_malus,
|
||||
'B',
|
||||
mld_stdmelding_malus
|
||||
+ ( (TRUNC ( (actual - tht) * 24) + 1) * 50),
|
||||
+ (CEIL(DECODE (g.uitloop.eenheid, 'D', g.uitloop.tijdsduur * 24, g.uitloop.tijdsduur)) * 50), -- Alleen als dagen x24!
|
||||
'S',
|
||||
mld_stdmelding_malus
|
||||
+ ( (TRUNC ( (actual - tht) / thtsla) + 1) * 1000),
|
||||
+ (CEIL (g.uitloop.tijdsduur / g.thtsla.tijdsduur) * 1000),
|
||||
NULL))
|
||||
kb,
|
||||
DECODE (kortingtype, 'P', mld_stdmelding_malus) prestatiekorting,
|
||||
DECODE (telaat,
|
||||
1,
|
||||
DECODE (kortingtype, 'P', ( (actual - tht) / thtsla) + 1))
|
||||
factor,
|
||||
--DECODE (telaat,
|
||||
-- 1,
|
||||
-- DECODE (kortingtype, 'P', ( (actual - tht) / thtsla) + 1))
|
||||
-- factor,
|
||||
DECODE (
|
||||
telaat,
|
||||
1,
|
||||
DECODE (
|
||||
kortingtype,
|
||||
'P',
|
||||
TRUNC (
|
||||
DECODE (telaat, 1, ( (actual - tht) / thtsla) + 1, NULL))
|
||||
* mld_stdmelding_malus))
|
||||
DECODE (kortingtype, 'P', (g.uitloop.tijdsduur / g.thtsla.tijdsduur) + 1))
|
||||
factor,
|
||||
--DECODE (
|
||||
-- telaat,
|
||||
-- 1,
|
||||
-- DECODE (
|
||||
-- kortingtype,
|
||||
-- 'P',
|
||||
-- TRUNC (
|
||||
-- DECODE (telaat, 1, ( (actual - tht) / thtsla) + 1, NULL))
|
||||
-- * mld_stdmelding_malus))
|
||||
-- kp,
|
||||
DECODE (
|
||||
telaat,
|
||||
1,
|
||||
DECODE (kortingtype, 'P', CEIL (g.uitloop.tijdsduur / g.thtsla.tijdsduur) * mld_stdmelding_malus))
|
||||
kp,
|
||||
(SELECT mld_statuses_omschrijving
|
||||
FROM mld_statuses s
|
||||
WHERE s.mld_statuses_key = mld_melding_status),
|
||||
FROM mld_statuses
|
||||
WHERE mld_statuses_key = mld_melding_status),
|
||||
DECODE (mld_melding_afgerond, 1, 'x'),
|
||||
(SELECT prs_dienst_omschrijving
|
||||
FROM prs_dienst di
|
||||
WHERE di.prs_dienst_key = g.prs_dienst_key),
|
||||
FROM prs_dienst
|
||||
WHERE prs_dienst_key = g.prs_dienst_key),
|
||||
mld_stdmelding_key,
|
||||
mld_ins_discipline_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)
|
||||
FROM (SELECT m.aantal,
|
||||
mld_melding_omschrijving,
|
||||
mld_melding_opmerking
|
||||
FROM (SELECT m.m_start,
|
||||
m.aantal,
|
||||
DECODE (m.aantal, 1, NULL, m.overlappend) overlappend,
|
||||
m.mld_melding_status,
|
||||
m.mld_melding_afgerond,
|
||||
m.mld_melding_key,
|
||||
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,
|
||||
q.vervolg q_vervolg,
|
||||
COALESCE (m.mld_melding_respijt, 0) mld_melding_respijt,
|
||||
mld_stdmelding_omschrijving,
|
||||
t_van,
|
||||
DECODE (SIGN (mld_melding_uitvoertijd - 1),
|
||||
-1, 'UREN',
|
||||
'DAGEN')
|
||||
uitvoertijdtype,
|
||||
gereed,
|
||||
mld_melding_einddatum_std thtijdstip,
|
||||
DECODE (
|
||||
q.vervolg,
|
||||
NULL,
|
||||
COALESCE (ins_deel_uitvoertijd, mld_melding_uitvoertijd),
|
||||
0)
|
||||
+ mld_melding_respijt
|
||||
tht,
|
||||
mld_melding_uitvoertijd thtsla,
|
||||
mld_stdmeldinggroep_naam,
|
||||
m.t_van,
|
||||
m.gereed,
|
||||
m.mld_melding_einddatum_std thtijdstip, -- min_melding_einddatum_std
|
||||
stdg.mld_stdmeldinggroep_naam,
|
||||
nmms.get_regime (std.mld_stdmelding_key,
|
||||
m.mld_alg_onroerendgoed_keys,
|
||||
NULL)
|
||||
regime,
|
||||
UPPER (SUBSTR (mld_stdmeldinggroep_naam, 1, 1)) kortingtype, -- de meldingsgroep bevat het type storing
|
||||
mld_stdmelding_malus,
|
||||
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,
|
||||
alg_ruimte_nr || '-' || alg_ruimte_omschrijving ruimte,
|
||||
rg.alg_ruimte_nr || '-' || rg.alg_ruimte_omschrijving
|
||||
ruimte,
|
||||
d.ins_deel_omschrijving object,
|
||||
(SELECT ins_kenmerkdeel_waarde
|
||||
FROM ins_kenmerkdeel kd
|
||||
WHERE kd.ins_deel_key = d.ins_deel_key
|
||||
AND ins_kenmerk_key = 9)
|
||||
FROM ins_kenmerkdeel
|
||||
WHERE ins_deel_key = d.ins_deel_key
|
||||
AND ins_kenmerk_key = 9)
|
||||
thema,
|
||||
mld.getactualuitvoer ( -- bepaal de actuele doorlooptijd a.d.h.v. de samengestelde melding
|
||||
t_van,
|
||||
COALESCE (gereed, SYSDATE),
|
||||
m.mld_stdmelding_key,
|
||||
m.mld_melding_spoed,
|
||||
m.mld_alg_onroerendgoed_keys,
|
||||
-- selecteer het object van de melding met de kortste doorlooptijd
|
||||
obj.ins_deel_key)
|
||||
actual,
|
||||
(SELECT COUNT (mb.mld_melding_key) aantal -- kijk of er op het moment van de melding er een beschikbaarheidsstoring was.
|
||||
(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)
|
||||
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
|
||||
--CASE COALESCE (q.vervolg, 0)
|
||||
-- WHEN 1
|
||||
-- THEN
|
||||
-- 1
|
||||
-- ELSE
|
||||
-- DECODE (
|
||||
-- UPPER (SUBSTR (mld_stdmeldinggroep_naam, 1, 1)),
|
||||
-- 'Q',
|
||||
-- SIGN (gereed - mld_melding_einddatum),
|
||||
-- SIGN(mld.getactualuitvoer (m.mld_melding_key) -- uitvoertijd VAN MELDING MET LAAGSTE KEY???
|
||||
-- - (mld_melding_uitvoertijd
|
||||
-- + mld_melding_respijt)))
|
||||
--END
|
||||
-- telaat,
|
||||
CASE COALESCE (q.vervolg, 0)
|
||||
WHEN 1
|
||||
THEN
|
||||
1
|
||||
ELSE
|
||||
DECODE (
|
||||
UPPER (SUBSTR (mld_stdmeldinggroep_naam, 1, 1)),
|
||||
UPPER (
|
||||
SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1)),
|
||||
'Q',
|
||||
SIGN (gereed - mld_melding_einddatum),
|
||||
SIGN(mld.getactualuitvoer (m.mld_melding_key)
|
||||
- (mld_melding_uitvoertijd
|
||||
+ mld_melding_respijt)))
|
||||
SIGN(COALESCE (m.gereed, SYSDATE) -- COALESCE met SYSDATE of niet???
|
||||
- m.mld_melding_einddatum), -- max_actual_einddatum - max_melding_einddatum over ALLE m_start-meldingen
|
||||
SIGN(m.max_t_actual.tijdsduur - m.min_t_sla.tijdsduur - m.max_t_respijt.tijdsduur)) -- positief, dan te laat
|
||||
END
|
||||
telaat,
|
||||
--m.min_tht_einddatum_start, -- meest nabije tht-einddatum van overlappende meldingen (t_van + MIN SLA + MAX respijt)
|
||||
m.max_t_actual actual, -- MAX actuele doorlooptijd
|
||||
--mld_melding_uitvoertijd thtsla,
|
||||
m.min_t_sla thtsla, -- MIN SLA
|
||||
--COALESCE (m.mld_melding_respijt, 0) mld_melding_respijt,
|
||||
m.max_t_respijt respijt, -- MAX respijt
|
||||
--DECODE (
|
||||
-- q.vervolg,
|
||||
-- NULL,
|
||||
-- COALESCE (ins_deel_uitvoertijd, mld_melding_uitvoertijd),
|
||||
-- 0)
|
||||
--+ mld_melding_respijt
|
||||
-- tht,
|
||||
MLD_T_UITVOERTIJD (
|
||||
DECODE (q.vervolg, NULL, m.min_t_sla.tijdsduur, 0)
|
||||
+ m.max_t_respijt.tijdsduur,
|
||||
m.min_t_sla.eenheid)
|
||||
tht, -- MIN SLA + MAX respijt
|
||||
MLD_T_UITVOERTIJD (
|
||||
m.max_t_actual.tijdsduur
|
||||
- DECODE (q.vervolg, NULL, m.min_t_sla.tijdsduur, 0)
|
||||
- m.max_t_respijt.tijdsduur,
|
||||
m.max_t_actual.eenheid)
|
||||
uitloop, -- hoeveel te laat
|
||||
DECODE (
|
||||
d.ins_deel_key,
|
||||
NULL,
|
||||
alg_srtruimte_prijs4, -- wegingsfactor bij soortruimte
|
||||
sr.alg_srtruimte_prijs4, -- wegingsfactor bij soortruimte
|
||||
(SELECT ins_kenmerkdeel_waarde
|
||||
FROM ins_kenmerkdeel kd
|
||||
WHERE kd.ins_deel_key = d.ins_deel_key
|
||||
AND ins_kenmerk_key = 10)) -- wegingsfactor bij object
|
||||
FROM ins_kenmerkdeel
|
||||
WHERE ins_deel_key = d.ins_deel_key
|
||||
AND ins_kenmerk_key = 10)) -- wegingsfactor bij object
|
||||
wegingsfactor,
|
||||
-- is de tijd van de melding aangepast?
|
||||
(SELECT COUNT ( * )
|
||||
FROM fac_tracking t, fac_srtnotificatie sn
|
||||
WHERE fac_tracking_refkey = m.mld_melding_key
|
||||
AND t.fac_srtnotificatie_key =
|
||||
sn.fac_srtnotificatie_key
|
||||
AND sn.fac_srtnotificatie_code = 'MLDUPD'
|
||||
AND (fac_tracking_oms LIKE '%Start :%'
|
||||
OR fac_tracking_oms LIKE '%Afgemeld:%'))
|
||||
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
|
||||
FROM ( -- selecteer de begin en eindtijd van overlappende meldingen van dezelfde dienst op dezelfde ruimte
|
||||
--
|
||||
SELECT m_start,
|
||||
-- als er <20><>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 (gereed) gereed,
|
||||
MIN (mld_melding_key) mld_melding_key,
|
||||
MIN (mld_stdmelding_key) mld_stdmelding_key,
|
||||
MAX (prs_kostenplaats_key) prs_kostenplaats_key,
|
||||
mld_alg_onroerendgoed_keys
|
||||
mld_alg_onroerendgoed_keys,
|
||||
SUM (mld_melding_respijt) mld_melding_respijt,
|
||||
MAX (mld_melding_indult) mld_melding_indult,
|
||||
MIN (mld_melding_uitvoertijd)
|
||||
mld_melding_uitvoertijd,
|
||||
MIN (mld_melding_einddatum_std)
|
||||
mld_melding_einddatum_std,
|
||||
MAX (mld_melding_einddatum) mld_melding_einddatum,
|
||||
MIN (mld_melding_spoed) mld_melding_spoed
|
||||
FROM (SELECT nmms.get_first_melding (mld_melding_key,
|
||||
1)
|
||||
m_start,
|
||||
fac.gettrackingdate ('MLDAFM',
|
||||
m.mld_melding_key)
|
||||
gereed,
|
||||
DECODE (m.mld_melding_status, 4, 1, 0)
|
||||
open,
|
||||
m.*
|
||||
FROM mld_melding m, mld_stdmelding std
|
||||
WHERE m.mld_melding_parentkey IS NULL
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
and std.mld_stdmelding_malus is not null -- even meldingen zonder malus uitgesloten om de performance te verbeteren
|
||||
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,
|
||||
FROM nmms_v_startmelding_geg m,
|
||||
mld_stdmelding std,
|
||||
mld_stdmeldinggroep stdg,
|
||||
prs_kostenplaats kp,
|
||||
alg_v_ruimte_gegevens rg,
|
||||
alg_srtruimte sr,
|
||||
mld_stdmelding std,
|
||||
prs_kostenplaats kp,
|
||||
-- vind vervolgmeldingen op Q meldingen (periodieke inspecties)
|
||||
-- vind vervolgmeldingen op Q-meldingen (periodieke inspecties)
|
||||
(SELECT m1.mld_melding_key,
|
||||
DECODE (m2.mld_melding_key, NULL, 0, 1) vervolg
|
||||
FROM mld_melding m1,
|
||||
@@ -496,47 +598,34 @@ AS
|
||||
mld_melding m2,
|
||||
mld_stdmelding std2,
|
||||
mld_stdmeldinggroep stdg2
|
||||
WHERE m1.mld_melding_start_key = m2.mld_melding_key
|
||||
AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
|
||||
AND std2.mld_stdmeldinggroep_key =
|
||||
stdg2.mld_stdmeldinggroep_key
|
||||
AND m1.mld_stdmelding_key = std1.mld_stdmelding_key
|
||||
AND std1.mld_stdmeldinggroep_key =
|
||||
stdg1.mld_stdmeldinggroep_key
|
||||
AND UPPER (
|
||||
SUBSTR (stdg2.mld_stdmeldinggroep_naam, 1, 1)) =
|
||||
'Q'
|
||||
AND UPPER (
|
||||
SUBSTR (stdg1.mld_stdmeldinggroep_naam, 1, 1)) <>
|
||||
'Q') q,
|
||||
-- vind het object met de kortste doorlooptijd
|
||||
( SELECT MAX (d1.ins_deel_key) ins_deel_key,
|
||||
mo1.mld_melding_key
|
||||
FROM ins_deel d1,
|
||||
mld_melding_object mo1,
|
||||
ins_deel d2,
|
||||
mld_melding_object mo2
|
||||
WHERE mo1.ins_deel_key = d1.ins_deel_key
|
||||
AND mo1.mld_melding_key = mo2.mld_melding_key
|
||||
AND mo2.ins_deel_key = d2.ins_deel_key
|
||||
AND d1.ins_deel_uitvoertijd <= d2.ins_deel_uitvoertijd
|
||||
GROUP BY mo1.mld_melding_key) obj,
|
||||
WHERE m1.mld_stdmelding_key = std1.mld_stdmelding_key
|
||||
AND std1.mld_stdmeldinggroep_key =
|
||||
stdg1.mld_stdmeldinggroep_key
|
||||
AND UPPER(SUBSTR (stdg1.mld_stdmeldinggroep_naam,
|
||||
1,
|
||||
1)) = 'Q'
|
||||
AND m1.mld_melding_start_key = m2.mld_melding_key
|
||||
AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
|
||||
AND std2.mld_stdmeldinggroep_key =
|
||||
stdg2.mld_stdmeldinggroep_key
|
||||
AND UPPER(SUBSTR (stdg2.mld_stdmeldinggroep_naam,
|
||||
1,
|
||||
1)) <> 'Q') q,
|
||||
-- vind object met kortste doorlooptijd per melding
|
||||
(SELECT mld_melding_key,
|
||||
MLD.getlowestobjectuitvoer (mld_melding_key)
|
||||
ins_deel_key
|
||||
FROM mld_melding_object) obj,
|
||||
ins_deel d
|
||||
WHERE mld_stdmelding_malus IS NOT NULL
|
||||
AND m.mld_melding_status IN (0, 2, 3, 4, 5, 6, 7, 99)
|
||||
-- meldingen die al geexporteerd zijn(en in de tabel nmms_monitoring staan) komen niet meer in deze view
|
||||
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(+)
|
||||
AND obj.ins_deel_key = d.ins_deel_key(+)
|
||||
AND rg.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND m.mld_melding_key = q.mld_melding_key(+)
|
||||
AND std.mld_stdmeldinggroep_key =
|
||||
stdg.mld_stdmeldinggroep_key(+)) g;
|
||||
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_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 m.m_start = q.mld_melding_key(+)
|
||||
AND m.m_start = obj.mld_melding_key(+) -- mld_melding_key VAN MELDING MET LAAGSTE KEY???
|
||||
AND obj.ins_deel_key = d.ins_deel_key(+)) g;
|
||||
|
||||
--
|
||||
-- Rapportage gebasseerd op de basis rapportage
|
||||
@@ -1321,37 +1410,49 @@ CREATE OR REPLACE VIEW nmms_v_dashboard_korting
|
||||
(
|
||||
melding,
|
||||
omschrijving,
|
||||
hide_f_marge,
|
||||
marge,
|
||||
korting,
|
||||
hide_f_marge,
|
||||
tht_tijdstip,
|
||||
tht
|
||||
)
|
||||
AS
|
||||
SELECT mld_melding_key,
|
||||
mld_stdmelding_omschrijving,
|
||||
DECODE (SIGN (1 - mld_melding_uitvoertijd),
|
||||
-1, ROUND (marge, 2) || ' Dagen',
|
||||
ROUND (marge * 24, 2) || ' Uren')
|
||||
SELECT x.mld_melding_key,
|
||||
x.mld_stdmelding_omschrijving,
|
||||
DECODE (x.marge.eenheid,
|
||||
'D', x.marge.tijdsduur * 24,
|
||||
x.marge.tijdsduur)
|
||||
marge_val, -- Marge in uren tbv. sortering/kleuring
|
||||
ROUND (x.marge.tijdsduur, 2)
|
||||
|| DECODE (x.marge.eenheid, 'D', ' Dagen', ' Uren')
|
||||
marge_txt,
|
||||
mld_stdmelding_malus,
|
||||
marge,
|
||||
mld_melding_einddatum_std,
|
||||
ROUND (24 * mld_melding_uitvoertijd, 2) tht
|
||||
FROM (SELECT mld_melding_key,
|
||||
mld.getactualuitvoer (m.mld_melding_key),
|
||||
mld_melding_uitvoertijd,
|
||||
mld_melding_uitvoertijd
|
||||
- mld.getactualuitvoer (m.mld_melding_key)
|
||||
marge,
|
||||
mld_melding_datum,
|
||||
mld_melding_einddatum_std,
|
||||
mld_stdmelding_malus,
|
||||
mld_stdmelding_omschrijving
|
||||
x.mld_stdmelding_malus,
|
||||
x.mld_melding_einddatum_std,
|
||||
DECODE (x.mld_melding_t_uitvoertijd.eenheid,
|
||||
'D', ROUND (x.mld_melding_t_uitvoertijd.tijdsduur * 24, 2),
|
||||
ROUND (x.mld_melding_t_uitvoertijd.tijdsduur, 2))
|
||||
tht -- SLA in uren
|
||||
FROM (SELECT m.mld_melding_key,
|
||||
m.mld_melding_einddatum_std,
|
||||
m.mld_melding_t_uitvoertijd,
|
||||
--mld_melding_uitvoertijd - mld.getactualuitvoer (m.mld_melding_key)
|
||||
mld.getactualuitvoer (
|
||||
m.mld_melding_einddatum_std,
|
||||
COALESCE (
|
||||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||||
SYSDATE),
|
||||
m.mld_stdmelding_key,
|
||||
m.mld_melding_spoed,
|
||||
m.mld_alg_onroerendgoed_keys,
|
||||
NULL)
|
||||
marge, -- Van SLA-einddatum tot gereed/SYSDATE (+ of -)
|
||||
std.mld_stdmelding_omschrijving,
|
||||
std.mld_stdmelding_malus
|
||||
FROM mld_melding m, mld_stdmelding std
|
||||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_stdmelding_malus IS NOT NULL
|
||||
AND m.mld_melding_status IN (0, 2, 3, 4, 7, 99));
|
||||
WHERE m.mld_melding_status IN (0, 2, 3, 4, 7, 99)
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_stdmelding_malus IS NOT NULL) x;
|
||||
|
||||
--------------------------------------------------------------
|
||||
--
|
||||
@@ -1421,17 +1522,12 @@ AS
|
||||
THEN
|
||||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||||
m.mld_melding_datum,
|
||||
m.mld_melding_uitvoertijd,
|
||||
'DAGEN')
|
||||
m.mld_melding_t_uitvoertijd.tijdsduur,
|
||||
m.mld_melding_t_uitvoertijd.eenheid)
|
||||
- COALESCE (
|
||||
fac.gettrackingdate (
|
||||
'MLDREJ',
|
||||
m.mld_melding_key),
|
||||
COALESCE (
|
||||
fac.gettrackingdate (
|
||||
'MLDAFM',
|
||||
m.mld_melding_key),
|
||||
SYSDATE)))
|
||||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||||
SYSDATE))
|
||||
WHEN -1
|
||||
THEN
|
||||
0
|
||||
|
||||
Reference in New Issue
Block a user