STCH#54706 -- Herstellen van graphics themas na opschoonactie

svn path=/Customer/trunk/; revision=40852
This commit is contained in:
Robin Stoker
2019-02-07 14:21:27 +00:00
parent 580d9a92fe
commit 06792096e4

View File

@@ -838,6 +838,160 @@ AS
f.fac_functie_code)
ORDER BY p.prs_perslid_naam;
--
-- GRAFISCH
--
CREATE OR REPLACE VIEW stch_v_thema_srtruimte
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT DISTINCT
r.alg_ruimte_key,
COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 221 -- omzettingstabel soortruimte naar omschrijving
AND alg_srtruimte_omschrijving LIKE
fac_usrdata_code || '%'),
'onbekend'),
NULL alg_srtruimte_key
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key;
-- views ter ondersteuning aan Facilitor graphics
-- sleepbaar thema om huurder aan thema te koppelen.
CREATE OR REPLACE VIEW stch_v_thema_ruimte_huurder (
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (y.aantal,
NULL, DECODE(verhuurbaar, 1, '[Leegstand]', '[Niet verhuurbaar]'),
1, SUBSTR (y.sp, 1, 60),
'Meer dan 1 huurder!'),
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
FROM (SELECT r.alg_ruimte_key, sr.prs_verhuurbaar verhuurbaar
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) x
LEFT JOIN
(SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) sp,
MIN (a.prs_afdeling_key) sp_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_naam <> 'Onbekend'
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key
UNION ALL
SELECT NULL, substr(a.prs_afdeling_naam1,1,60), a.prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE NOT EXISTS
(SELECT ra.prs_afdeling_key
FROM prs_ruimteafdeling ra
WHERE ra.prs_ruimteafdeling_verwijder IS NULL
AND ra.prs_afdeling_key = a.prs_afdeling_key)
AND a.prs_afdeling_naam <> 'Onbekend';
CREATE OR REPLACE TRIGGER stch_t_thema_ruimte_die_i_iu
INSTEAD OF INSERT OR UPDATE
ON STCH_V_THEMA_RUIMTE_HUURDER
DECLARE
verhuurbaar NUMBER;
BEGIN
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
THEN
DELETE FROM prs_ruimteafdeling
WHERE alg_ruimte_key = :new.alg_ruimte_key
AND prs_afdeling_key <> :new.waarde_key;
END IF;
BEGIN
SELECT prs_verhuurbaar
INTO verhuurbaar
FROM alg_ruimte r, alg_srtruimte sr
WHERE r.alg_ruimte_key = :new.alg_ruimte_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key;
IF :new.waarde_key <> -1 AND verhuurbaar = 1
THEN
INSERT INTO prs_ruimteafdeling
(
alg_ruimte_key, prs_afdeling_key
)
VALUES (:new.alg_ruimte_key, :new.waarde_key);
END IF;
EXCEPTION
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
THEN
NULL;
END;
END;
/
-- views ter ondersteuning aan Facilitor graphics
-- Niet sleepbaar thema om huurder op hoogste afdelingsniveau te bekijken.
CREATE OR REPLACE VIEW stch_v_thema_ruimte_huurder1 (
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (y.aantal,
NULL, DECODE(verhuurbaar, 1, '[Leegstand]', '[Niet verhuurbaar]'),
1, SUBSTR (y.sp, 1, 60),
'Meer dan 1 huurder!'),
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
FROM (SELECT r.alg_ruimte_key, sr.prs_verhuurbaar verhuurbaar
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) x
LEFT JOIN
(SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) sp,
MIN (a.prs_afdeling_key) sp_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a, prs_v_afdeling_boom ab
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
AND a.prs_afdeling_naam <> 'Onbekend'
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key;
-- views ter ondersteuning aan Facilitor graphics
-- Niet sleepbaar thema om inzicht te krijgen in de leegstand situatie
CREATE OR REPLACE VIEW stch_v_thema_leegstand (
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (y.aantal,
NULL, DECODE(verhuurbaar, 1, '[Leegstand]', '[Niet verhuurbaar]'),
'[Verhuurd]'),
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
FROM (SELECT r.alg_ruimte_key, sr.prs_verhuurbaar verhuurbaar
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) x
LEFT JOIN
(SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) sp,
MIN (a.prs_afdeling_key) sp_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a, prs_v_afdeling_boom ab
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
AND a.prs_afdeling_naam <> 'Onbekend'
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key;
------ payload end ------
SET DEFINE OFF