YFTH#66306: Ondersteuning her-implementatie Thales

svn path=/Customer/trunk/; revision=51309
This commit is contained in:
Arthur Egberink
2021-05-06 18:01:16 +00:00
parent 4c745e31f5
commit cf1ff224bf

View File

@@ -330,7 +330,128 @@ AS
rg.alg_gebouw_upper || '.' || rg.alg_verdieping_volgnr || '-' || rg.alg_ruimte_nr) cadlabel
FROM alg_v_ruimte_gegevens rg;
-- View voor sleepbare thema om afdeling aan ruimte te koppelen
CREATE OR REPLACE VIEW yfth_v_thema_ruimteafd
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (
COALESCE (x.prs_verhuurbaar, 0),
0, 'Niet verhuurbaar',
DECODE (y.aantal,
NULL, '[Leegstand]',
1, SUBSTR (y.sp, 1, 60),
'[Meerdere afdelingen]')),
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
FROM (SELECT r.alg_ruimte_key, prs_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
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_v_aanwezigruimteafdeling ra
WHERE ra.prs_afdeling_key = a.prs_afdeling_key);
CREATE OR REPLACE TRIGGER yfth_t_thema_ruimteafd_i_iu
INSTEAD OF INSERT OR UPDATE
ON yfth_v_thema_ruimteafd
BEGIN
DECLARE
verhuurbaar NUMBER;
BEGIN
SELECT COALESCE (prs_verhuurbaar, 0)
INTO verhuurbaar
FROM alg_srtruimte sr, alg_ruimte r
WHERE sr.alg_srtruimte_key = r.alg_srtruimte_key
AND r.alg_ruimte_key = :new.alg_ruimte_key;
IF verhuurbaar = 1
THEN
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
IF :new.waarde_key <> -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 IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
END;
/
-- View om overzicht van afdeling per verdieping te geven
CREATE OR REPLACE VIEW yfth_v_rap_afdeling_wp_opp
AS
SELECT r.alg_verdieping_key vkey,
r.alg_ruimte_key highlight,
r.alg_ruimte_nr,
v.alg_verdieping_code,
g.alg_gebouw_code,
l.alg_locatie_code,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
r.alg_ruimte_bruto_vloeropp,
wp.aantal,
r.alg_ruimte_bruto_vloeropp * ra.prs_ruimteafdeling_bezetting / 100 opp_gew,
wp.aantal * ra.prs_ruimteafdeling_bezetting / 100 aantal_gew,
ra.prs_ruimteafdeling_bezetting
FROM prs_afdeling a,
prs_ruimteafdeling ra,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
( SELECT alg_ruimte_key, COUNT (*) aantal
FROM ins_v_deel_gegevens
WHERE ins_discipline_omschrijving = 'Werkplek'
GROUP BY alg_ruimte_key) wp
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 521 -- Thales
AND ra.alg_ruimte_key = wp.alg_ruimte_key(+)
AND ra.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 ra.prs_afdeling_key = a.prs_afdeling_key;
--
-- Reverse billing zoals bij Schiphol
--
CREATE OR REPLACE VIEW yfth_v_rap_actual_cost_tot
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!