PCHD#33780 -- Inrichting het Gelders Huis
svn path=/Customer/trunk/; revision=33515
This commit is contained in:
645
PCHA/pcha.sql
645
PCHA/pcha.sql
@@ -1,12 +1,23 @@
|
||||
-- Script containing customer specific configuration sql statements for PCHA: PCH Het Gelders Huis Arnhem
|
||||
-- (c) 2013 SG|facilitor
|
||||
-- $Revision$
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- Support: +31 53 4800700
|
||||
-- Script containing customer specific configuration sql statements for PCHA: PCH Het Gelders Huis Arnhem
|
||||
|
||||
DEFINE thisfile = 'PCHA.SQL'
|
||||
DEFINE dbuser = '^PCHA'
|
||||
|
||||
SPOOL xpchd.lst
|
||||
SET ECHO ON
|
||||
SET DEFINE ON
|
||||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||||
WHENEVER SQLERROR EXIT;
|
||||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
SPOOL &fcltlogfile
|
||||
SET DEFINE OFF
|
||||
|
||||
------ payload begin ------
|
||||
|
||||
|
||||
|
||||
|
||||
-- Importfuncties onroerendgoed vanaf verdieping.
|
||||
@@ -18,6 +29,7 @@ BEGIN
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
fac_import_onrgoed2 (p_import_key);
|
||||
UPDATE fac_imp_onrgoed2 SET alg_srtruimte_omschrijving = TRIM(alg_srtruimte_omschrijving);
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -26,9 +38,24 @@ AS
|
||||
BEGIN
|
||||
fac_update_onrgoed2 (p_import_key);
|
||||
|
||||
-- plaats de ruimte type codering in het code veld.
|
||||
UPDATE alg_srtruimte
|
||||
SET alg_srtruimte_code = SUBSTR (alg_srtruimte_omschrijving, 1, 7)
|
||||
WHERE alg_srtruimte_code IS NULL;
|
||||
|
||||
-- pas de openingstijden van de ruimten aan waar een 24/7 regime geldt. Verder geldt voor
|
||||
-- deze ruimten ook dat de sla in het weekend door telt.
|
||||
UPDATE alg_ruimte
|
||||
SET
|
||||
(alg_ruimte_beginuur,
|
||||
alg_ruimte_einduur,
|
||||
alg_ruimte_werkdagen
|
||||
) =
|
||||
(SELECT DECODE (SUBSTR (alg_onrgoedkenmerk_waarde, 1, 2), '24', 0, NULL),
|
||||
DECODE (SUBSTR (alg_onrgoedkenmerk_waarde, 1, 2), '24', 24, NULL),
|
||||
DECODE (SUBSTR (alg_onrgoedkenmerk_waarde, 1, 2), '24', 0, NULL)
|
||||
FROM alg_onrgoedkenmerk
|
||||
WHERE alg_kenmerk_key = 1000 AND alg_onrgoed_key = alg_ruimte_key);
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -50,25 +77,25 @@ AS
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
header_found BOOLEAN;
|
||||
v_error NUMBER(1);
|
||||
header_found BOOLEAN;
|
||||
v_error NUMBER(1);
|
||||
-- De importvelden
|
||||
v_r_codering VARCHAR2(100);
|
||||
v_omschrijving VARCHAR2(100);
|
||||
v_ruimten VARCHAR2 (100);
|
||||
v_storing_os VARCHAR2 (100);
|
||||
v_stdmelding VARCHAR2 (100);
|
||||
v_vakgroep VARCHAR2 (100);
|
||||
v_vakgroeptype VARCHAR2 (100);
|
||||
v_tht_os VARCHAR2 (100);
|
||||
v_tht VARCHAR2 (100);
|
||||
v_tht_eenheid VARCHAR2 (100);
|
||||
v_bk VARCHAR2 (100);
|
||||
v_vk VARCHAR2 (100);
|
||||
v_srtruimte_key NUMBER;
|
||||
v_stdmelding_key NUMBER;
|
||||
v_discipline_key NUMBER;
|
||||
v_srtdiscipline_key NUMBER;
|
||||
v_r_codering VARCHAR2(100);
|
||||
v_omschrijving VARCHAR2(100);
|
||||
v_ruimten VARCHAR2(100);
|
||||
v_storing_os VARCHAR2(100);
|
||||
v_stdmelding VARCHAR2(100);
|
||||
v_vakgroep VARCHAR2(100);
|
||||
v_vakgroeptype VARCHAR2(100);
|
||||
v_tht_os VARCHAR2(100);
|
||||
v_tht VARCHAR2(100);
|
||||
v_tht_eenheid VARCHAR2(100);
|
||||
v_bk VARCHAR2(100);
|
||||
v_vk VARCHAR2(100);
|
||||
v_srtruimte_key NUMBER;
|
||||
v_stdmelding_key NUMBER;
|
||||
v_discipline_key NUMBER;
|
||||
v_srtdiscipline_key NUMBER;
|
||||
|
||||
|
||||
BEGIN
|
||||
@@ -118,8 +145,8 @@ BEGIN
|
||||
-- Skip until a valid header is found
|
||||
v_errormsg := 'Controleer de header';
|
||||
|
||||
IF UPPER (rec1.fac_imp_file_line) =
|
||||
'R CODERING;OMSCHRIJVING;RUIMTEN;STORING OS;STANDAARD MELDING;VAKGROEP;VAKGROEPTYPE;THT OS;THT;THT EENHEID;BK;VK'
|
||||
IF UPPER (rec1.fac_imp_file_line) LIKE
|
||||
'R CODERING;OMSCHRIJVING;RUIMTEN;STORING OS;STANDAARD MELDING;VAKGROEP;VAKGROEPTYPE;THT OS;THT;THT EENHEID;BK;VK%'
|
||||
THEN
|
||||
-- Sla de kopregel over.
|
||||
header_found := TRUE;
|
||||
@@ -368,6 +395,7 @@ AS
|
||||
FROM mld_stdmsrtruimte ssr,
|
||||
mld_stdmelding std,
|
||||
ins_tab_discipline d,
|
||||
ins_srtdiscipline sd,
|
||||
alg_srtruimte sr
|
||||
WHERE NOT EXISTS
|
||||
(SELECT mld_stdmelding_key
|
||||
@@ -383,8 +411,32 @@ AS
|
||||
AND sm.mld_stdmelding_key IS NULL)
|
||||
AND ssr.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 sd.ins_srtdiscipline_omschrijving IN (SELECT DISTINCT vakgroeptype FROM pcha_imp_storing_regime)
|
||||
AND ssr.alg_srtruimte_key = sr.alg_srtruimte_key;
|
||||
|
||||
CURSOR c_upd_std
|
||||
IS
|
||||
SELECT DISTINCT
|
||||
mld_stdmelding_key,
|
||||
sr1.mld_stdmsrtruimte_t_uitvtijd.eenheid eenheid,
|
||||
sr1.mld_stdmsrtruimte_t_uitvtijd.tijdsduur tijdsduur
|
||||
FROM (SELECT mld_stdmelding_key,
|
||||
DECODE (sr.mld_stdmsrtruimte_t_uitvtijd.eenheid, 'U', 0, 'D', 100)
|
||||
+ sr.mld_stdmsrtruimte_t_uitvtijd.tijdsduur
|
||||
duur,
|
||||
sr.mld_stdmsrtruimte_t_uitvtijd
|
||||
FROM mld_stdmsrtruimte sr) sr1
|
||||
WHERE NOT EXISTS (SELECT *
|
||||
FROM (SELECT mld_stdmelding_key,
|
||||
DECODE (sr.mld_stdmsrtruimte_t_uitvtijd.eenheid,
|
||||
'U', 0,
|
||||
'D', 100)
|
||||
+ sr.mld_stdmsrtruimte_t_uitvtijd.tijdsduur
|
||||
duur
|
||||
FROM mld_stdmsrtruimte sr) sr2
|
||||
WHERE sr1.mld_stdmelding_key = sr2.mld_stdmelding_key AND sr1.duur < sr2.duur);
|
||||
|
||||
v_newline VARCHAR2 (1000);
|
||||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||||
@@ -402,7 +454,7 @@ AS
|
||||
BEGIN
|
||||
SELECT COUNT ( * ) INTO v_count FROM pcha_imp_storing_regime;
|
||||
|
||||
IF v_count < 1000
|
||||
IF v_count < 1000 AND 1=0 -- Toch maar even niet testen. De lijst met Kq meldingen bevat maar 17 records
|
||||
THEN
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
@@ -812,6 +864,22 @@ BEGIN
|
||||
|
||||
END LOOP;
|
||||
|
||||
-- Als de hersteltijd per ruimtesoort geldt dan moeten we de vlag afhankelijk ook zetten bij de stdmelding.
|
||||
UPDATE mld_stdmelding std
|
||||
SET mld_stdmelding_afhankelijk =
|
||||
(SELECT DECODE (COUNT ( * ), 0, 0, 1)
|
||||
FROM mld_stdmsrtruimte sr
|
||||
WHERE sr.mld_stdmelding_key = std.mld_stdmelding_key);
|
||||
|
||||
-- Als er een uitsplitsing is naar ruimtesoort dan moeten we toch de default uitvoertijd bij de stdmelding
|
||||
-- invullen. Anders wordt de verkeerde eenheid bij respijt getoond.
|
||||
FOR rec IN c_upd_std
|
||||
LOOP
|
||||
UPDATE mld_stdmelding
|
||||
SET mld_stdmelding_t_uitvoertijd = mld_t_uitvoertijd (rec.tijdsduur, rec.eenheid)
|
||||
WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
@@ -838,13 +906,13 @@ AS
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
|
||||
v_newline VARCHAR2 (1000);
|
||||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
v_newline VARCHAR2(1000);
|
||||
v_aanduiding VARCHAR2(1000); -- Import line
|
||||
v_fielddelimitor VARCHAR2(1); -- Field seperator
|
||||
v_errormsg VARCHAR(200);
|
||||
v_errorhint VARCHAR(200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
oracle_err_mes VARCHAR2(200);
|
||||
header_found BOOLEAN;
|
||||
v_error NUMBER(1);
|
||||
v_dummy VARCHAR2(100);
|
||||
@@ -985,7 +1053,7 @@ BEGIN
|
||||
fac_usrdata_omschrijving)
|
||||
VALUES (v_stdmelding_key,
|
||||
v_usrtab_omschrijving,
|
||||
v_kenmerk);
|
||||
SUBSTR(v_kenmerk,1,60));
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
@@ -1020,13 +1088,17 @@ AS
|
||||
IS
|
||||
SELECT * FROM pcha_imp_kenmerken;
|
||||
|
||||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_usrtab_key NUMBER;
|
||||
v_usrdata_key NUMBER;
|
||||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_usrtab_key fac_usrtab.fac_usrtab_key%TYPE;
|
||||
v_usrdata_key fac_usrdata.fac_usrdata_key%TYPE;
|
||||
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
||||
v_srtkenmerk_key mld_srtkenmerk.mld_srtkenmerk_key%TYPE;
|
||||
v_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
|
||||
v_srtkenmerk_omschrijving mld_srtkenmerk.mld_srtkenmerk_omschrijving%TYPE;
|
||||
BEGIN
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
@@ -1039,21 +1111,102 @@ BEGIN
|
||||
|
||||
IF rec.mld_stdmelding_key IS NOT NULL
|
||||
THEN
|
||||
v_errorhint := 'Toevoegen of bepalen fac_usrtab';
|
||||
|
||||
BEGIN
|
||||
SELECT fac_usrtab_key
|
||||
INTO v_usrtab_key
|
||||
FROM fac_usrtab
|
||||
WHERE fac_usrtab_naam = fac_usrtab_omschrijving;
|
||||
WHERE fac_usrtab_naam = rec.fac_usrtab_omschrijving;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO fac_usrtab (fac_usrtab_naam, fac_usrtab_omschrijving)
|
||||
VALUES (rec.fac_usrtab_omschrijving,
|
||||
'Meldingkenmerk: ' || rec.fac_usrtab_omschrijving)
|
||||
VALUES (rec.fac_usrtab_omschrijving, rec.fac_usrtab_omschrijving)
|
||||
RETURNING fac_usrtab_key
|
||||
INTO v_usrtab_key;
|
||||
END;
|
||||
|
||||
v_errorhint := 'Toevoegen of bepalen fac_kenmerkdomein';
|
||||
|
||||
BEGIN
|
||||
SELECT fac_kenmerkdomein_key
|
||||
INTO v_kenmerkdomein_key
|
||||
FROM fac_kenmerkdomein
|
||||
WHERE fac_kenmerkdomein_verwijder IS NULL
|
||||
AND fac_kenmerkdomein_module = 'MLD'
|
||||
AND fac_usrtab_key = v_usrtab_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_omschrijving,
|
||||
fac_kenmerkdomein_module,
|
||||
fac_kenmerkdomein_kolomnaam,
|
||||
fac_kenmerkdomein_kolomtxt,
|
||||
fac_kenmerkdomein_objectnaam,
|
||||
fac_usrtab_key)
|
||||
VALUES (rec.fac_usrtab_omschrijving,
|
||||
'MLD',
|
||||
'FAC_USRDATA_KEY',
|
||||
'FAC_USRDATA_OMSCHR',
|
||||
'FAC_USRDATA',
|
||||
v_usrtab_key)
|
||||
RETURNING fac_kenmerkdomein_key
|
||||
INTO v_kenmerkdomein_key;
|
||||
END;
|
||||
|
||||
v_errorhint := 'Toevoegen of bepalen srtkenmerk_omschrijving';
|
||||
|
||||
SELECT SUBSTR('Type ' || ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving, 1, 50)
|
||||
INTO v_srtkenmerk_omschrijving
|
||||
FROM mld_discipline d, mld_stdmelding std
|
||||
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
|
||||
AND std.mld_stdmelding_key = rec.mld_stdmelding_key;
|
||||
|
||||
v_errorhint := 'Toevoegen of bepalen mld_srtkenmerk';
|
||||
|
||||
BEGIN
|
||||
SELECT mld_srtkenmerk_key
|
||||
INTO v_srtkenmerk_key
|
||||
FROM mld_srtkenmerk
|
||||
WHERE mld_srtkenmerk_verwijder IS NULL
|
||||
AND fac_kenmerkdomein_key = v_kenmerkdomein_key
|
||||
AND mld_srtkenmerk_omschrijving = v_srtkenmerk_omschrijving;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_omschrijving,
|
||||
mld_srtkenmerk_kenmerktype,
|
||||
fac_kenmerkdomein_key)
|
||||
VALUES (v_srtkenmerk_omschrijving, 'R', v_kenmerkdomein_key)
|
||||
RETURNING mld_srtkenmerk_key
|
||||
INTO v_srtkenmerk_key;
|
||||
END;
|
||||
|
||||
v_errorhint := 'Toevoegen of bepalen mld_kenmerk';
|
||||
|
||||
BEGIN
|
||||
SELECT mld_kenmerk_key
|
||||
INTO v_kenmerk_key
|
||||
FROM mld_kenmerk
|
||||
WHERE mld_kenmerk_verwijder IS NULL AND mld_srtkenmerk_key = v_srtkenmerk_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO mld_kenmerk (mld_srtkenmerk_key,
|
||||
mld_stdmelding_key,
|
||||
mld_kenmerk_niveau,
|
||||
mld_kenmerk_volgnummer)
|
||||
VALUES (v_srtkenmerk_key,
|
||||
rec.mld_stdmelding_key,
|
||||
'S',
|
||||
400)
|
||||
RETURNING mld_kenmerk_key
|
||||
INTO v_kenmerk_key;
|
||||
END;
|
||||
|
||||
v_errorhint := 'Toevoegen of bepalen fac_usrdata';
|
||||
|
||||
BEGIN
|
||||
SELECT fac_usrdata_key
|
||||
INTO v_usrdata_key
|
||||
@@ -1063,11 +1216,11 @@ BEGIN
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
|
||||
VALUES (v_usrtab_key, rec.fac_usrdata_omschrijving, rec.fac_usrdata_omschrijving)
|
||||
VALUES (v_usrtab_key, SUBSTR (rec.fac_usrdata_omschrijving, 1, 40), rec.fac_usrdata_omschrijving)
|
||||
RETURNING fac_usrdata_key
|
||||
INTO v_usrdata_key;
|
||||
END;
|
||||
--------------------------- Kenmerk toevoegen aan stdmelding ---------------------------
|
||||
--------------------------- Kenmerk toevoegen aan stdmelding ---------------------------
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
@@ -1082,7 +1235,7 @@ EXCEPTION
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
SUBSTR (v_errormsg, 1, 1000),
|
||||
v_aanduiding);
|
||||
v_aanduiding || ' - ' || v_errorhint);
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -1147,7 +1300,7 @@ BEGIN
|
||||
UPDATE mld_stdmelding SET mld_stdmelding_regime = 3 WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
||||
ELSE
|
||||
-- Openingstijden
|
||||
UPDATE mld_stdmelding SET mld_stdmelding_regime = 1 WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
||||
UPDATE mld_stdmelding SET mld_stdmelding_regime = 2 WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
@@ -1169,402 +1322,16 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW pcha_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,
|
||||
hgh_melding,
|
||||
prs_bedrijf_key
|
||||
)
|
||||
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 (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.hgh_melding, -- melding gemeld door medewerker HGH
|
||||
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 (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,
|
||||
MAX (m.hgh_melding) hgh_melding,
|
||||
MAX (m.prs_bedrijf_key) prs_bedrijf_key
|
||||
FROM (SELECT pcha.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,
|
||||
a.prs_bedrijf_key,
|
||||
1 hgh_melding -- DECODE(a.prs_bedrijf_key, 1542, 1, 0) nmm_melding
|
||||
FROM mld_melding m,
|
||||
mld_stdmelding std,
|
||||
prs_perslid p,
|
||||
prs_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 nmms_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;
|
||||
|
||||
/* Formatted on 22-6-2016 14:11:45 (QP5 v5.136.908.31019) */
|
||||
CREATE OR REPLACE FORCE VIEW pcha_v_monitoring
|
||||
(
|
||||
melding_key,
|
||||
afw,
|
||||
q_vervolg,
|
||||
indult,
|
||||
respijt,
|
||||
kostenplaats,
|
||||
locatie,
|
||||
gebouw,
|
||||
verdieping,
|
||||
ruimte,
|
||||
object,
|
||||
omschrijving,
|
||||
begin,
|
||||
gereed,
|
||||
thtijdstip,
|
||||
verwerkt,
|
||||
eenheid,
|
||||
tht,
|
||||
wht,
|
||||
regime,
|
||||
groep,
|
||||
basiskorting,
|
||||
variabelekorting,
|
||||
uren,
|
||||
kb,
|
||||
status,
|
||||
afgerond,
|
||||
dienst,
|
||||
stdmelding_key,
|
||||
discipline_key,
|
||||
overlappend,
|
||||
wegingsfactor,
|
||||
melding_omschrijving,
|
||||
melding_opmerking,
|
||||
hgh_melding,
|
||||
bedrijf_naam
|
||||
)
|
||||
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 (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 (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,
|
||||
object,
|
||||
mld_stdmelding_omschrijving,
|
||||
t_van,
|
||||
gereed,
|
||||
DECODE (kortingtype,
|
||||
'Q', (SELECT mld_melding_einddatum
|
||||
FROM mld_melding mtht
|
||||
WHERE mtht.mld_melding_key = m_start),
|
||||
thtijdstip)
|
||||
thtijdstip,
|
||||
(SELECT fac_tracking_datum
|
||||
FROM fac_tracking
|
||||
WHERE fac_tracking_refkey = m_start --mld_melding_key
|
||||
AND fac_srtnotificatie_key = 36)
|
||||
verwerkt,
|
||||
eenheid,
|
||||
DECODE (kortingtype,
|
||||
'Q', TO_NUMBER (NULL),
|
||||
ROUND (g.tht.tijdsduur, 2))
|
||||
tht,
|
||||
DECODE (kortingtype,
|
||||
'Q', TO_NUMBER (NULL),
|
||||
ROUND (g.actual.tijdsduur, 2))
|
||||
wht,
|
||||
DECODE (kortingtype, 'Q', TO_NUMBER (NULL), regime) regime,
|
||||
mld_stdmeldinggroep_naam groep,
|
||||
-- 'K' || LOWER (kortingtype) || DECODE (q_vervolg, 1, '/q') typekorting,
|
||||
bk basiskorting,
|
||||
vk variabelekorting,
|
||||
DECODE (telaat, 1, ROUND (g.uitloop.tijdsduur, 2)) uren, -- uitloop in beschikbaarheid is altijd 50 euro per uur.
|
||||
DECODE (
|
||||
telaat,
|
||||
1,
|
||||
coalesce(bk,0) + (ROUND (g.uitloop.tijdsduur/ g.thtsla.tijdsduur) * vk), -- Alleen als dagen x24!
|
||||
NULL)
|
||||
kb,
|
||||
(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,
|
||||
wegingsfactor,
|
||||
mld_melding_omschrijving,
|
||||
mld_melding_opmerking,
|
||||
hgh_melding,
|
||||
(SELECT prs_bedrijf_naam
|
||||
FROM prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_key = g.prs_bedrijf_key)
|
||||
prs_bedrijf_naam
|
||||
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_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,
|
||||
m.t_van,
|
||||
m.gereed,
|
||||
m.mld_melding_einddatum_std thtijdstip,
|
||||
stdg.mld_stdmeldinggroep_naam,
|
||||
pcha.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,
|
||||
d.ins_deel_omschrijving object,
|
||||
(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
|
||||
CASE COALESCE (q.vervolg, 0)
|
||||
WHEN 1
|
||||
THEN
|
||||
1
|
||||
ELSE
|
||||
DECODE (
|
||||
UPPER (
|
||||
SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1)),
|
||||
'Q',
|
||||
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.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 (
|
||||
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,
|
||||
sr.alg_srtruimte_prijs4, -- wegingsfactor bij soortruimte
|
||||
(SELECT ins_kenmerkdeel_waarde
|
||||
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 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,
|
||||
hgh_melding,
|
||||
prs_bedrijf_key
|
||||
FROM pcha_v_startmelding_geg m,
|
||||
mld_stdmelding std,
|
||||
mld_stdmeldinggroep stdg,
|
||||
prs_kostenplaats kp,
|
||||
alg_v_ruimte_gegevens rg,
|
||||
alg_srtruimte sr,
|
||||
-- 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,
|
||||
mld_stdmelding std1,
|
||||
mld_stdmeldinggroep stdg1,
|
||||
mld_melding m2,
|
||||
mld_stdmelding std2,
|
||||
mld_stdmeldinggroep stdg2
|
||||
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 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 (q.vervolg IS NOT NULL
|
||||
OR UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1)) = 'Q'
|
||||
OR hgh_melding = 1)
|
||||
-- storingen op vervolgmeldingen en inspecties (Q) worden altijd getoond
|
||||
-- anders alleen storingen ingelegd door NMM medewerkers
|
||||
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(+)
|
||||
AND std.mld_stdmelding_slabewaken = 1) g;
|
||||
------ payload end ------
|
||||
|
||||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||||
/
|
||||
|
||||
BEGIN fac.registercustversion('PCHD', 4); END;
|
||||
SET DEFINE OFF
|
||||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
|
||||
SET ECHO OFF
|
||||
SPOOL OFF
|
||||
SET DEFINE ON
|
||||
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||||
|
||||
|
||||
Reference in New Issue
Block a user