FSN#27309 Informatiebord reserveringen betere defaults

svn path=/Database/trunk/; revision=18936
This commit is contained in:
Peter Feij
2013-08-30 14:57:22 +00:00
parent de429e7a98
commit 9746088a7a
5 changed files with 160 additions and 17 deletions

View File

@@ -37,8 +37,6 @@ INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_leg
VALUES (2,'99','FF0000','99');
/* zijn de functies hier al bekend? */
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
SELECT 'Ruimtefunctie', 1, 'cad_v_thema_srtruimte', 1, fac_functie_key
FROM fac_functie
@@ -54,6 +52,27 @@ INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view,
FROM fac_functie
WHERE fac_functie_code = 'WEB_MLDBAC';
INSERT INTO CAD_THEMA
( CAD_THEMA_OMSCHRIJVING, CAD_LEGENDA_KEY, CAD_THEMA_VIEW, CAD_THEMA_TYPE, fac_functie_key )
SELECT 'Bezetting: aantal werkplekken', 1, 'CAD_V_THEMA_AANTALWP', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_PRSBOF';
INSERT INTO CAD_THEMA
( CAD_THEMA_OMSCHRIJVING, CAD_LEGENDA_KEY, CAD_THEMA_VIEW,CAD_THEMA_TYPE, fac_functie_key )
SELECT 'Oppervlakte: Gemiddeld/werkplek', 1, 'CAD_V_THEMA_WPOPP', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_PRSBOF';
-- NB: deze gaat met vaste key 12, een harde default voor infobord.
INSERT INTO cad_thema
( cad_thema_key, cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key )
SELECT 12, 'Actuele bezetting', 1, 'cad_v_thema_srtruimtesensor', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_RESFOF';
-- De cad_thema_key sequence gaat later vanzelf wel verder met 21.
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
SELECT 'Ruimtefunctie/opp', 'cad_v_label_srtruimteopp', 1, fac_functie_key, 360
@@ -65,16 +84,6 @@ INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, f
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSUSE';
INSERT INTO CAD_THEMA
( CAD_THEMA_OMSCHRIJVING, CAD_LEGENDA_KEY, CAD_THEMA_VIEW, CAD_THEMA_TYPE, fac_functie_key )
SELECT 'Bezetting: aantal werkplekken', 1, 'CAD_V_THEMA_AANTALWP', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_PRSBOF';
INSERT INTO CAD_THEMA
( CAD_THEMA_OMSCHRIJVING, CAD_LEGENDA_KEY, CAD_THEMA_VIEW,CAD_THEMA_TYPE, fac_functie_key )
SELECT 'Oppervlakte: Gemiddeld/werkplek', 1, 'CAD_V_THEMA_WPOPP', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_PRSBOF';
INSERT INTO CAD_LABEL
( CAD_LABEL_OMSCHRIJVING, CAD_LABEL_VIEW, CAD_LABEL_TYPE, CAD_LABEL_SIZE, FAC_FUNCTIE_KEY )
SELECT 'Werkplekken', 'cad_v_label_werkplekken', '1', 800, fac_functie_key
@@ -91,6 +100,14 @@ INSERT INTO CAD_LABEL
from fac_functie
where fac_functie_code = 'WEB_ALGUSE';
-- NB: deze gaat met vaste key 12, een harde default voor infobord.
INSERT INTO cad_label
( cad_label_key, cad_label_omschrijving, cad_label_view, cad_label_type, cad_label_size, fac_functie_key )
SELECT 12, 'Flexibele ruimtes', 'cad_v_label_bezetbareruimtes', '1', -500, fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_RESFOF';
-- De cad_label_key sequence gaat later vanzelf wel verder met 21.
REGISTERONCE('$Workfile: CAD_INI.SRC $','$Revision$')
#endif // CAD

View File

