YFTH#66306: Ondersteuning her-implementatie Thales
svn path=/Customer/trunk/; revision=51309
This commit is contained in:
121
YFTH/yfth.sql
121
YFTH/yfth.sql
@@ -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!
|
||||
|
||||
Reference in New Issue
Block a user