TUDE#12314 impliciete werkplekken

svn path=/Database/trunk/; revision=9508
This commit is contained in:
Jos Groot Lipman
2007-04-12 14:17:02 +00:00
parent d14e218694
commit 279f5a0b08
3 changed files with 143 additions and 21 deletions

View File

@@ -151,10 +151,10 @@ CREATE_VIEW(alg_v_verdieping_gegevens,ALG_NORMAAL_PRIVILEGE) AS
ALG_L.alg_locatie_omschrijving, ALG_L.alg_locatie_code,
ALG_L.alg_locatie_upper, ALG_G.alg_gebouw_key,
ALG_G.alg_srtgebouw_key, ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper, ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving, ALG_V.alg_verdieping_upper,
ALG_G.alg_gebouw_upper, ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving, ALG_V.alg_verdieping_upper,
ALG_V.alg_verdieping_volgnr, ALG_V.alg_verdieping_code,
ALG_V.alg_verdieping_tekening,
ALG_V.alg_verdieping_tekening,
ALG_V.alg_verdieping_in_bewerking
FROM alg_locatie ALG_L, alg_gebouw ALG_G,
alg_v_aanwezigverdieping ALG_V
@@ -219,7 +219,7 @@ SELECT ALG_L.alg_locatie_key, ALG_L.alg_district_key,
ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key AND
ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key AND
ALG_L.alg_locatie_key = ALG_G.alg_locatie_key;
/*
* View met alle sleutels van de gemeenschappelijke sequence
* alg_s_alg_onroerendgoed_keys, nl. alg_gebouw, alg_verdieping, alg_ruimte en
@@ -311,7 +311,7 @@ SELECT ALG_R.alg_ruimte_key,
ALG_T.alg_terreinsector_key,
ALG_T.alg_locatie_key,
'T'
FROM alg_terreinsector ALG_T;
FROM alg_terreinsector ALG_T;
CREATE_VIEW(alg_v_allonrgoed_gegevens,ALG_NORMAAL_PRIVILEGE)
@@ -817,8 +817,8 @@ DEFINIEER_VIEW_AANWEZIG(alg_srtterreinsector, alg_srtterreinsector_verwijder,
DEFINIEER_VIEW_AANWEZIG(alg_onrgoedkenmerk, alg_onrgoedkenmerk_verwijder,
alg_v_aanwezigonrgoedkenmerk,ALG_BIBLIOTHEEK_PRIVILEGE);
CREATE_VIEW(alg_v_terrein_gegevens, ALG_NORMAAL_PRIVILEGE ) AS
select alg_terreinsector_key,
s.alg_locatie_key,
@@ -830,9 +830,9 @@ select alg_terreinsector_key,
where s.alg_locatie_key = l.alg_locatie_key;
CREATE_VIEW(ALG_V_ONRGOED_BOOM, ALG_NORMAAL_PRIVILEGE )
(ALG_REGIO_KEY, ALG_DISTRICT_KEY, ALG_LOCATIE_KEY, ALG_GEBOUW_KEY, ALG_VERDIEPING_KEY,
(ALG_REGIO_KEY, ALG_DISTRICT_KEY, ALG_LOCATIE_KEY, ALG_GEBOUW_KEY, ALG_VERDIEPING_KEY,
ALG_RUIMTE_KEY)
AS
AS
SELECT a0.alg_regio_key, a1.alg_district_key, a2.alg_locatie_key,
a3.alg_gebouw_key, a4.alg_verdieping_key, a5.alg_ruimte_key
FROM alg_regio a0,
@@ -847,9 +847,9 @@ SELECT a0.alg_regio_key, a1.alg_district_key, a2.alg_locatie_key,
AND a3.alg_gebouw_key = a4.alg_gebouw_key
AND a4.alg_verdieping_key = a5.alg_verdieping_key;
CREATE_VIEW(ALG_V_ONRGOED_FAMILIE, ALG_NORMAAL_PRIVILEGE )
CREATE_VIEW(ALG_V_ONRGOED_FAMILIE, ALG_NORMAAL_PRIVILEGE )
(ALG_RUIMTE_KEY, ALG_ONRGOED_ELDER_KEY, NIVEAU)
AS
AS
SELECT alg_ruimte_key, alg_ruimte_key alg_onrgoed_elder_key, 5 niveau
FROM alg_v_onrgoed_boom
UNION ALL
@@ -870,8 +870,8 @@ SELECT alg_ruimte_key, alg_ruimte_key alg_onrgoed_elder_key, 5 niveau
CREATE_VIEW (fac_v_my_disc_onrgoed_read, FAC_NORMAAL_PRIVILEGE)
(alg_ruimte_key, ins_discipline_key, prs_perslid_key, fac_functie_code, ins_discipline_module, niveau)
AS
SELECT a.alg_ruimte_key, i.ins_discipline_key, mr.prs_perslid_key,
AS
SELECT a.alg_ruimte_key, i.ins_discipline_key, mr.prs_perslid_key,
f.fac_functie_code,i.ins_discipline_module, a.niveau
FROM alg_v_onrgoed_familie a,
alg_v_onrgoed_familie aa,
@@ -886,11 +886,11 @@ SELECT a.alg_ruimte_key, i.ins_discipline_key, mr.prs_perslid_key,
AND a.alg_onrgoed_elder_key = aa.alg_onrgoed_elder_key
AND aa.niveau = a.niveau -- Noodzakelijk want ALG_LOCATIE heeft eigen sequence
AND aa.niveau >= fac_gebruiker_alg_level_read;
CREATE_VIEW (fac_v_my_disc_onrgoed_write, FAC_NORMAAL_PRIVILEGE)
(alg_ruimte_key, ins_discipline_key, prs_perslid_key, fac_functie_code, ins_discipline_module, niveau)
AS
SELECT a.alg_ruimte_key, i.ins_discipline_key, mr.prs_perslid_key,
AS
SELECT a.alg_ruimte_key, i.ins_discipline_key, mr.prs_perslid_key,
f.fac_functie_code,i.ins_discipline_module, a.niveau
FROM alg_v_onrgoed_familie a,
alg_v_onrgoed_familie aa,
@@ -951,7 +951,7 @@ AS
alg_l.alg_locatie_code || '-' || alg_t.alg_terreinsector_code
FROM alg_terreinsector alg_t, alg_locatie alg_l
WHERE alg_t.alg_locatie_key = alg_l.alg_locatie_key;
CREATE_VIEW(alg_v_plaatsaanduiding, ALG_NORMAAL_PRIVILEGE )
(alg_onroerendgoed_keys, alg_onroerendgoed_type, alg_plaatsaanduiding)
AS
@@ -1017,3 +1017,43 @@ AS
alg_srtterreinsector_aanmaak, alg_srtterreinsector_verwijder, TO_NUMBER(NULL), prs_verhuurbaar,
alg_srtterreinsector_prijs, alg_srtterreinsector_code, 'T'
FROM alg_srtterreinsector;
-- Genormaliseerd oppervlakte (met name als prs_werkplek_implicit==1)
CREATE_VIEW(alg_v_norm_opp, ALG_NORMAAL_PRIVILEGE)
(alg_verdieping_key,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_bruto_vloeropp,
norm_opp,
bezetting_totaal
)
AS
SELECT ar.alg_verdieping_key, ar.alg_ruimte_key, ar.alg_ruimte_nr,
ar.alg_ruimte_bruto_vloeropp,
TRUNC ( 10
* alg_ruimte_bruto_vloeropp
/ (SUM (NVL (pp.prs_perslid_dienstverband / pp2.aantalwp,
100
)
)
)
* 100
)
/ 10 norm_opp,
SUM (NVL (pp.prs_perslid_dienstverband / pp2.aantalwp, 100))
FROM alg_ruimte ar,
prs_werkplek pw2,
prs_perslidwerkplek pww2,
prs_perslid pp,
prs_v_aantalwp pp2
WHERE ar.alg_ruimte_key = pw2.prs_alg_ruimte_key
AND pw2.prs_werkplek_key = pww2.prs_werkplek_key
AND pw2.prs_werkplek_virtueel = 0
AND pp2.prs_perslid_key = pww2.prs_perslid_key
AND pp.prs_perslid_key = pp2.prs_perslid_key
AND pp.prs_perslid_dienstverband > 0
GROUP BY ar.alg_verdieping_key,
ar.alg_ruimte_key,
ar.alg_ruimte_nr,
ar.alg_ruimte_bruto_vloeropp;

View File

@@ -2,6 +2,11 @@
/* $History: CAD_VIE1.SRC $
*
* ***************** Version 30 *****************
* User: Jgl Date: 12-04-07 Time: 16:17
* Updated in $/Facilitor/SRC/SQL/CAD
* TUDE#12314 impliciete werkplekken
*
* ***************** Version 29 *****************
* User: Jgl Date: 1/04/06 Time: 4:39p
* Updated in $/Facilitor/SRC/SQL/CAD
@@ -255,5 +260,27 @@ AS
AND m.mld_melding_status IN (2, 3, 4, 7)
GROUP BY r.alg_ruimte_key;
CREATE_VIEW(cad_v_label_bewoner2,0) (alg_ruimte_key, waarde)
AS
SELECT alg_ruimte_key,
prs_p.prs_perslid_naam
|| DECODE (prs_p.prs_perslid_voorletters,
NULL, '',
', ' || prs_p.prs_perslid_voorletters
)
|| DECODE (prs_p.prs_perslid_voornaam,
NULL, '',
' (' || prs_p.prs_perslid_voornaam || ')'
)
|| '-'
|| CASE
WHEN aantalwp > 1
THEN norm_verband || '/'
ELSE ''
END
|| prs_p.prs_perslid_dienstverband
|| ' FTE'
FROM prs_perslid prs_p, prs_v_norm_verband pnv
WHERE pnv.prs_perslid_key = prs_p.prs_perslid_key;
#endif // CAD

View File

@@ -1,8 +1,8 @@
#ifdef PRJ
/* PRJ_PAC.SRC
*
* $Revision: 49 $
* $Modtime: 6-02-07 17:02 $
* $Revision: 50 $
* $Modtime: 11-04-07 13:37 $
*/
/*
CODE COMMENTS, CONSIDERATIONS
@@ -37,6 +37,7 @@ AS
PROCEDURE prj_move_werkplek (pwerkplekkey IN NUMBER, pruimtekey IN NUMBER);
PROCEDURE prj_move_perslidwerkplek (pperslidwerkplekkey IN NUMBER, pruimtekey IN NUMBER, pwerkplekkey IN NUMBER);
PROCEDURE prj_move_perslid (pperslidkey IN NUMBER, pruimtekey IN NUMBER, pwerkplekkey IN NUMBER);
PROCEDURE prj_move_perslid2 (pperslidkey IN NUMBER, pruimtekey IN NUMBER);
FUNCTION forceuniqueness (element_type IN VARCHAR2 , parent_key IN NUMBER, element_omschrijving IN VARCHAR2 )
RETURN VARCHAR2 ;
END prj;
@@ -275,6 +276,7 @@ AS
FROM prs_werkplek w, prj_ruimte rx
WHERE w.prs_alg_ruimte_key = rx.alg_ruimte_key
AND w.prs_werkplek_verwijder IS NULL
AND w.prs_werkplek_virtueel = 0
AND rx.prj_scenario_key = pscenariokey
AND rx.alg_verdieping_key = pverdiepingkey;
@@ -644,8 +646,61 @@ AS
END;
-------------------------------------
-- Moves a perslid to a ruimte/werkplek. There was no previous
-- pwerkplekkey is optional and acts like a preferred werkplek and will be used if it fits.
-- Moves a perslid to a ruimte
-- Gebruikt als prs_werkplek_implicit==1
-- We negeren bezetting en maken altijd een nieuwe werkplek aan
-------------------------------------
PROCEDURE prj_move_perslid2 (
pperslidkey IN NUMBER,
pruimtekey IN NUMBER
)
AS
werkplekkey prj_werkplek.prj_werkplek_key%TYPE;
oudepwpkey prj_perslidwerkplek.prj_perslidwerkplek_key%TYPE;
BEGIN
werkplekkey := find_or_create_free_werkplek (pruimtekey, 101); -- Door 101 krijgen we altijd een nieuwe
-- Is er nog een tijdens *dit* scenario vervallen werkplekbezettingsrecord?
-- Zo ja, dan willen we deze gebruiken om de binding tussen Van en Naar
-- zo goed mogelijk te behouden. Alleen relevant als het om een oorspronkelijk
-- bezettingsrecord gaat (met verwijzing naar de werkelijkheid)
BEGIN
SELECT prj_perslidwerkplek_key
INTO oudepwpkey
FROM prj_perslidwerkplek pwx,
prj_werkplek wx,
prj_ruimte rx,
prj_ruimte rx2
WHERE rx.prj_ruimte_key = wx.prj_ruimte_key
AND rx.prj_scenario_key = rx2.prj_scenario_key
AND rx2.prj_ruimte_key = pruimtekey
AND wx.prj_werkplek_key = pwx.prj_werkplek_key
AND pwx.prs_perslid_key = pperslidkey
AND pwx.prs_perslidwerkplek_key IS NOT NULL
AND pwx.prj_perslidwerkplek_verwijder IS NOT NULL;
UPDATE prj_perslidwerkplek
SET prj_perslidwerkplek_verwijder = NULL,
prj_werkplek_key = werkplekkey
WHERE prj_perslidwerkplek_key = oudepwpkey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
--DBMS_OUTPUT.put_line ('_VAR(werkplekkey):' || TO_CHAR (werkplekkey));
-- Er is nu een werkplekkey bepaald.
INSERT INTO prj_perslidwerkplek
(prj_werkplek_key, prs_perslid_key)
VALUES (werkplekkey, pperslidkey);
END;
COMMIT;
END;
-------------------------------------
-- Moves a perslidwerkplek (bezetting) to another ruimte/werkplek. The old werkplek remains
-- pwerkplekkey is optional and acts like a preferred werkplek and will be used
-- even if it does not fit
-- Zie ook variant prj_move_perslid2
-------------------------------------
PROCEDURE prj_move_perslid (
pperslidkey IN NUMBER,