1400 lines
57 KiB
Plaintext
1400 lines
57 KiB
Plaintext
#ifdef RES // 07-12-99 BIV
|
||
/*
|
||
* $Revision$
|
||
* $Id$
|
||
*/
|
||
|
||
|
||
CREATE_VIEW(RES_DISCIPLINE, 0) AS
|
||
SELECT * FROM INS_TAB_DISCIPLINE
|
||
WHERE INS_DISCIPLINE_MODULE = 'RES';
|
||
|
||
CREATE_VIEW(RES_V_AANWEZIGDISCIPLINE, 0) AS
|
||
SELECT * FROM RES_DISCIPLINE
|
||
WHERE INS_DISCIPLINE_VERWIJDER IS NULL;
|
||
|
||
/* LET OP (FSN#21553)
|
||
* Deze view lijkt qua naam een tabel, maar is het technisch niet
|
||
* Hij levert de statustekst in de juiste taal op, van een specifieke statuscode
|
||
* Voorheen was dit een tabel met deze naam, en werd deze initieel gevuld. Dit is
|
||
* hiermee dus vanwege de i18n veranderd.
|
||
*/
|
||
CREATE_VIEW(res_status_bo, 0)
|
||
AS
|
||
SELECT fac_code2label_code res_status_bo_key,
|
||
COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) res_status_bo_omschrijving
|
||
FROM fac_locale_xsl fl, fac_code2label fs
|
||
WHERE fl.fac_locale_xsl_label = fac_code2label_label
|
||
AND fac_code2label_domein = 'reservering'
|
||
AND fac_locale_xsl_lang = lcl.getuserlanguage ();
|
||
|
||
CREATE_VIEW(res_status_fo, 0)
|
||
AS
|
||
SELECT fac_code2label_code res_status_fo_key,
|
||
COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) res_status_fo_omschrijving
|
||
FROM fac_locale_xsl fl, fac_code2label fs
|
||
WHERE fl.fac_locale_xsl_label = fac_code2label_label
|
||
AND fac_code2label_domein = 'resfostatus'
|
||
AND fac_locale_xsl_lang = lcl.getuserlanguage ();
|
||
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_reservering, res_reservering_verwijder,
|
||
res_v_aanwezigreservering,0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_rsv_ruimte, res_rsv_ruimte_verwijder,
|
||
res_v_aanwezigrsv_ruimte,0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_opstelling, res_opstelling_verwijder,
|
||
res_v_aanwezigopstelling,0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_ruimte, res_ruimte_verwijder,
|
||
res_v_aanwezigruimte,0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_artikel, res_artikel_verwijder,
|
||
res_v_aanwezigartikel, 0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_deel, res_deel_verwijder,
|
||
res_v_aanwezigdeel, 0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_rsv_artikel, res_rsv_artikel_verwijder,
|
||
res_v_aanwezigrsv_artikel, 0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_rsv_deel, res_rsv_deel_verwijder,
|
||
res_v_aanwezigrsv_deel, 0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_alg_ruimte, res_alg_ruimte_verwijder,
|
||
res_v_aanwezigalg_ruimte, 0);
|
||
|
||
CREATE_VIEW(res_v_aanwezigins_deel, 0)
|
||
(res_deel_key,
|
||
ins_deel_key) AS
|
||
SELECT res_deel_key,
|
||
res_ins_deel_key
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL;
|
||
|
||
CREATE_VIEW(res_v_res_ruimte_gegevens_all, 0)
|
||
( alg_regio_key,
|
||
alg_district_key,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_verdieping_key,
|
||
res_ruimte_key,
|
||
res_ruimte_nr,
|
||
res_ruimte_volgnummer,
|
||
res_ruimte_prijs,
|
||
bez_actie_key,
|
||
res_discipline_key,
|
||
res_ruimte_extern_id,
|
||
alg_ruimte_verwijder,
|
||
res_ruimte_verwijder,
|
||
res_alg_ruimte_verwijder
|
||
) AS
|
||
SELECT DISTINCT
|
||
ALG_D.alg_regio_key
|
||
, ALG_D.alg_district_key
|
||
, ALG_L.alg_locatie_key
|
||
, ALG_G.alg_gebouw_key
|
||
, ALG_V.alg_verdieping_key
|
||
, RES_R.res_ruimte_key
|
||
, RES_R.res_ruimte_nr
|
||
, RES_R.res_ruimte_volgnummer
|
||
, RES_R.res_ruimte_prijs
|
||
, RES_R.bez_actie_key
|
||
, RES_R.res_discipline_key
|
||
, RES_R.res_ruimte_extern_id
|
||
, alg_ruimte_verwijder
|
||
, res_ruimte_verwijder
|
||
, res_alg_ruimte_verwijder
|
||
FROM ALG_DISTRICT ALG_D
|
||
, ALG_LOCATIE ALG_L
|
||
, ALG_GEBOUW ALG_G
|
||
, ALG_VERDIEPING ALG_V
|
||
, alg_ruimte ALG_R
|
||
, res_ruimte RES_R
|
||
, RES_ALG_RUIMTE RES_RA
|
||
WHERE RES_R.res_ruimte_key = RES_RA.res_ruimte_key
|
||
AND ALG_R.alg_ruimte_key = RES_RA.alg_ruimte_key
|
||
AND ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
|
||
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
|
||
AND ALG_G.alg_locatie_key = ALG_L.alg_locatie_key
|
||
AND ALG_L.alg_district_key = ALG_D.alg_district_key;
|
||
/
|
||
|
||
CREATE_VIEW(res_v_res_ruimte_gegevens,0) AS
|
||
SELECT * FROM res_v_res_ruimte_gegevens_all
|
||
WHERE alg_ruimte_verwijder IS NULL
|
||
AND res_ruimte_verwijder IS NULL
|
||
AND res_alg_ruimte_verwijder IS NULL;
|
||
/
|
||
|
||
|
||
CREATE_VIEW(res_v_alg_ruimte_gegevens,0)
|
||
(alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_verdieping_key,
|
||
alg_ruimte_key,
|
||
alg_ruimte_aanduiding,
|
||
res_ruimte_key,
|
||
res_ruimte_nr,
|
||
res_alg_ruimte_key) AS
|
||
SELECT ALG_L.alg_locatie_key,
|
||
ALG_G.alg_gebouw_key,
|
||
ALG_V.alg_verdieping_key,
|
||
ALG_R.alg_ruimte_key,
|
||
ALG_L.alg_locatie_code ||' - '||
|
||
ALG_G.alg_gebouw_code ||' - '||
|
||
ALG_V.alg_verdieping_code ||' - '||
|
||
ALG_R.alg_ruimte_nr,
|
||
RES_R.res_ruimte_key,
|
||
RES_R.res_ruimte_nr,
|
||
RES_RA.res_alg_ruimte_key
|
||
FROM alg_locatie ALG_L, alg_gebouw ALG_G, alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R,
|
||
res_v_aanwezigruimte RES_R, res_v_aanwezigalg_ruimte RES_RA
|
||
WHERE RES_R.res_ruimte_key = RES_RA.res_ruimte_key
|
||
AND ALG_R.alg_ruimte_key = RES_RA.alg_ruimte_key
|
||
AND ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
|
||
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
|
||
AND ALG_G.alg_locatie_key = ALG_L.alg_locatie_key
|
||
UNION
|
||
SELECT ALG_L.alg_locatie_key,
|
||
ALG_G.alg_gebouw_key,
|
||
ALG_V.alg_verdieping_key,
|
||
ALG_R.alg_ruimte_key,
|
||
ALG_L.alg_locatie_code || ' - ' ||
|
||
ALG_G.alg_gebouw_code || ' - ' ||
|
||
ALG_V.alg_verdieping_code || ' - ' ||
|
||
ALG_R.alg_ruimte_nr,
|
||
TO_NUMBER(NULL),
|
||
NULL,
|
||
TO_NUMBER(NULL)
|
||
FROM alg_locatie ALG_L, alg_gebouw ALG_G, alg_verdieping ALG_V,
|
||
alg_v_aanwezigruimte ALG_R
|
||
WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
|
||
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
|
||
AND ALG_G.alg_locatie_key = ALG_L.alg_locatie_key
|
||
-- When excluded catering ordered on ALG_RUIMTE which happened to be part of RES_RUIMTE
|
||
-- would not show on BO-list
|
||
-- AND ALG_R.alg_ruimte_key NOT IN
|
||
-- (SELECT alg_ruimte_key
|
||
-- FROM res_v_aanwezigalg_ruimte RES_RA)
|
||
/
|
||
|
||
CREATE_VIEW(res_v_rsv_ruimte_2_alg_ruimte,0) AS
|
||
SELECT
|
||
r.res_reservering_key,
|
||
r.res_rsv_ruimte_key,
|
||
r.res_ruimte_opstel_key,
|
||
ro.res_ruimte_opstel_tijd,
|
||
ro.res_ruimte_key,
|
||
ra.alg_ruimte_key,
|
||
r.res_rsv_ruimte_van,
|
||
r.res_rsv_ruimte_tot,
|
||
r.res_status_fo_key,
|
||
rac.res_activiteit_posttime,
|
||
ra.res_alg_ruimte_verwijder,
|
||
r.res_rsv_ruimte_dirtlevel,
|
||
rr.res_discipline_key
|
||
FROM
|
||
res_rsv_ruimte r,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte ra,
|
||
res_activiteit rac
|
||
WHERE
|
||
r.res_rsv_ruimte_verwijder IS NULL AND
|
||
r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND
|
||
ro.res_ruimte_key = rr.res_ruimte_key AND
|
||
rr.res_ruimte_key = ra.res_ruimte_key AND
|
||
r.res_activiteit_key = rac.res_activiteit_key;
|
||
/
|
||
|
||
CREATE_VIEW(res_v_reserveringruimte_geg, 0) AS
|
||
SELECT rr.res_reservering_key,
|
||
rr2.res_rsv_ruimte_opmerking,
|
||
rr2.res_rsv_ruimte_omschrijving,
|
||
k.prs_kostenplaats_nr res_rsv_ruimte_ordernr,
|
||
rr2.res_rsv_ruimte_telefoon,
|
||
rr2.res_rsv_ruimte_aanmaak,
|
||
rr2.res_rsv_ruimte_verwijder,
|
||
rr2.res_rsv_ruimte_contact_key,
|
||
rr2.res_rsv_ruimte_host_key,
|
||
rr.res_ruimte_key,
|
||
rr.alg_ruimte_key,
|
||
k.prs_kostenplaats_nr
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte rr,
|
||
prs_kostenplaats k,
|
||
res_rsv_ruimte rr2
|
||
WHERE k.prs_kostenplaats_key(+) = rr2.prs_kostenplaats_key
|
||
AND rr2.res_rsv_ruimte_key = rr.res_rsv_ruimte_key;
|
||
|
||
CREATE_VIEW(res_v_ruimte_opstel_gegevens,0) AS
|
||
SELECT RES_RO.res_ruimte_opstel_key,
|
||
RES_R.res_ruimte_key,
|
||
RES_R.res_ruimte_nr,
|
||
RES_R.res_ruimte_upper,
|
||
RES_O.res_opstelling_key,
|
||
RES_O.res_opstelling_omschrijving,
|
||
RES_RO.res_ruimte_opstel_bezoekers
|
||
FROM res_v_aanwezigruimte RES_R, res_v_aanwezigopstelling RES_O,
|
||
res_ruimte_opstelling RES_RO
|
||
WHERE RES_R.res_ruimte_key = RES_RO.res_ruimte_key
|
||
AND RES_O.res_opstelling_key = RES_RO.res_opstelling_key;
|
||
|
||
|
||
|
||
CREATE_VIEW(res_v_ins_deel,0)
|
||
( ins_discipline_key
|
||
, ins_srtgroep_key
|
||
, ins_srtdeel_key
|
||
, ins_srtdeel_omschrijving
|
||
, alg_locatie_key
|
||
, alg_gebouw_key
|
||
, alg_verdieping_key
|
||
, alg_ruimte_key
|
||
, prs_werkplek_key
|
||
, alg_terreinsector_key
|
||
, alg_plaatsaanduiding
|
||
, ins_deel_key
|
||
, res_deel_omschrijving
|
||
, res_deel_key
|
||
, res_deel_eenheid
|
||
, res_deel_prijs
|
||
, res_deel_reserveerbaar
|
||
)
|
||
AS SELECT INS_DI.ins_discipline_key
|
||
, INS_SG.ins_srtgroep_key
|
||
, INS_SD.ins_srtdeel_key
|
||
, INS_SD.ins_srtdeel_code||' - '||INS_SD.ins_srtdeel_omschrijving
|
||
, INS_DE.ins_alg_locatie_key
|
||
, INS_AO.alg_gebouw_key
|
||
, INS_AO.alg_verdieping_key
|
||
, INS_AO.alg_ruimte_key
|
||
, INS_AO.prs_werkplek_key
|
||
, INS_AO.alg_terreinsector_key
|
||
, INS_AO.alg_plaatsaanduiding
|
||
, INS_DE.ins_deel_key
|
||
, RES_DE.res_deel_omschrijving
|
||
, RES_DE.res_deel_key
|
||
, RES_DE.res_deel_eenheid
|
||
, RES_DE.res_deel_prijs
|
||
, decode(RES_DE.res_deel_key,null,0,1)
|
||
FROM ins_v_aanwezigdeel INS_DE
|
||
, ins_tab_discipline INS_DI
|
||
, ins_v_alg_overzicht INS_AO
|
||
, ins_srtdeel INS_SD
|
||
, ins_srtgroep INS_SG
|
||
, res_v_aanwezigdeel RES_DE
|
||
WHERE INS_DE.ins_deel_key = RES_DE.res_ins_deel_key (+)
|
||
AND INS_DE.ins_deel_module = 'INS'
|
||
AND INS_DE.ins_deel_parent_key IS NULL
|
||
AND INS_AO.alg_onroerendgoed_keys = INS_DE.ins_alg_ruimte_key
|
||
AND INS_AO.alg_onroerendgoed_type = INS_DE.ins_alg_ruimte_type
|
||
AND INS_AO.alg_locatie_key = INS_DE.ins_alg_locatie_key
|
||
AND INS_SD.ins_srtdeel_key = INS_DE.ins_srtdeel_key
|
||
AND INS_SG.ins_srtgroep_key = INS_SD.ins_srtgroep_key
|
||
AND INS_DI.ins_discipline_key = INS_DE.ins_discipline_key
|
||
AND INS_DE.ins_discipline_key IN (SELECT ins_discipline_key FROM ins_discipline);
|
||
/
|
||
|
||
CREATE_VIEW(res_v_aanwezig_deel_artikel, 0)
|
||
( res_deel_key
|
||
, res_artikel_key
|
||
, res_deel_artikel_prijs
|
||
, res_deel_artikel_naam
|
||
, res_deel_artikel_eenheid)
|
||
AS SELECT R.res_deel_key
|
||
, to_number(null)
|
||
, R.res_deel_prijs
|
||
, substr((S.ins_srtdeel_omschrijving ||' '|| R.res_deel_omschrijving),1,50)
|
||
, R.res_deel_eenheid
|
||
FROM res_v_aanwezigdeel R
|
||
, ins_deel D
|
||
, ins_srtdeel S
|
||
WHERE R.res_ins_deel_key = D.ins_deel_key
|
||
AND D.ins_srtdeel_key = S.ins_srtdeel_key
|
||
UNION
|
||
SELECT to_number(null)
|
||
, res_artikel_key
|
||
, res_artikel_prijs
|
||
, res_artikel_omschrijving
|
||
, res_artikel_eenheid
|
||
FROM res_v_aanwezigartikel;
|
||
|
||
CREATE_VIEW(res_v_aanwezig_rsv_deelartikel, 0)
|
||
(res_rsv_deel_key,
|
||
res_rsv_artikel_key,
|
||
res_reservering_key,
|
||
res_deel_key,
|
||
res_artikel_key,
|
||
res_deel_artikel_omschrijving,
|
||
res_deel_artikel_eenheid,
|
||
res_deel_artikel_prijs,
|
||
res_deel_artikel_aantal,
|
||
res_deel_artikel_levering
|
||
)
|
||
AS
|
||
SELECT r.res_rsv_deel_key, TO_NUMBER (NULL), rr.res_reservering_key, r.res_deel_key, TO_NUMBER (NULL),
|
||
SUBSTR ((s.ins_srtdeel_omschrijving || ' ' || d.res_deel_omschrijving), 1, 50), d.res_deel_eenheid,
|
||
d.res_deel_prijs, r.res_rsv_deel_aantal, to_date(NULL)
|
||
FROM res_rsv_deel r, res_v_aanwezigdeel d, ins_v_aanwezigdeel i, ins_srtdeel s, res_rsv_ruimte rr
|
||
WHERE d.res_deel_key = r.res_deel_key
|
||
AND d.res_ins_deel_key = i.ins_deel_key
|
||
AND i.ins_srtdeel_key = s.ins_srtdeel_key
|
||
AND r.res_rsv_deel_verwijder IS NULL
|
||
AND rr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
||
UNION
|
||
SELECT TO_NUMBER (NULL), r.res_rsv_artikel_key, rr.res_reservering_key, TO_NUMBER (NULL), r.res_artikel_key,
|
||
a.res_artikel_omschrijving, a.res_artikel_eenheid, a.res_artikel_prijs, r.res_rsv_artikel_aantal,
|
||
r.res_rsv_artikel_levering
|
||
FROM res_rsv_artikel r, res_v_aanwezigartikel a, res_rsv_ruimte rr
|
||
WHERE a.res_artikel_key = r.res_artikel_key
|
||
AND r.res_rsv_artikel_verwijder IS NULL
|
||
AND rr.res_rsv_ruimte_key = r.res_rsv_ruimte_key;
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_kenmerkwaarde, res_kenmerkwaarde_verwijder,
|
||
res_v_aanwezigkenmerkwaarde, 0);
|
||
|
||
DEFINIEER_VIEW_AANWEZIG(res_kenmerkartikel, res_kenmerkartikel_verwijder,
|
||
res_v_aanwezigkenmerkartikel, 0);
|
||
|
||
CREATE_VIEW(res_v_res_catalogus, 0)
|
||
AS SELECT *
|
||
FROM INS_TAB_DISCIPLINE
|
||
WHERE ins_discipline_module = 'RES'
|
||
AND ins_discipline_min_level IN (1,2,3,4);
|
||
|
||
|
||
-- View levert op in welke alg_ruimtes uit een bepaalde catalogus besteld mag worden
|
||
CREATE_VIEW(res_v_srtartikel_onrgoed, 0)
|
||
( alg_ruimte_key,
|
||
res_discipline_key,
|
||
alg_onrgoed_niveau,
|
||
alg_onrgoed_ingangsdatum,
|
||
alg_onrgoed_vervaldatum
|
||
) AS
|
||
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
|
||
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
|
||
FROM res_srtartikel_onrgoed og,
|
||
alg_ruimte ra,
|
||
alg_verdieping rv,
|
||
alg_gebouw rg
|
||
WHERE og.alg_onrgoed_key = rg.alg_locatie_key
|
||
AND ra.alg_verdieping_key = rv.alg_verdieping_key
|
||
AND rv.alg_gebouw_key = rg.alg_gebouw_key
|
||
AND og.alg_onrgoed_niveau = 'L'
|
||
AND og.res_srtartikel_og_verwijder IS NULL
|
||
AND ra.alg_ruimte_key IS NOT NULL
|
||
UNION
|
||
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
|
||
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
|
||
FROM res_srtartikel_onrgoed og, alg_ruimte ra, alg_verdieping rv
|
||
WHERE og.alg_onrgoed_key = rv.alg_gebouw_key
|
||
AND ra.alg_verdieping_key = rv.alg_verdieping_key
|
||
AND og.alg_onrgoed_niveau = 'G'
|
||
AND og.res_srtartikel_og_verwijder IS NULL
|
||
AND ra.alg_ruimte_key IS NOT NULL
|
||
UNION
|
||
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
|
||
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
|
||
FROM res_srtartikel_onrgoed og, alg_ruimte ra
|
||
WHERE og.alg_onrgoed_key = ra.alg_ruimte_key
|
||
AND og.alg_onrgoed_niveau = 'R'
|
||
AND og.res_srtartikel_og_verwijder IS NULL
|
||
AND ra.alg_ruimte_key IS NOT NULL;
|
||
|
||
CREATE_VIEW(res_v_srtartikel_onrgoed_scope, 0)
|
||
AS
|
||
WITH onrgoed AS
|
||
(SELECT alg_onroerendgoed_keys
|
||
, alg_ruimte_key
|
||
, alg_verdieping_key
|
||
, alg_gebouw_key
|
||
, alg_locatie_key
|
||
FROM alg_v_allonroerendgoed
|
||
WHERE alg_type = 'R'
|
||
)
|
||
, scope AS
|
||
(SELECT ar.alg_onroerendgoed_keys
|
||
, so.res_discipline_key
|
||
, 'R' alg_onrgoed_niveau
|
||
, ar.alg_ruimte_key AS alg_onrgoed_key
|
||
, so.res_srtartikel_og_ingangsdatum
|
||
, so.res_srtartikel_og_vervaldatum
|
||
, so.res_srtartikel_og_verwijder
|
||
FROM onrgoed ar
|
||
, res_srtartikel_onrgoed so
|
||
WHERE so.alg_onrgoed_niveau = 'R'
|
||
AND so.alg_onrgoed_key = ar.alg_ruimte_key
|
||
UNION ALL
|
||
SELECT ar.alg_onroerendgoed_keys
|
||
, so.res_discipline_key
|
||
, 'V'
|
||
, ar.alg_verdieping_key
|
||
, so.res_srtartikel_og_ingangsdatum
|
||
, so.res_srtartikel_og_vervaldatum
|
||
, so.res_srtartikel_og_verwijder
|
||
FROM onrgoed ar
|
||
, res_srtartikel_onrgoed so
|
||
WHERE so.alg_onrgoed_niveau = 'V'
|
||
AND so.alg_onrgoed_key = ar.alg_verdieping_key
|
||
UNION ALL
|
||
SELECT ar.alg_onroerendgoed_keys
|
||
, so.res_discipline_key
|
||
, 'G'
|
||
, ar.alg_gebouw_key
|
||
, so.res_srtartikel_og_ingangsdatum
|
||
, so.res_srtartikel_og_vervaldatum
|
||
, so.res_srtartikel_og_verwijder
|
||
FROM onrgoed ar
|
||
, res_srtartikel_onrgoed so
|
||
WHERE so.alg_onrgoed_niveau = 'G'
|
||
AND so.alg_onrgoed_key = ar.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT ar.alg_onroerendgoed_keys
|
||
, so.res_discipline_key
|
||
, 'L'
|
||
, ar.alg_locatie_key
|
||
, so.res_srtartikel_og_ingangsdatum
|
||
, so.res_srtartikel_og_vervaldatum
|
||
, so.res_srtartikel_og_verwijder
|
||
FROM onrgoed ar
|
||
, res_srtartikel_onrgoed so
|
||
WHERE so.alg_onrgoed_niveau = 'L'
|
||
AND so.alg_onrgoed_key = ar.alg_locatie_key
|
||
)
|
||
, ranked AS
|
||
(SELECT scope.*
|
||
, ROW_NUMBER() OVER
|
||
(PARTITION BY scope.alg_onroerendgoed_keys
|
||
, scope.res_discipline_key
|
||
ORDER BY CASE scope.alg_onrgoed_niveau
|
||
WHEN 'R' THEN 1
|
||
WHEN 'V' THEN 2
|
||
WHEN 'G' THEN 3
|
||
WHEN 'L' THEN 4
|
||
END
|
||
) AS rank_nr
|
||
FROM scope
|
||
)
|
||
SELECT alg_onroerendgoed_keys
|
||
, res_discipline_key
|
||
, alg_onrgoed_niveau
|
||
, alg_onrgoed_key
|
||
, res_srtartikel_og_ingangsdatum
|
||
, res_srtartikel_og_vervaldatum
|
||
, res_srtartikel_og_verwijder
|
||
FROM ranked
|
||
WHERE rank_nr = 1;
|
||
|
||
|
||
CREATE_VIEW(fac_v_my_res_rooms, 0) AS
|
||
SELECT res_ruimte_key,
|
||
prs_perslid_key,
|
||
niveau
|
||
FROM fac_v_my_rooms fr, res_alg_ruimte ar
|
||
WHERE fr.alg_ruimte_key = ar.alg_ruimte_key
|
||
AND ar.res_alg_ruimte_verwijder IS NULL
|
||
UNION
|
||
SELECT res_ruimte_key, prs_perslid_key, -1
|
||
FROM res_v_aanwezigruimte, prs_v_aanwezigperslid;
|
||
|
||
CREATE_VIEW(res_v_deelscope, 0)
|
||
(res_deel_key,
|
||
res_deel_alg_level,
|
||
alg_regio_key,
|
||
alg_district_key,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_verdieping_key,
|
||
alg_ruimte_key
|
||
)
|
||
AS
|
||
SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL)
|
||
FROM res_deel rd, ins_deel id
|
||
WHERE rd.res_ins_deel_key = id.ins_deel_key
|
||
AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) IN ('R', 'T')
|
||
AND rd.res_deel_alg_level = -1
|
||
UNION ALL
|
||
SELECT res_deel_key, res_deel_alg_level, alg_regio_key, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL)
|
||
FROM res_deel rd, ins_deel ID, alg_locatie l, alg_district d
|
||
WHERE rd.res_ins_deel_key = ID.ins_deel_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND alg_locatie_key = ins_alg_locatie_key
|
||
AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) IN ('R', 'T')
|
||
AND rd.res_deel_alg_level = 0
|
||
UNION ALL
|
||
SELECT res_deel_key, res_deel_alg_level, to_number(NULL), alg_district_key, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL)
|
||
FROM res_deel rd, ins_deel ID, alg_locatie l
|
||
WHERE rd.res_ins_deel_key = ID.ins_deel_key
|
||
AND alg_locatie_key = ins_alg_locatie_key
|
||
AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) IN ('R', 'T')
|
||
AND rd.res_deel_alg_level = 1
|
||
UNION ALL
|
||
SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), ins_alg_locatie_key, to_number(NULL), to_number(NULL), to_number(NULL)
|
||
FROM res_deel rd, ins_deel ID
|
||
WHERE rd.res_ins_deel_key = ID.ins_deel_key
|
||
AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) IN ('R', 'T')
|
||
AND rd.res_deel_alg_level = 2
|
||
UNION ALL
|
||
SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), to_number(NULL), alg_gebouw_key, to_number(NULL), to_number(NULL)
|
||
FROM res_deel rd, ins_deel ID, alg_ruimte r, alg_verdieping v
|
||
WHERE rd.res_ins_deel_key = ID.ins_deel_key
|
||
AND COALESCE(ID.ins_alg_ruimte_key_org, ID.ins_alg_ruimte_key) = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) = 'R'
|
||
AND rd.res_deel_alg_level = 3
|
||
UNION ALL
|
||
SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), alg_verdieping_key, to_number(NULL)
|
||
FROM res_deel rd, ins_deel ID, alg_ruimte r
|
||
WHERE rd.res_ins_deel_key = ID.ins_deel_key
|
||
AND COALESCE(ID.ins_alg_ruimte_key_org, ID.ins_alg_ruimte_key) = r.alg_ruimte_key
|
||
AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) = 'R'
|
||
AND rd.res_deel_alg_level = 4
|
||
UNION ALL
|
||
SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), COALESCE(ins_alg_ruimte_key_org, ins_alg_ruimte_key)
|
||
FROM res_deel rd, ins_deel id
|
||
WHERE rd.res_ins_deel_key = id.ins_deel_key
|
||
AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) = 'R'
|
||
AND rd.res_deel_alg_level = 5;
|
||
|
||
// Oracle 11g kent pas een PIVOT dus nog even behelpen
|
||
CREATE OR REPLACE FORCE VIEW RES_V_RES_DAG_BEZETTING AS
|
||
select res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
res_ruimte_opstel_key,
|
||
res_rsv_ruimte_dirtlevel,
|
||
res_rsv_ruimte_verwijder,
|
||
res_rsv_ruimte_key,
|
||
res_status_fo_key,
|
||
sum(decode(uurnum, 0,n_uur)) n0,
|
||
sum(decode(uurnum, 1,n_uur)) n1,
|
||
sum(decode(uurnum, 2,n_uur)) n2,
|
||
sum(decode(uurnum, 3,n_uur)) n3,
|
||
sum(decode(uurnum, 4,n_uur)) n4,
|
||
sum(decode(uurnum, 5,n_uur)) n5,
|
||
sum(decode(uurnum, 6,n_uur)) n6,
|
||
sum(decode(uurnum, 7,n_uur)) n7,
|
||
sum(decode(uurnum, 8,n_uur)) n8,
|
||
sum(decode(uurnum, 9,n_uur)) n9,
|
||
sum(decode(uurnum,10,n_uur)) n10,
|
||
sum(decode(uurnum,11,n_uur)) n11,
|
||
sum(decode(uurnum,12,n_uur)) n12,
|
||
sum(decode(uurnum,13,n_uur)) n13,
|
||
sum(decode(uurnum,14,n_uur)) n14,
|
||
sum(decode(uurnum,15,n_uur)) n15,
|
||
sum(decode(uurnum,16,n_uur)) n16,
|
||
sum(decode(uurnum,17,n_uur)) n17,
|
||
sum(decode(uurnum,18,n_uur)) n18,
|
||
sum(decode(uurnum,19,n_uur)) n19,
|
||
sum(decode(uurnum,20,n_uur)) n20,
|
||
sum(decode(uurnum,21,n_uur)) n21,
|
||
sum(decode(uurnum,22,n_uur)) n22,
|
||
sum(decode(uurnum,23,n_uur)) n23
|
||
FROM (
|
||
SELECT res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
res_ruimte_opstel_key,
|
||
res_rsv_ruimte_dirtlevel,
|
||
res_rsv_ruimte_verwijder,
|
||
res_rsv_ruimte_key,
|
||
res_status_fo_key,
|
||
uurnum,
|
||
case when res.van <= uurnum + 0.00 AND res.tot >= uurnum + 0.25 then 1/4 else 0 end +
|
||
case when res.van <= uurnum + 0.25 AND res.tot >= uurnum + 0.50 then 1/4 else 0 end +
|
||
case when res.van <= uurnum + 0.50 AND res.tot >= uurnum + 0.75 then 1/4 else 0 end +
|
||
case when res.van <= uurnum + 0.75 AND res.tot >= uurnum + 1.00 then 1/4 else 0 end n_uur
|
||
FROM (SELECT (res_rsv_ruimte_van - TRUNC (res_rsv_ruimte_van)) * 24 van,
|
||
(res_rsv_ruimte_tot - TRUNC (res_rsv_ruimte_tot)) * 24 tot,
|
||
res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
res_ruimte_opstel_key,
|
||
res_rsv_ruimte_dirtlevel,
|
||
res_rsv_ruimte_verwijder,
|
||
res_rsv_ruimte_key,
|
||
res_status_fo_key
|
||
FROM res_rsv_ruimte) res, ( SELECT LEVEL-1 uurnum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 24) uren)
|
||
GROUP BY res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
res_ruimte_opstel_key,
|
||
res_rsv_ruimte_dirtlevel,
|
||
res_rsv_ruimte_verwijder,
|
||
res_rsv_ruimte_key,
|
||
res_status_fo_key;
|
||
|
||
-- Algemeen bruikbare bronview voor infoborden
|
||
CREATE_VIEW (res_v_rap_infobord, 0)
|
||
(
|
||
aktief,
|
||
offset,
|
||
dag,
|
||
tijd_van,
|
||
tijd_tot,
|
||
ruimte,
|
||
catalogus,
|
||
aanvrager,
|
||
gastheer,
|
||
omschrijving,
|
||
status,
|
||
locatie_code,
|
||
gebouw_code,
|
||
verdieping_code,
|
||
locatie_omschrijving,
|
||
gebouw_omschrijving,
|
||
verdieping_omschrijving,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_verdieping_key
|
||
)
|
||
AS
|
||
SELECT (CASE WHEN res_rsv_ruimte_van > SYSDATE THEN 'expected'
|
||
WHEN res_rsv_ruimte_tot < SYSDATE THEN 'passed'
|
||
ELSE 'active'
|
||
END) aktief,
|
||
TRUNC ( (SYSDATE - res_rsv_ruimte_van) * 24 * 60) offset,
|
||
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
|
||
TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van,
|
||
TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
|
||
res_ruimte_nr ruimte,
|
||
ins_discipline_omschrijving catalogus,
|
||
aanvrager.prs_perslid_naam_full aanvrager,
|
||
gastheer.prs_perslid_naam_full gastheer,
|
||
res_rsv_ruimte_omschrijving omschrijving,
|
||
sf.res_status_fo_omschrijving status,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_code gebouw_code,
|
||
alg_verdieping_code verdieping_code,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
alg_gebouw_omschrijving gebouw_omschrijving,
|
||
alg_verdieping_omschrijving verdieping_omschrijving,
|
||
l.alg_locatie_key,
|
||
g.alg_gebouw_key,
|
||
v.alg_verdieping_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
prs_v_perslid_fullnames aanvrager,
|
||
prs_v_perslid_fullnames gastheer,
|
||
res_v_res_ruimte_gegevens rrg,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
res_status_fo sf,
|
||
res_discipline rd
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rrg.res_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
|
||
AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE)
|
||
AND rrg.alg_locatie_key = l.alg_locatie_key
|
||
AND rrg.alg_gebouw_key = g.alg_gebouw_key
|
||
AND rrg.alg_verdieping_key = v.alg_verdieping_key
|
||
AND rrr.res_status_fo_key = sf.res_status_fo_key
|
||
AND rrg.res_discipline_key = rd.ins_discipline_key;
|
||
|
||
-- DE DEFAULTVIEW GEBRUIKT VOOR HET INFOBORD (FAC_USRRAP MET KEY 12)
|
||
CREATE_VIEW (res_v_rap_infobordframe, 0)
|
||
(
|
||
tijd,
|
||
kamer,
|
||
omschrijving,
|
||
voorzitter,
|
||
hide_f_alg_locatie_key,
|
||
hide_f_alg_gebouw_key,
|
||
hide_f_alg_verdieping_key
|
||
)
|
||
AS
|
||
SELECT tijd_van || '-' || tijd_tot,
|
||
ruimte,
|
||
omschrijving,
|
||
gastheer,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_verdieping_key
|
||
FROM res_v_rap_infobord
|
||
WHERE (status = lcl.l('lcl_def') OR status = lcl.l('lcl_optie')) AND aktief <> 'passed' AND offset > -60;
|
||
|
||
|
||
/* ROOT VIEWS for User defined Reports (UDR) */
|
||
CREATE_VIEW(res_v_udr_reservering, 1)
|
||
(
|
||
key,
|
||
nummer,
|
||
res_omschrijving,
|
||
invoerdatum,
|
||
datum,
|
||
gastheer,
|
||
contact,
|
||
gastheer_email,
|
||
contact_email,
|
||
invoerder,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kpn,
|
||
kpn_omschrijving,
|
||
kpn_extern,
|
||
fclt_3d_divisie_key,
|
||
divisie_naam,
|
||
divisie_omschrijving,
|
||
fclt_3d_afdeling_key,
|
||
afdeling_code,
|
||
afdeling_omschrijving,
|
||
regio_omschrijving,
|
||
district_omschijving,
|
||
fclt_3d_locatie_key,
|
||
locatie,
|
||
locatie_omschrijving,
|
||
locatie_plaats,
|
||
gebouw,
|
||
gebouw_key,
|
||
verdieping,
|
||
ruimte,
|
||
opstelling,
|
||
capaciteit,
|
||
no_show,
|
||
actual_shown,
|
||
mandaat,
|
||
personeelsnr,
|
||
fclt_3d_discipline_key,
|
||
catalogus_key,
|
||
catalogus,
|
||
reserveerbare_ruimte,
|
||
bezoekers,
|
||
van,
|
||
tot,
|
||
localized_van,
|
||
localized_tot,
|
||
duur,
|
||
status,
|
||
bostatus,
|
||
activiteit,
|
||
srtactiviteit_key,
|
||
activiteitsoort,
|
||
opmerking,
|
||
visibility,
|
||
ruimte_prijs,
|
||
ruimte_korting
|
||
)
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_aanmaak,
|
||
rrr.res_rsv_ruimte_van,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
||
(SELECT ph.prs_perslid_email
|
||
FROM prs_perslid ph
|
||
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
||
(SELECT pc.prs_perslid_email
|
||
FROM prs_perslid pc
|
||
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
||
(SELECT pf.prs_perslid_naam_full
|
||
FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf
|
||
WHERE tr.prs_perslid_key = pf.prs_perslid_key
|
||
AND str.fac_srtnotificatie_code = 'RESNEW'
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM res_discipline disc
|
||
WHERE disc.ins_discipline_key =
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key)))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM res_discipline disc
|
||
WHERE disc.ins_discipline_key =
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key)))
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
k.prs_kostenplaats_extern,
|
||
an.prs_afdeling_key,
|
||
an.prs_afdeling_naam,
|
||
an.prs_afdeling_omschrijving,
|
||
a.prs_afdeling_key,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
rg.alg_regio_omschrijving,
|
||
d.alg_district_omschrijving,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_plaats,
|
||
g.alg_gebouw_code,
|
||
g.alg_gebouw_key,
|
||
v.alg_verdieping_code,
|
||
r2a.ruimte_nr,
|
||
r2a.opstelling,
|
||
r2a.capaciteit,
|
||
rrr.res_rsv_ruimte_noshow,
|
||
rrr.res_rsv_ruimte_bezoekers_shown,
|
||
NVL ( (SELECT pr.fac_profiel_limiet
|
||
FROM fac_profiel pr
|
||
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
|
||
prs_perslid_nr,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
(SELECT ins_discipline_omschrijving
|
||
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
|
||
rrr.res_rsv_ruimte_bezoekers,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
(SELECT CAST (
|
||
FROM_TZ (CAST (rrr.res_rsv_ruimte_van AS TIMESTAMP),
|
||
fac.getsetting ('fac_server_timezone'))
|
||
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
|
||
fac.getsetting ('fac_server_timezone'))
|
||
AS DATE)
|
||
FROM DUAL),
|
||
(SELECT CAST (
|
||
FROM_TZ (CAST (rrr.res_rsv_ruimte_tot AS TIMESTAMP),
|
||
fac.getsetting ('fac_server_timezone'))
|
||
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
|
||
fac.getsetting ('fac_server_timezone'))
|
||
AS DATE)
|
||
FROM DUAL),
|
||
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
|
||
(SELECT res_status_fo_omschrijving
|
||
FROM res_status_fo rs
|
||
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
|
||
(SELECT res_status_bo_omschrijving
|
||
FROM res_status_bo rs
|
||
WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
|
||
ra.res_activiteit_omschrijving,
|
||
rsa.res_srtactiviteit_key,
|
||
rsa.res_srtactiviteit_omschrijving,
|
||
rrr.res_rsv_ruimte_opmerking,
|
||
rrr.res_rsv_ruimte_visibility,
|
||
res.getruimteprijs(rrr.res_rsv_ruimte_key),
|
||
rrr.res_rsv_ruimte_korting
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
res_srtactiviteit rsa,
|
||
res_reservering res,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_afdeling an,
|
||
prs_v_afdeling_boom ab,
|
||
( SELECT res_rsv_ruimte_key,
|
||
MAX (o.res_opstelling_omschrijving) opstelling,
|
||
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
|
||
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
||
MAX (rr.res_ruimte_nr) ruimte_nr
|
||
FROM res_rsv_ruimte r,
|
||
res_ruimte_opstelling ro,
|
||
res_opstelling o,
|
||
res_ruimte rr,
|
||
res_alg_ruimte ra
|
||
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
||
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND ro.res_opstelling_key = o.res_opstelling_key
|
||
AND rr.res_ruimte_key = ra.res_ruimte_key
|
||
GROUP BY res_rsv_ruimte_key
|
||
UNION ALL
|
||
SELECT res_rsv_ruimte_key,
|
||
'' opstelling,
|
||
NULL capaciteit,
|
||
rrr.alg_ruimte_key,
|
||
r.alg_ruimte_nr
|
||
FROM res_rsv_ruimte rrr, alg_ruimte r
|
||
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_regio rg
|
||
WHERE rrr.res_reservering_key = res.res_reservering_key
|
||
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
|
||
AND r2a.alg_ruimte_key = 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 l.alg_district_key = d.alg_district_key(+)
|
||
AND d.alg_regio_key = rg.alg_regio_key(+)
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
||
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = an.prs_afdeling_key
|
||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
|
||
|
||
CREATE_VIEW(res_v_udr_reserveringincl, 1)
|
||
(
|
||
key,
|
||
nummer,
|
||
res_omschrijving,
|
||
invoerdatum,
|
||
datum,
|
||
gastheer,
|
||
zichtbare_gastheer,
|
||
contact,
|
||
gastheer_email,
|
||
contact_email,
|
||
invoerder,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kpn,
|
||
kpn_omschrijving,
|
||
kpn_extern,
|
||
fclt_3d_divisie_key,
|
||
divisie_naam,
|
||
divisie_omschrijving,
|
||
fclt_3d_afdeling_key,
|
||
afdeling_code,
|
||
afdeling_omschrijving,
|
||
regio_omschrijving,
|
||
district_omschijving,
|
||
fclt_3d_locatie_key,
|
||
locatie,
|
||
locatie_omschrijving,
|
||
locatie_plaats,
|
||
gebouw,
|
||
verdieping,
|
||
ruimte,
|
||
opstelling,
|
||
capaciteit,
|
||
no_show,
|
||
actual_shown,
|
||
mandaat,
|
||
personeelsnr,
|
||
fclt_3d_discipline_key,
|
||
catalogus_key,
|
||
catalogus,
|
||
reserveerbare_ruimte,
|
||
bezoekers,
|
||
van,
|
||
tot,
|
||
localized_van,
|
||
localized_tot,
|
||
duur,
|
||
status,
|
||
bostatus,
|
||
activiteit,
|
||
srtactiviteit_key,
|
||
activiteitsoort,
|
||
opmerking,
|
||
visibility,
|
||
bezorgmode,
|
||
voorziening_discipline_key,
|
||
voorziening_type,
|
||
voorziening_catalogus,
|
||
leverancier,
|
||
voorziening_product_key,
|
||
voorziening_product,
|
||
voorziening_totaalprijs,
|
||
voorziening_van,
|
||
voorziening_tot,
|
||
voorziening_aantal,
|
||
voorziening_prijs
|
||
)
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
|
||
rrr.res_rsv_ruimte_van,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
||
DECODE (p.prs_perslid_visibility,
|
||
1, (SELECT prs_perslid_naam_friendly
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
||
a.prs_afdeling_omschrijving) zichtbare_gastheer,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
||
(SELECT ph.prs_perslid_email
|
||
FROM prs_perslid ph
|
||
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
||
(SELECT pc.prs_perslid_email
|
||
FROM prs_perslid pc
|
||
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
||
(SELECT pf.prs_perslid_naam_full
|
||
FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf
|
||
WHERE tr.prs_perslid_key = pf.prs_perslid_key
|
||
AND str.fac_srtnotificatie_code = 'RESNEW'
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM res_discipline disc
|
||
WHERE disc.ins_discipline_key =
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key))))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM res_discipline disc
|
||
WHERE disc.ins_discipline_key =
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key))))
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
k.prs_kostenplaats_extern,
|
||
an.prs_afdeling_key,
|
||
an.prs_afdeling_naam,
|
||
an.prs_afdeling_omschrijving,
|
||
a.prs_afdeling_key,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
rg.alg_regio_omschrijving,
|
||
d.alg_district_omschrijving,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_plaats,
|
||
g.alg_gebouw_code,
|
||
v.alg_verdieping_code,
|
||
r2a.ruimte_nr,
|
||
r2a.opstelling,
|
||
r2a.capaciteit,
|
||
rrr.res_rsv_ruimte_noshow,
|
||
rrr.res_rsv_ruimte_bezoekers_shown,
|
||
NVL ( (SELECT pr.fac_profiel_limiet
|
||
FROM fac_profiel pr
|
||
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
|
||
prs_perslid_nr,
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key)),
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
(SELECT ins_discipline_omschrijving
|
||
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
|
||
rrr.res_rsv_ruimte_bezoekers,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
(SELECT CAST (
|
||
FROM_TZ (CAST (rrr.res_rsv_ruimte_van AS TIMESTAMP),
|
||
fac.getsetting ('fac_server_timezone'))
|
||
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
|
||
fac.getsetting ('fac_server_timezone'))
|
||
AS DATE)
|
||
FROM DUAL),
|
||
(SELECT CAST (
|
||
FROM_TZ (CAST (rrr.res_rsv_ruimte_tot AS TIMESTAMP),
|
||
fac.getsetting ('fac_server_timezone'))
|
||
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
|
||
fac.getsetting ('fac_server_timezone'))
|
||
AS DATE)
|
||
FROM DUAL),
|
||
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
|
||
(SELECT res_status_fo_omschrijving
|
||
FROM res_status_fo rs
|
||
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
|
||
(SELECT res_status_bo_omschrijving
|
||
FROM res_status_bo rs
|
||
WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
|
||
ra.res_activiteit_omschrijving,
|
||
rsa.res_srtactiviteit_key,
|
||
rsa.res_srtactiviteit_omschrijving,
|
||
rrr.res_rsv_ruimte_opmerking,
|
||
rrr.res_rsv_ruimte_visibility,
|
||
DECODE(rrr.res_rsv_ruimte_cvab_mode, 0, lcl.l('lcl_res_afhalen'), 1, lcl.l('lcl_res_bezorgen'), ''),
|
||
voorz.ins_discipline_key,
|
||
voorz.vtype,
|
||
voorz.catalogus,
|
||
(SELECT prs_bedrijf_naam
|
||
FROM res_disc_params rdp, prs_bedrijf b
|
||
WHERE rdp.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND rdp.res_ins_discipline_key = voorz.ins_discipline_key),
|
||
voorz.product_key,
|
||
voorz.product,
|
||
voorz.totaalprijs,
|
||
TO_CHAR (voorz.van, 'hh24:mi'),
|
||
TO_CHAR (voorz.tot, 'hh24:mi'),
|
||
voorz.aantal,
|
||
voorz.prijs
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
res_srtactiviteit rsa,
|
||
res_reservering res,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_afdeling an,
|
||
prs_v_afdeling_boom ab,
|
||
( SELECT res_rsv_ruimte_key,
|
||
MAX (o.res_opstelling_omschrijving) opstelling,
|
||
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
|
||
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
||
MAX (rr.res_ruimte_nr) ruimte_nr
|
||
FROM res_rsv_ruimte r,
|
||
res_ruimte_opstelling ro,
|
||
res_opstelling o,
|
||
res_ruimte rr,
|
||
res_alg_ruimte ra
|
||
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
||
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND ro.res_opstelling_key = o.res_opstelling_key
|
||
AND rr.res_ruimte_key = ra.res_ruimte_key
|
||
GROUP BY res_rsv_ruimte_key
|
||
UNION ALL
|
||
SELECT res_rsv_ruimte_key,
|
||
'' opstelling,
|
||
NULL capaciteit,
|
||
rrr.alg_ruimte_key,
|
||
r.alg_ruimte_nr
|
||
FROM res_rsv_ruimte rrr, alg_ruimte r
|
||
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
|
||
(SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
|
||
-rd.res_deel_key product_key,
|
||
rd.res_deel_omschrijving product,
|
||
DECODE (
|
||
rd.res_deel_prijs_vast,
|
||
1,
|
||
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
|
||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
||
* 24
|
||
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
|
||
totaalprijs,
|
||
rrd.res_rsv_deel_van van,
|
||
rrd.res_rsv_deel_tot tot,
|
||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
|
||
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs,
|
||
c.ins_discipline_key ins_discipline_key,
|
||
c.ins_discipline_omschrijving catalogus,
|
||
'object' vtype
|
||
FROM res_v_aanwezigrsv_deel rrd,
|
||
res_deel rd,
|
||
ins_deel d,
|
||
ins_tab_discipline c
|
||
WHERE rrd.res_deel_key = rd.res_deel_key
|
||
AND d.ins_deel_key = rd.res_ins_deel_key
|
||
AND rrd.res_rsv_ruimte_key IS NOT NULL
|
||
AND c.ins_discipline_key = rd.res_discipline_key
|
||
UNION ALL
|
||
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
|
||
ra.res_artikel_key product_key,
|
||
ra.res_artikel_omschrijving product,
|
||
NVL (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * res_artikel_prijs)
|
||
totaalprijs,
|
||
rra.res_rsv_artikel_levering van,
|
||
NULL tot,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
NVL (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal, res_artikel_prijs)
|
||
prijs,
|
||
c.ins_discipline_key ins_discipline_key,
|
||
c.ins_discipline_omschrijving catalogus,
|
||
'consumable' vtype
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = c.ins_discipline_key) voorz,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_regio rg
|
||
WHERE rrr.res_reservering_key = res.res_reservering_key
|
||
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
|
||
AND r2a.alg_ruimte_key = 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 l.alg_district_key = d.alg_district_key(+)
|
||
AND d.alg_regio_key = rg.alg_regio_key(+)
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
|
||
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
||
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = an.prs_afdeling_key
|
||
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
|
||
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
|
||
|
||
-- Om een goede bezettingsgraad te kunnen leveren zijn onderstaande views gegenereerd
|
||
-- Deze houdt rekening met werkplekreserveringen in een ruimte, en telt dan het aantal bezettingen
|
||
-- Alles op basis van reserveringen. BIj INS gebeurt iets vergelijkbaars obv sensorinfo.
|
||
-- De performance is een risico omdat er per ruimte/werkplek (max, als 24x7) 13.000 halfuurbuckets
|
||
-- worden bepaald. We moeten dus nog gaan zien of we deze standaard gaan tonen, wellicht na een vinkje.
|
||
-- Maar dan zijn ze als voorbeeld (en toets/beloning op inrichting cf. richtlijnen) beschikbaar.
|
||
/*
|
||
-- Desk-reserveringen (werkplekken) via 30-minuut-buckets:
|
||
-- 1) res_v_desk_reservation_buckets:
|
||
-- Genereer alle 30-min-buckets voor sysdate-90 tot sysdate binnen kantoortijden
|
||
-- (ma-vr, geen feestdagen). Breek alle werkplekreserveringen op in deze buckets.
|
||
-- OUTPUT: alg_ruimte_key, bucket_start, reserved_count (aantal werkplekken gereserveerd).
|
||
--
|
||
-- 2) res_v_desk_reservation_stats:
|
||
-- Toon per bucket en ruimte het aantal werkplekreserveringen.
|
||
--
|
||
-- 3) res_v_desk_reservation_kpis:
|
||
-- KPI<50>s per ruimte:
|
||
-- total_reserved_hours_desk = som(reserved_count <20> 0.5u)
|
||
-- avg_reserved_count = gem. aantal gelijktijdige desk-reserveringen
|
||
-- peak_reserved_count = max gelijktijdige desk-reserveringen
|
||
*/
|
||
|
||
CREATE_VIEW(res_v_desk_reservation_buckets, 0)
|
||
AS
|
||
WITH
|
||
intervals
|
||
AS
|
||
( SELECT TRUNC (SYSDATE - 90) + NUMTODSINTERVAL ((ROWNUM - 1) * 30, 'MINUTE') AS bucket_start
|
||
FROM DUAL
|
||
CONNECT BY ROWNUM <= ((SYSDATE - (SYSDATE - 90)) * 24 * 60 / 30)),
|
||
valid_buckets
|
||
AS
|
||
(SELECT bucket_start
|
||
FROM intervals
|
||
WHERE (TO_NUMBER (TO_CHAR (bucket_start, 'HH24')) + TO_NUMBER (TO_CHAR (bucket_start, 'MI')) / 60) BETWEEN fac.getsetting ('fac_t_startofworkday')
|
||
AND fac.getsetting ('fac_t_endofworkday')
|
||
AND TO_CHAR (bucket_start, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') NOT IN ('SAT', 'SUN')
|
||
AND TRUNC (bucket_start) NOT IN (SELECT mld_vrije_dagen_datum FROM mld_vrije_dagen)),
|
||
desk_res
|
||
AS
|
||
(SELECT r.alg_ruimte_key AS alg_ruimte_key, rd.res_rsv_deel_van AS start_dt, rd.res_rsv_deel_tot AS end_dt
|
||
FROM res_rsv_ruimte r
|
||
JOIN res_rsv_deel rd ON rd.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
||
JOIN res_deel d ON d.res_deel_key = rd.res_deel_key
|
||
JOIN res_discipline dis ON dis.ins_discipline_key = d.res_discipline_key
|
||
WHERE r.res_rsv_ruimte_dirtlevel = 0
|
||
AND r.res_status_fo_key IN (1, 2)
|
||
AND r.res_ruimte_opstel_key IS NULL
|
||
AND r.res_rsv_ruimte_verwijder IS NULL
|
||
AND dis.ins_discipline_min_level = 5
|
||
AND rd.res_rsv_deel_van < SYSDATE
|
||
AND rd.res_rsv_deel_tot > SYSDATE - 90),
|
||
bucket_assign
|
||
AS
|
||
(SELECT vb.bucket_start, dr.alg_ruimte_key
|
||
FROM valid_buckets vb JOIN desk_res dr ON dr.start_dt < vb.bucket_start + INTERVAL '30' MINUTE AND dr.end_dt > vb.bucket_start)
|
||
SELECT alg_ruimte_key, bucket_start, COUNT (*) AS reserved_count
|
||
FROM bucket_assign
|
||
GROUP BY alg_ruimte_key, bucket_start;
|
||
|
||
CREATE_VIEW(res_v_desk_reservation_stats, 0)
|
||
AS
|
||
SELECT rdb.alg_ruimte_key, rdb.bucket_start, rdb.reserved_count
|
||
FROM res_v_desk_reservation_buckets rdb;
|
||
|
||
CREATE_VIEW(res_v_desk_reservation_kpis, 0)
|
||
AS
|
||
SELECT alg_ruimte_key
|
||
, SUM (reserved_count * 0.5) AS total_reserved_hours_desk
|
||
, ROUND (AVG (reserved_count), 1) AS avg_reserved_count_desk
|
||
, MAX (reserved_count) AS peak_reserved_count_desk
|
||
FROM res_v_desk_reservation_stats
|
||
GROUP BY alg_ruimte_key;
|
||
|
||
/*
|
||
-- Kamerreserveringen (ruimtes) via eenvoudige KPI-berekening:
|
||
-- 4) res_v_room_simple_kpis:
|
||
-- Direct berekening per ruimte:<br>-- total_reserved_hours_room = som uren binnen kantoortijden</br>
|
||
-- avg_reservation_duration_hours (uren, 1 decimaal)
|
||
-- max_reservation_duration_hours
|
||
-- Hierbij worden reserveringstijden per record afgeknipt met GREATEST/LEAST
|
||
*/
|
||
|
||
CREATE_VIEW(res_v_room_simple_kpis, 0)
|
||
AS
|
||
SELECT rar.alg_ruimte_key
|
||
AS alg_ruimte_key
|
||
, SUM (
|
||
LEAST (r.res_rsv_ruimte_tot, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_endofworkday'), 'HOUR'))
|
||
- GREATEST (r.res_rsv_ruimte_van, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_startofworkday'), 'HOUR')))
|
||
* 24
|
||
AS total_reserved_hours_room
|
||
, -- gemiddelde reserveringsduur in uren (1 decimaal)
|
||
ROUND (
|
||
AVG (
|
||
( LEAST (r.res_rsv_ruimte_tot, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_endofworkday'), 'HOUR'))
|
||
- GREATEST (r.res_rsv_ruimte_van, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_startofworkday'), 'HOUR')))
|
||
* 24)
|
||
, 1)
|
||
AS avg_reservation_duration_hours
|
||
, -- gemiddelde aantal personen per reservering
|
||
ROUND (AVG (COALESCE (r.res_rsv_ruimte_bezoekers_shown, r.res_rsv_ruimte_bezoekers)), 1)
|
||
AS avg_persons_per_reservation
|
||
FROM res_rsv_ruimte r
|
||
JOIN res_ruimte_opstelling ro ON ro.res_ruimte_opstel_key = r.res_ruimte_opstel_key
|
||
JOIN res_ruimte ru ON ru.res_ruimte_key = ro.res_ruimte_key
|
||
JOIN res_alg_ruimte rar ON rar.res_ruimte_key = ru.res_ruimte_key
|
||
WHERE r.res_rsv_ruimte_dirtlevel = 0
|
||
AND r.res_status_fo_key IN (1, 2)
|
||
AND r.res_rsv_ruimte_verwijder IS NULL
|
||
AND r.res_rsv_ruimte_van < SYSDATE
|
||
AND r.res_rsv_ruimte_tot > SYSDATE - 90
|
||
GROUP BY rar.alg_ruimte_key;
|
||
|
||
|
||
REGISTERRUN('$Id$')
|
||
#endif // RES
|