FSN#14942

svn path=/Database/trunk/; revision=9939
This commit is contained in:
Peter Feij
2008-12-02 17:04:38 +00:00
parent becac65596
commit 448a002e3a

View File

@@ -1,8 +1,8 @@
#ifdef PRJ
/* PRJ_VIE.SRC
*
* $Revision: 58 $
* $Modtime: 17-07-08 14:47 $
* $Revision: 59 $
* $Modtime: 28-11-08 15:19 $
*/
#include "comsql.h"
@@ -70,31 +70,62 @@ AS
WHERE wp.prj_werkplek_verwijder IS NULL
GROUP BY prj_ruimte_key;
CREATE_VIEW (prj_v_cad_thema_afdeling,0) (prj_ruimte_key, waarde)
CREATE_VIEW (prj_v_cad_thema_afdeling,0) (prj_ruimte_key, waarde, waarde_key)
AS
SELECT wx.prj_ruimte_key, d.prs_afdeling_naam
FROM prs_afdeling d, prj_perslidwerkplek pwx, prj_werkplek wx
WHERE pwx.prj_werkplek_key = wx.prj_werkplek_key
AND pwx.prs_afdeling_key = d.prs_afdeling_key
AND pwx.prj_perslidwerkplek_verwijder IS NULL
AND wx.prj_werkplek_verwijder IS NULL
AND pwx.prs_perslid_key IS NULL
UNION
SELECT wx.prj_ruimte_key, d.prs_afdeling_naam
FROM prs_afdeling d, prj_perslidwerkplek pwx, prj_werkplek wx, prs_perslid p
WHERE pwx.prj_werkplek_key = wx.prj_werkplek_key
AND pwx.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key=d.prs_afdeling_key
AND pwx.prj_perslidwerkplek_verwijder IS NULL
AND wx.prj_werkplek_verwijder IS NULL
AND pwx.prs_perslid_key IS NOT NULL;
SELECT x.prj_ruimte_key,
DECODE (x.aantal,
1, SUBSTR (x.sp, 1, 60),
'Meerdere!'),
DECODE (x.aantal, 1, x.sp_key, NULL)
FROM (SELECT ra.prj_ruimte_key,
MIN (d.prs_afdeling_naam) sp,
MIN (d.prs_afdeling_key) sp_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prj_ruimteafdeling ra, prs_v_aanwezigafdeling d
WHERE ra.prj_ruimteafdeling_verwijder IS NULL
AND ra.prs_afdeling_key = d.prs_afdeling_key
GROUP BY ra.prj_ruimte_key) x;
CREATE_VIEW (prj_v_cad_thema_srtruimte,0) (prj_ruimte_key, waarde)
-- Update is: oude situatie weg, nieuwe wordt gedefinieerd.
-- Insert is: toevoegen aan oude situatie
CREATE_TRIGGER(prj_t_cad_thema_afdeling_i_iu)
INSTEAD OF INSERT OR UPDATE
ON prj_v_cad_thema_afdeling
BEGIN
IF UPDATING -- oude weggooien
THEN
DELETE FROM prj_ruimteafdeling
WHERE prj_ruimte_key = :new.prj_ruimte_key
AND prs_afdeling_key <> :new.waarde_key;
END IF;
BEGIN
INSERT INTO prj_ruimteafdeling (prj_ruimte_key, prs_afdeling_key)
VALUES (:new.prj_ruimte_key, :new.waarde_key);
EXCEPTION
WHEN DUP_VAL_ON_INDEX -- Hij was al aanwezig
THEN
NULL;
END;
END;
/
CREATE_VIEW (prj_v_cad_thema_srtruimte,0) (prj_ruimte_key, waarde, waarde_key)
AS
SELECT r.prj_ruimte_key, sr.alg_srtruimte_omschrijving
SELECT r.prj_ruimte_key, sr.alg_srtruimte_omschrijving, sr.alg_srtruimte_key
FROM prj_ruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key;
CREATE_TRIGGER(prj_t_cad_thema_srtruimte_i_iu)
INSTEAD OF INSERT OR UPDATE ON prj_v_cad_thema_srtruimte
FOR EACH ROW
BEGIN
UPDATE prj_ruimte
SET alg_srtruimte_key = :new.waarde_key
WHERE prj_ruimte_key = :new.prj_ruimte_key;
END;
/
// De gemiddelde oppervlakte per werkplek (GEEN rekening houdend met vaste werkplekoppervlaktes)
CREATE_VIEW (prj_v_cad_thema_wpopp,0) (prj_ruimte_key, waarde)
AS
@@ -124,15 +155,7 @@ AS
prj_perslidwerkplek prj_wp,
prj_ruimte prj_zoek,
(SELECT prs_w.prs_werkplek_key, prs_w.prs_werkplek_volgnr, prs_pw.prs_perslidwerkplek_key,
prs_w.prs_alg_ruimte_key alg_ruimte_key, prs_pw.prs_afdeling_key,
TO_NUMBER (NULL) prs_perslid_key
FROM prs_v_aanwezigwerkplek prs_w, prs_v_aanwezigperslidwerkplek prs_pw
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
AND prs_pw.prs_afdeling_key IS NOT NULL
AND prs_w.prs_werkplek_virtueel = 0
UNION ALL
SELECT prs_w.prs_werkplek_key, prs_w.prs_werkplek_volgnr, prs_pw.prs_perslidwerkplek_key,
prs_w.prs_alg_ruimte_key, prs_p.prs_afdeling_key, prs_pw.prs_perslid_key
prs_w.prs_alg_ruimte_key alg_ruimte_key, prs_p.prs_afdeling_key, prs_pw.prs_perslid_key
FROM prs_v_aanwezigwerkplek prs_w, prs_v_aanwezigperslidwerkplek prs_pw, prs_perslid prs_p
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
AND prs_pw.prs_perslid_key IS NOT NULL
@@ -171,21 +194,6 @@ AS
SELECT DISTINCT prj_ruimte_key, waarde,
DECODE (prj_selectie_key, NULL, 0, 1) highlight
FROM (SELECT prj_r.prj_scenario_key, prs_w.prj_ruimte_key,
'* [' || prs_a.prs_afdeling_naam || ']' waarde,
'PRJ_WERKPLEK' label_soort,
prs_pw.prj_werkplek_key label_key
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
PRJ_PERSLIDWERKPLEK prs_pw,
PRS_AFDELING prs_a
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
AND prs_pw.prs_perslid_key IS NULL
AND prs_w.prj_werkplek_verwijder IS NULL
AND prs_pw.prj_perslidwerkplek_verwijder IS NULL
AND prs_pw.prs_afdeling_key = prs_a.prs_afdeling_key
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
UNION
SELECT prj_r.prj_scenario_key, prs_w.prj_ruimte_key,
prs_p.prs_perslid_naam
|| DECODE (prs_p.prs_perslid_voorletters,
NULL, '',
@@ -195,8 +203,8 @@ AS
NULL, '',
' (' || prs_p.prs_perslid_voornaam
|| ')'
),
'PRJ_WERKPLEK', prs_pw.prj_werkplek_key
) waarde,
'PRJ_WERKPLEK' label_soort, prs_pw.prj_werkplek_key label_key
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
PRJ_PERSLIDWERKPLEK prs_pw,
@@ -222,31 +230,6 @@ AS
FROM (SELECT prj_r.prj_scenario_key, prs_w.prj_ruimte_key,
CHR (1)
|| prs_w.prj_werkplek_volgnr
|| ' * ['
|| prs_a.prs_afdeling_naam
|| ']: '
|| TO_CHAR
(NVL (prs_pw.prj_perslidwerkplek_bezetting,
0
)
)
|| '%' waarde,
'PRJ_WERKPLEK' label_soort,
prs_pw.prj_werkplek_key label_key
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
(SELECT *
FROM PRJ_PERSLIDWERKPLEK
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw,
PRS_AFDELING prs_a
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
AND prs_pw.prs_perslid_key IS NULL
AND prs_pw.prs_afdeling_key = prs_a.prs_afdeling_key
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
UNION
SELECT prj_r.prj_scenario_key, prs_w.prj_ruimte_key,
CHR (1)
|| prs_w.prj_werkplek_volgnr
|| ' '
|| prs_p.prs_perslid_naam
|| DECODE (prs_p.prs_perslid_voorletters,
@@ -264,8 +247,8 @@ AS
0
)
)
|| '%',
'PRJ_WERKPLEK', prs_pw.prj_werkplek_key
|| '%' waarde,
'PRJ_WERKPLEK' label_soort, prs_pw.prj_werkplek_key label_key
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
(SELECT *
@@ -437,155 +420,19 @@ AS
// afdelingen met van en naar
CREATE_VIEW (prj_v_afd_verhuizing, 0)
(prj_scenario_key,
prs_afdeling_key,
alg_ruimte_key,
prs_werkplek_key,
alg_ruimte_key2,
prj_ruimte_key2,
prs_werkplek_key2,
prj_werkplek_key2
)
(prj_scenario_key,
prs_afdeling_key,
alg_ruimte_key,
alg_ruimte_key2,
prj_ruimte_key2
)
AS
SELECT rx.prj_scenario_key, d.prs_afdeling_key, w.prs_alg_ruimte_key, w.prs_werkplek_key,
rx.alg_ruimte_key, rx.prj_ruimte_key, wx.prs_werkplek_key, wx.prj_werkplek_key
FROM prs_v_afdeling d,
prs_v_aanwezigwerkplek w,
prs_v_aanwezigperslidwerkplek pwp,
prj_werkplek wx,
prj_perslidwerkplek pwpx,
prj_ruimte rx
WHERE pwp.prs_afdeling_key = d.prs_afdeling_key
AND w.prs_werkplek_key = pwp.prs_werkplek_key
AND pwpx.prs_afdeling_key(+) = d.prs_afdeling_key
AND wx.prj_werkplek_key(+) = pwpx.prj_werkplek_key
AND rx.prj_ruimte_key(+) = wx.prj_ruimte_key
AND pwp.prs_afdeling_key IS NOT NULL;
// PRJ evenknie (met prs kolomnamen!)
#ifdef PFzijnnietgoedduswaarschijnlijknietgebruikt
CREATE_VIEW(prj_v_werkplek_gegevens, 0) (prj_scenario_key,
prs_werkplek_key,
prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_werkplek_opp,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
alg_ruimte_bruto_vloeropp,
alg_verdieping_key,
alg_verdieping_code,
alg_verdieping_volgnr,
alg_verdieping_omschrijving,
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_locatie_key,
prs_werkplek_aanduiding,
alg_ruimte_omschrijving,
prs_werkplek_vastopp
)
AS
SELECT prs_w.prj_scenario_key, prs_w.prj_werkplek_key, prs_w.prj_werkplek_volgnr, prs_w.prj_werkplek_omschrijving,
prs_p_prs_bepaalwerkplekopp (prs_w.prj_werkplek_key,
alg_r.alg_ruimte_key,
alg_r.alg_ruimte_bruto_vloeropp,
prs_w.prj_werkplek_vastopp,
prs_w.prj_werkplek_opp,
NULL
),
alg_r.alg_ruimte_key, alg_r.alg_ruimte_nr, alg_r.alg_ruimte_upper_nr, alg_r.alg_ruimte_bruto_vloeropp,
alg_v.alg_verdieping_key, alg_v.alg_verdieping_code, alg_v.alg_verdieping_volgnr,
alg_v.alg_verdieping_omschrijving, alg_g.alg_gebouw_key, alg_g.alg_gebouw_code, alg_g.alg_gebouw_omschrijving,
alg_g.alg_gebouw_upper, alg_g.alg_locatie_key,
alg_l.alg_locatie_code
|| ' - '
|| alg_g.alg_gebouw_code
|| ' - '
|| alg_v.alg_verdieping_code
|| ' - '
|| alg_r.alg_ruimte_nr
|| '/'
|| NUMBER_TO_CHAR (prs_w.prj_werkplek_volgnr),
alg_r.alg_ruimte_omschrijving, prs_w.prj_werkplek_vastopp
FROM prj_werkplek prs_w, alg_ruimte alg_r, alg_verdieping alg_v, alg_gebouw alg_g, alg_locatie alg_l
WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
AND prs_w.prj_ruimte_key = alg_r.alg_ruimte_key
AND alg_g.alg_locatie_key = alg_l.alg_locatie_key;
CREATE_VIEW(prj_v_werkplekperslid_gegevens,0) (prj_scenario_key,
prs_perslidwerkplek_key,
prs_perslid_key,
prs_afdeling_key,
prs_naam,
prs_werkplek_key,
prs_werkplek_volgnr,
prs_werkplek_opp,
alg_locatie_key,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_verdieping_code,
alg_verdieping_omschrijving,
alg_ruimte_nr,
alg_ruimte_upper_nr
)
AS
SELECT prs_w.prj_scenario_key, prs_pw.prs_perslidwerkplek_key, prs_pw.prs_perslid_key, prs_p.prs_afdeling_key,
prs_p.prs_perslid_naam || ' ' || prs_perslid_voorletters, prs_pw.prj_werkplek_key, prs_w.prs_werkplek_volgnr,
prs_w.prs_werkplek_opp, prs_w.alg_locatie_key, prs_w.alg_gebouw_omschrijving, prs_w.alg_gebouw_upper,
prs_w.alg_verdieping_code, prs_w.alg_verdieping_omschrijving, prs_w.alg_ruimte_nr, prs_w.alg_ruimte_upper_nr
FROM prj_perslidwerkplek prs_pw, prs_perslid prs_p, prj_v_werkplek_gegevens prs_w
WHERE prs_pw.prs_perslid_key = prs_p.prs_perslid_key AND prs_pw.prj_werkplek_key = prs_w.prs_werkplek_key
UNION
SELECT prs_w.prj_scenario_key, prs_pw.prs_perslidwerkplek_key, TO_NUMBER (NULL), prs_pw.prs_afdeling_key,
'[' || prs_a.prs_afdeling_naam || ']', prs_pw.prj_werkplek_key, prs_w.prs_werkplek_volgnr,
prs_w.prs_werkplek_opp, prs_w.alg_locatie_key, prs_w.alg_gebouw_omschrijving, prs_w.alg_gebouw_upper,
prs_w.alg_verdieping_code, prs_w.alg_verdieping_omschrijving, prs_w.alg_ruimte_nr, prs_w.alg_ruimte_upper_nr
FROM prj_perslidwerkplek prs_pw, prs_afdeling prs_a, prj_v_werkplek_gegevens prs_w
WHERE prs_pw.prs_afdeling_key = prs_a.prs_afdeling_key AND prs_pw.prj_werkplek_key = prs_w.prs_werkplek_key;
CREATE_VIEW(prj_v_werkplekafdeling_geg,0) (prj_scenario_key, prs_perslidwerkplek_key,
prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_upper,
prs_werkplek_key,
prs_werkplek_volgnr,
prs_werkplek_opp,
alg_locatie_key,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_verdieping_code,
alg_verdieping_omschrijving,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
alg_ruimte_bruto_vloeropp
)
AS
SELECT prs_w.prj_scenario_key, prs_pw.prs_perslidwerkplek_key, prs_a.prs_afdeling_key, prs_a.prs_afdeling_naam, prs_a.prs_afdeling_upper,
prs_pw.prj_werkplek_key, prs_w.prs_werkplek_volgnr, prs_w.prs_werkplek_opp, prs_w.alg_locatie_key,
prs_w.alg_gebouw_omschrijving, prs_w.alg_gebouw_upper, prs_w.alg_verdieping_code,
prs_w.alg_verdieping_omschrijving, prs_w.alg_ruimte_key, prs_w.alg_ruimte_nr, prs_w.alg_ruimte_upper_nr,
prs_w.alg_ruimte_bruto_vloeropp
FROM prj_perslidwerkplek prs_pw, prs_perslid prs_p, prs_afdeling prs_a, prj_v_werkplek_gegevens prs_w
WHERE prs_pw.prs_perslid_key = prs_p.prs_perslid_key
AND prs_p.prs_afdeling_key = prs_a.prs_afdeling_key
AND prs_pw.prj_werkplek_key = prs_w.prs_werkplek_key
UNION
SELECT prs_w.prj_scenario_key, prs_pw.prs_perslidwerkplek_key, prs_a.prs_afdeling_key, prs_a.prs_afdeling_naam, prs_a.prs_afdeling_upper,
prs_pw.prj_werkplek_key, prs_w.prs_werkplek_volgnr, prs_w.prs_werkplek_opp, prs_w.alg_locatie_key,
prs_w.alg_gebouw_omschrijving, prs_w.alg_gebouw_upper, prs_w.alg_verdieping_code,
prs_w.alg_verdieping_omschrijving, prs_w.alg_ruimte_key, prs_w.alg_ruimte_nr, prs_w.alg_ruimte_upper_nr,
prs_w.alg_ruimte_bruto_vloeropp
FROM prj_perslidwerkplek prs_pw, prs_afdeling prs_a, prj_v_werkplek_gegevens prs_w
WHERE prs_pw.prs_afdeling_key = prs_a.prs_afdeling_key AND prs_pw.prj_werkplek_key = prs_w.prs_werkplek_key;
#endif
SELECT rx.prj_scenario_key, d.prs_afdeling_key, ra.alg_ruimte_key, rx.alg_ruimte_key, rx.prj_ruimte_key
FROM prs_v_afdeling d, prs_ruimteafdeling ra, prj_ruimteafdeling rax, prj_ruimte rx
WHERE ra.prs_afdeling_key = d.prs_afdeling_key
AND rax.prs_afdeling_key(+) = d.prs_afdeling_key
AND rx.prj_ruimte_key(+) = rax.prj_ruimte_key
AND ra.prs_ruimteafdeling_verwijder IS NULL;
#endif // PRJ