@@ -628,6 +628,32 @@ AS
blokkerend.res_ruimte_opstel_key(+))
GROUP BY alg_ruimte_key;
-- Reserveerbare ruimtes label thema, toont de ruimtenaam van
-- ruimtes die reserveerbaar zijn, hetzij door een reservering,
-- hetzij door een sensor
-- DEZE VIEW WORDT STANDAARD GEBRUIKT ALS DEFAULT THEMA VOOR HET INFOBORD
CREATE_VIEW(cad_v_label_bezetbareruimtes, 0)
(
alg_ruimte_key,
waarde
)
AS
SELECT rar.alg_ruimte_key, MIN (res_ruimte_nr) waarde
FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rar
WHERE rro.res_ruimte_key = rr.res_ruimte_key
AND rar.res_ruimte_key = rr.res_ruimte_key
AND rar.res_alg_ruimte_verwijder IS NULL
GROUP BY rar.alg_ruimte_key
UNION
SELECT alg_ruimte_key, alg_ruimte_nr
FROM alg_ruimte r, ins_deel
WHERE ins_alg_ruimte_key = alg_ruimte_key
AND ins_alg_ruimte_type = 'R'
AND ins_deel_state IS NOT NULL
AND NOT EXISTS (SELECT ''
FROM res_alg_ruimte
WHERE alg_ruimte_key = r.alg_ruimte_key);
-- Reserveerbare ruimtes label thema
-- Let op: Toont *eerstvolgende* reservering als die binnen een uur begint
CREATE_VIEW(cad_v_label_ruimte_reservering,0)
@@ -717,6 +743,72 @@ AS
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_deel_state IS NOT NULL;
-- Kleurenthema dat reserveringen en actuele bezetting weergeeft
-- Geeft van de overige ruimte de ruimtesoort terug
-- DEZE VIEW WORDT STANDAARD GEBRUIKT ALS DEFAULT THEMA VOOR HET INFOBORD
CREATE_VIEW(cad_v_thema_srtruimtesensor, 0)
(
alg_ruimte_key,
waarde
)
AS
-- zalen met een sensor
SELECT r.alg_ruimte_key,
DECODE (
INITCAP (d.ins_deel_state),
'Uit', -- als de sensor uit is kijken we naar de reservering
DECODE (r2a.res_reservering_key,
NULL, 'Uit', -- als er geen reservering gescheduled staat is de status uit
DECODE (eerste10min, 1, 'Aan', 'NoShow')), -- in de eerste 10 minuten v/d reservering melden we nog geen noshow
'Aan')
status
FROM alg_ruimte r,
ins_deel d,
(SELECT rr2a.res_reservering_key,
rr2a.alg_ruimte_key,
CASE WHEN (SYSDATE - res_rsv_ruimte_van > 10 / 1440)
THEN 0
ELSE 1
END eerste10min
FROM res_v_rsv_ruimte_2_alg_ruimte rr2a
WHERE res_rsv_ruimte_dirtlevel = 0
AND rr2a.res_alg_ruimte_verwijder IS NULL
AND rr2a.res_rsv_ruimte_van < SYSDATE
AND rr2a.res_rsv_ruimte_tot > SYSDATE) r2a
WHERE r.alg_ruimte_verwijder IS NULL
AND d.ins_deel_verwijder IS NULL
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_deel_state IS NOT NULL
AND r.alg_ruimte_key = r2a.alg_ruimte_key(+)
UNION ALL -- en dan de ruimten zonder sensor
SELECT r.alg_ruimte_key,
DECODE (rr.res_ruimte_key, -- is dit een vergaderruimte?
NULL, '*' || sr.alg_srtruimte_omschrijving,
DECODE (r2a.res_reservering_key, NULL, 'Uit', 'Aan'))
FROM alg_v_aanwezigruimte r,
alg_srtruimte sr,
(SELECT rr2a.res_reservering_key, rr2a.alg_ruimte_key
FROM res_v_rsv_ruimte_2_alg_ruimte rr2a
WHERE res_rsv_ruimte_dirtlevel = 0
AND rr2a.res_alg_ruimte_verwijder IS NULL
AND rr2a.res_rsv_ruimte_van < SYSDATE
AND rr2a.res_rsv_ruimte_tot > SYSDATE) r2a,
( SELECT alg_ruimte_key, MAX (res_ruimte_key) res_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY alg_ruimte_key) rr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_ruimte_key = r2a.alg_ruimte_key(+)
AND r.alg_ruimte_key = rr.alg_ruimte_key(+)
AND NOT EXISTS
(SELECT r.alg_ruimte_key
FROM ins_deel d
WHERE d.ins_deel_verwijder IS NULL
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_deel_state IS NOT NULL);
CREATE_VIEW(cad_v_thema_wpsensor,0)
(
prs_werkplek_key,