new snapshot
svn path=/Database/trunk/; revision=9237
This commit is contained in:
247
PRJ/PRJ_PAC.SRC
247
PRJ/PRJ_PAC.SRC
@@ -1,8 +1,8 @@
|
||||
#ifdef PRJ
|
||||
/* PRJ_PAC.SRC
|
||||
*
|
||||
* $Revision: 45 $
|
||||
* $Modtime: 12-05-06 16:02 $
|
||||
* $Revision: 46 $
|
||||
* $Modtime: 31-05-06 17:35 $
|
||||
*/
|
||||
|
||||
#ifndef MS_SQL
|
||||
@@ -11,7 +11,7 @@ AS
|
||||
PROCEDURE prj_initiate_scenario (pscenariokey IN NUMBER, pverdiepingkey IN NUMBER);
|
||||
|
||||
PROCEDURE prj_copy_scenario (pscenariokey_from IN NUMBER, pscenariokey_to IN NUMBER);
|
||||
|
||||
|
||||
PROCEDURE prj_reinitiate_scenario (pscenariokey IN NUMBER, pverdiepingkey IN NUMBER);
|
||||
|
||||
PROCEDURE prj_cancel_scenario (pscenariokey IN NUMBER, pverdiepingkey IN NUMBER);
|
||||
@@ -93,7 +93,7 @@ AS
|
||||
BEGIN
|
||||
IF element_type = 'ALG_RUIMTE'
|
||||
THEN
|
||||
/* Zoek op de geselecteerde verdieping of het huidige ruimtenummer al voor komt. */
|
||||
-- Zoek op de geselecteerde verdieping of het huidige ruimtenummer al voor komt.
|
||||
BEGIN
|
||||
SELECT g.alg_gebouw_code
|
||||
|| '-'
|
||||
@@ -124,7 +124,7 @@ AS
|
||||
-- en zoniet, dan wordt er doorgeteld tot de eersthogere wel unieke
|
||||
IF element_type = 'PRS_WERKPLEK'
|
||||
THEN
|
||||
/* Zoek in de geselecteerde ruimte of het huidige werkpleknummer al voor komt. */
|
||||
-- Zoek in de geselecteerde ruimte of het huidige werkpleknummer al voor komt.
|
||||
BEGIN
|
||||
SELECT g.alg_gebouw_code
|
||||
|| '-'
|
||||
@@ -167,7 +167,7 @@ AS
|
||||
|
||||
IF element_type = 'PRJ_WERKPLEK'
|
||||
THEN
|
||||
/* Zoek in de geselecteerde ruimte of het huidige werkpleknummer al voor komt. */
|
||||
-- Zoek in de geselecteerde ruimte of het huidige werkpleknummer al voor komt.
|
||||
BEGIN
|
||||
SELECT 'x'
|
||||
INTO prefix
|
||||
@@ -294,24 +294,21 @@ AS
|
||||
AND rx.prj_scenario_key = pscenariokey
|
||||
AND rx.alg_verdieping_key = pverdiepingkey;
|
||||
|
||||
-- Kopieer de werkplekbezettingen
|
||||
-- Persoonsbezetting: zoek de afdeling van de persoon erbij
|
||||
-- Kopieer de werkplekbezettingen
|
||||
INSERT INTO prj_perslidwerkplek
|
||||
(prj_perslidwerkplek_key, prs_perslidwerkplek_key,
|
||||
prs_perslid_key, prs_afdeling_key, prj_werkplek_key,
|
||||
prj_perslidwerkplek_bezetting)
|
||||
SELECT NULL, pw.prs_perslidwerkplek_key, pw.prs_perslid_key,
|
||||
p.prs_afdeling_key, wx.prj_werkplek_key,
|
||||
NULL, wx.prj_werkplek_key,
|
||||
pw.prs_perslidwerkplek_bezetting
|
||||
FROM prs_perslidwerkplek pw,
|
||||
prj_werkplek wx,
|
||||
prj_ruimte rx,
|
||||
prs_perslid p
|
||||
prj_ruimte rx
|
||||
WHERE pw.prs_werkplek_key = wx.prs_werkplek_key
|
||||
AND pw.prs_perslidwerkplek_verwijder IS NULL
|
||||
AND rx.prj_scenario_key = pscenariokey
|
||||
AND pw.prs_perslid_key IS NOT NULL
|
||||
AND pw.prs_perslid_key = p.prs_perslid_key
|
||||
AND wx.prj_ruimte_key = rx.prj_ruimte_key
|
||||
AND rx.alg_verdieping_key = pverdiepingkey
|
||||
UNION
|
||||
@@ -407,36 +404,37 @@ AS
|
||||
FROM prj_ruimte rx
|
||||
WHERE prj_scenario_key = pscenariokey_from;
|
||||
|
||||
/* vergt nog wat uitwerking: de parent key van de zojuist aangemaakte ruimte etc gebruiken
|
||||
-- Kopieer de werkplekken
|
||||
INSERT INTO prj_werkplek
|
||||
(prj_werkplek_key, prs_werkplek_key, prj_werkplek_volgnr,
|
||||
prj_werkplek_omschrijving, prj_werkplek_vastopp,
|
||||
prj_ruimte_key)
|
||||
SELECT NULL, wx.prs_werkplek_key, wx.prj_werkplek_volgnr,
|
||||
wx.prj_werkplek_omschrijving, wx.prj_werkplek_vastopp,
|
||||
wx.prj_ruimte_key
|
||||
FROM prj_werkplek wx, prj_ruimte rx, prj_ruimte rxx
|
||||
WHERE wx.prj_ruimte_key = rx.prj_ruimte_key
|
||||
AND rx.prj_ruimte_nr=wxx.prj_ruimte_nr
|
||||
AND rx.alg_verdieping_key=rxx.alg_verdieping_key
|
||||
AND rx.prj_scenario_key = pscenariokey_from;
|
||||
|
||||
-- Kopieer de werkplekbezettingen
|
||||
INSERT INTO prj_perslidwerkplek
|
||||
(prj_perslidwerkplek_key, prs_perslidwerkplek_key,
|
||||
prs_perslid_key, prs_afdeling_key, prj_werkplek_key,
|
||||
prj_perslidwerkplek_bezetting)
|
||||
SELECT NULL, pwx.prs_perslidwerkplek_key, pwx.prs_perslid_key,
|
||||
pwx.prs_afdeling_key, pwx.prj_werkplek_key,
|
||||
pwx.prj_perslidwerkplek_bezetting
|
||||
FROM prj_perslidwerkplek pwx,
|
||||
prj_werkplek wx,
|
||||
prj_ruimte rx
|
||||
WHERE pwx.prj_werkplek_key = wx.prj_werkplek_key
|
||||
AND rx.prj_scenario_key = pscenariokey_from
|
||||
AND wx.prj_ruimte_key = rx.prj_ruimte_key;
|
||||
*/
|
||||
-- TODO: vergt nog wat uitwerking: de parent key van de zojuist aangemaakte ruimte etc gebruiken
|
||||
--
|
||||
-- -- Kopieer de werkplekken
|
||||
-- INSERT INTO prj_werkplek
|
||||
-- (prj_werkplek_key, prs_werkplek_key, prj_werkplek_volgnr,
|
||||
-- prj_werkplek_omschrijving, prj_werkplek_vastopp,
|
||||
-- prj_ruimte_key)
|
||||
-- SELECT NULL, wx.prs_werkplek_key, wx.prj_werkplek_volgnr,
|
||||
-- wx.prj_werkplek_omschrijving, wx.prj_werkplek_vastopp,
|
||||
-- wx.prj_ruimte_key
|
||||
-- FROM prj_werkplek wx, prj_ruimte rx, prj_ruimte rxx
|
||||
-- WHERE wx.prj_ruimte_key = rx.prj_ruimte_key
|
||||
-- AND rx.prj_ruimte_nr=rxx.prj_ruimte_nr
|
||||
-- AND rx.alg_verdieping_key=rxx.alg_verdieping_key
|
||||
-- AND rx.prj_scenario_key = pscenariokey_from;
|
||||
--
|
||||
-- -- Kopieer de werkplekbezettingen
|
||||
-- INSERT INTO prj_perslidwerkplek
|
||||
-- (prj_perslidwerkplek_key, prs_perslidwerkplek_key,
|
||||
-- prs_perslid_key, prs_afdeling_key, prj_werkplek_key,
|
||||
-- prj_perslidwerkplek_bezetting)
|
||||
-- SELECT NULL, pwx.prs_perslidwerkplek_key, pwx.prs_perslid_key,
|
||||
-- pwx.prs_afdeling_key, pwx.prj_werkplek_key,
|
||||
-- pwx.prj_perslidwerkplek_bezetting
|
||||
-- FROM prj_perslidwerkplek pwx,
|
||||
-- prj_werkplek wx,
|
||||
-- prj_ruimte rx
|
||||
-- WHERE pwx.prj_werkplek_key = wx.prj_werkplek_key
|
||||
-- AND rx.prj_scenario_key = pscenariokey_from
|
||||
-- AND wx.prj_ruimte_key = rx.prj_ruimte_key;
|
||||
--
|
||||
-- Kopieer de objecten
|
||||
INSERT INTO prj_deel
|
||||
(prj_deel_key, ins_deel_key, prj_ruimte_key,
|
||||
@@ -463,6 +461,7 @@ AS
|
||||
|
||||
-- Annuleer een scenario of een verdieping van een scenario
|
||||
-- Als pverdiepingkey NULL is, wordt ook het scenario verwijderd.
|
||||
-- Vooralsnog is pverdiepingkey dummy
|
||||
PROCEDURE prj_cancel_scenario (
|
||||
pscenariokey IN NUMBER,
|
||||
pverdiepingkey IN NUMBER
|
||||
@@ -472,7 +471,7 @@ AS
|
||||
BEGIN
|
||||
checkscenario (pscenariokey);
|
||||
|
||||
IF pverdiepingkey IS NULL
|
||||
IF true OR pverdiepingkey IS NULL
|
||||
THEN
|
||||
DELETE FROM prj_ruimte rx
|
||||
WHERE rx.prj_scenario_key = pscenariokey;
|
||||
@@ -608,7 +607,8 @@ AS
|
||||
INTO werkplekkey
|
||||
FROM prj_werkplek
|
||||
WHERE prj_ruimte_key = pruimtekey
|
||||
AND prj_werkplek_volgnr = werkpleknr;
|
||||
AND prj_werkplek_volgnr = werkpleknr
|
||||
AND prj_werkplek_verwijder IS NULL;
|
||||
--DBMS_OUTPUT.put_line ('inserted werkplekkey:' || TO_CHAR (werkplekkey));
|
||||
END;
|
||||
|
||||
@@ -617,14 +617,11 @@ AS
|
||||
|
||||
-------------------------------------
|
||||
-- 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 if it fits.
|
||||
-- pwerkplekkey is optional and acts like a preferred werkplek and will be used
|
||||
-- even if it does not fit
|
||||
-------------------------------------
|
||||
PROCEDURE prj_move_perslidwerkplek (
|
||||
pperslidwerkplekkey IN NUMBER,
|
||||
pruimtekey IN NUMBER,
|
||||
pwerkplekkey IN NUMBER
|
||||
)
|
||||
IS
|
||||
PROCEDURE prj_move_perslidwerkplek (pperslidwerkplekkey IN NUMBER, pruimtekey IN NUMBER, pwerkplekkey IN NUMBER)
|
||||
AS
|
||||
oldruimtekey prj_werkplek.prj_ruimte_key%TYPE;
|
||||
oldwerkplekkey prj_werkplek.prj_werkplek_key%TYPE;
|
||||
currentbezetting prj_perslidwerkplek.prj_perslidwerkplek_bezetting%TYPE;
|
||||
@@ -632,73 +629,46 @@ AS
|
||||
scenariokey prj_ruimte.prj_scenario_key%TYPE;
|
||||
werkplekkey prj_werkplek.prj_werkplek_key%TYPE;
|
||||
BEGIN
|
||||
werkplekkey := -1;
|
||||
|
||||
-- Wat is eigenlijk de ruimte/werkplek van herkomst en de actuele bezetting van de te verplaatsen werkplek?
|
||||
SELECT wx.prj_ruimte_key, pwx.prj_perslidwerkplek_bezetting,
|
||||
wx.prj_werkplek_key
|
||||
INTO oldruimtekey, currentbezetting,
|
||||
oldwerkplekkey
|
||||
SELECT wx.prj_ruimte_key, pwx.prj_perslidwerkplek_bezetting, wx.prj_werkplek_key
|
||||
INTO oldruimtekey, currentbezetting, oldwerkplekkey
|
||||
FROM prj_werkplek wx, prj_perslidwerkplek pwx
|
||||
WHERE wx.prj_werkplek_key = pwx.prj_werkplek_key
|
||||
AND pwx.prj_perslidwerkplek_key = pperslidwerkplekkey;
|
||||
WHERE wx.prj_werkplek_key = pwx.prj_werkplek_key AND pwx.prj_perslidwerkplek_key = pperslidwerkplekkey;
|
||||
|
||||
--DBMS_OUTPUT.put_line ('oldruimtekey:' || TO_CHAR (oldruimtekey));
|
||||
--DBMS_OUTPUT.put_line ('currentbezetting:' || TO_CHAR (currentbezetting));
|
||||
--DBMS_OUTPUT.put_line ('_VAR(oldruimtekey):' || TO_CHAR (oldruimtekey));
|
||||
--DBMS_OUTPUT.put_line ('_VAR(currentbezetting):' || TO_CHAR (currentbezetting));
|
||||
IF pwerkplekkey IS NOT NULL AND pwerkplekkey = oldwerkplekkey
|
||||
THEN
|
||||
prj_log_add
|
||||
( 'Werkplekbezetting niet verplaatst (zelfde werkplekkey='
|
||||
|| TO_CHAR (oldwerkplekkey)
|
||||
|| ')',
|
||||
'MOVE',
|
||||
scenariokey
|
||||
);
|
||||
prj_log_add ('Werkplekbezetting niet verplaatst (zelfde _VAR(werkplekkey)=' || TO_CHAR (oldwerkplekkey) || ')',
|
||||
'MOVE',
|
||||
scenariokey
|
||||
);
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
IF pwerkplekkey IS NOT NULL
|
||||
THEN
|
||||
-- Voldoet de meegegeven voorkeurswerkplek?
|
||||
SELECT NVL (SUM (pwx.prj_perslidwerkplek_bezetting), 0)
|
||||
INTO reedsbezet
|
||||
FROM prj_perslidwerkplek pwx
|
||||
WHERE pwx.prj_werkplek_key = pwerkplekkey
|
||||
AND prj_perslidwerkplek_verwijder IS NULL;
|
||||
|
||||
-- meegegeven werkplek past en is bepaald in werkplekkey
|
||||
IF reedsbezet + currentbezetting <= 100
|
||||
werkplekkey := pwerkplekkey;
|
||||
ELSE
|
||||
-- Is de bestemmingsruimte een andere dan de huidige?
|
||||
IF pruimtekey = oldruimtekey
|
||||
THEN
|
||||
werkplekkey := pwerkplekkey;
|
||||
prj_log_add ('Werkplekbezetting niet verplaatst (zelfde ruimtekey=' || TO_CHAR (oldruimtekey) || ')',
|
||||
'MOVE',
|
||||
scenariokey
|
||||
);
|
||||
RETURN;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Is de bestemmingsruimte een andere dan de huidige?
|
||||
IF pruimtekey = oldruimtekey AND werkplekkey = -1
|
||||
THEN
|
||||
prj_log_add
|
||||
( 'Werkplekbezetting niet verplaatst (zelfde ruimtekey='
|
||||
|| TO_CHAR (oldruimtekey)
|
||||
|| ')',
|
||||
'MOVE',
|
||||
scenariokey
|
||||
);
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
IF werkplekkey = -1
|
||||
THEN
|
||||
werkplekkey :=
|
||||
find_or_create_free_werkplek (pruimtekey, currentbezetting);
|
||||
werkplekkey := find_or_create_free_werkplek (pruimtekey, currentbezetting);
|
||||
END IF;
|
||||
|
||||
-- Er is nu een werkplekkey bepaald.
|
||||
UPDATE prj_perslidwerkplek
|
||||
SET prj_werkplek_key = werkplekkey
|
||||
WHERE prj_perslidwerkplek_key = pperslidwerkplekkey
|
||||
AND prj_werkplek_key <> werkplekkey;
|
||||
-- niet onnodig moven (dubbelcheck)
|
||||
WHERE prj_perslidwerkplek_key = pperslidwerkplekkey AND prj_werkplek_key <> werkplekkey;
|
||||
|
||||
-- niet onnodig moven (dubbelcheck)
|
||||
COMMIT;
|
||||
END;
|
||||
|
||||
@@ -706,66 +676,71 @@ AS
|
||||
-- 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.
|
||||
-------------------------------------
|
||||
PROCEDURE prj_move_perslid (
|
||||
pperslidkey IN NUMBER,
|
||||
pruimtekey IN NUMBER,
|
||||
pwerkplekkey IN NUMBER
|
||||
)
|
||||
IS
|
||||
PROCEDURE prj_move_perslid (pperslidkey IN NUMBER, pruimtekey IN NUMBER, pwerkplekkey IN NUMBER)
|
||||
AS
|
||||
reedsbezet prj_perslidwerkplek.prj_perslidwerkplek_bezetting%TYPE;
|
||||
doelbezetting prj_perslidwerkplek.prj_perslidwerkplek_bezetting%TYPE;
|
||||
werkplekkey prj_werkplek.prj_werkplek_key%TYPE;
|
||||
werkpleknr prj_werkplek.prj_werkplek_volgnr%TYPE;
|
||||
werkplekomschrijving prj_werkplek.prj_werkplek_omschrijving%TYPE;
|
||||
scenariokey prj_ruimte.prj_scenario_key%TYPE;
|
||||
oudepwpkey prj_perslidwerkplek.prj_perslidwerkplek_key%TYPE;
|
||||
BEGIN
|
||||
werkplekkey := -1;
|
||||
|
||||
-- Wat is de te gebruiken bezetting van deze persoon (100 minus reeds op andere plekken aanwezig)?
|
||||
-- TODO: dienstverband verwerken
|
||||
-- TODO: persoon kan ook nog bezetting hebben op verdiepingen die niet bij het project betrokken zijn!!
|
||||
SELECT 100 - NVL (SUM (pwx.prj_perslidwerkplek_bezetting), 0)
|
||||
INTO doelbezetting
|
||||
FROM prj_perslidwerkplek pwx, prj_werkplek pw
|
||||
WHERE pwx.prs_perslid_key = pperslidkey
|
||||
AND pw.prj_ruimte_key = pruimtekey
|
||||
--AND pw.prj_ruimte_key = pruimtekey
|
||||
AND pwx.prj_werkplek_key = pw.prj_werkplek_key
|
||||
AND prj_perslidwerkplek_verwijder IS NULL;
|
||||
|
||||
IF pwerkplekkey IS NOT NULL
|
||||
THEN
|
||||
-- Voldoet de meegegeven voorkeurswerkplek?
|
||||
SELECT NVL (SUM (pwx.prj_perslidwerkplek_bezetting), 0)
|
||||
INTO reedsbezet
|
||||
FROM prj_perslidwerkplek pwx
|
||||
WHERE pwx.prj_werkplek_key = pwerkplekkey
|
||||
AND prj_perslidwerkplek_verwijder IS NULL;
|
||||
werkplekkey := pwerkplekkey;
|
||||
ELSE
|
||||
werkplekkey := find_or_create_free_werkplek (pruimtekey, doelbezetting);
|
||||
END IF;
|
||||
|
||||
-- meegegeven werkplek past en is bepaald in werkplekkey
|
||||
IF reedsbezet + doelbezetting <= 100
|
||||
-- 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_perslidwerkplek_bezetting = doelbezetting,
|
||||
prj_werkplek_key = werkplekkey
|
||||
WHERE prj_perslidwerkplek_key = oudepwpkey;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
werkplekkey := pwerkplekkey;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF werkplekkey = -1
|
||||
THEN
|
||||
werkplekkey :=
|
||||
find_or_create_free_werkplek (pruimtekey, doelbezetting);
|
||||
END IF;
|
||||
|
||||
--DBMS_OUTPUT.put_line ('werkplekkey:' || TO_CHAR (werkplekkey));
|
||||
|
||||
-- Er is nu een werkplekkey bepaald.
|
||||
INSERT INTO prj_perslidwerkplek
|
||||
(prj_werkplek_key, prs_perslid_key,
|
||||
prj_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (werkplekkey, pperslidkey,
|
||||
doelbezetting
|
||||
);
|
||||
--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, prj_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (werkplekkey, pperslidkey, doelbezetting
|
||||
);
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
|
||||
|
||||
----------------------------------------------
|
||||
-- SCENARIO COMMIT PROCEDURES
|
||||
----------------------------------------------
|
||||
|
||||
614
PRJ/PRJ_VIE.SRC
614
PRJ/PRJ_VIE.SRC
@@ -1,200 +1,13 @@
|
||||
#ifdef PRJ
|
||||
/* PRJ_VIE.SRC
|
||||
*
|
||||
* $Revision: 55 $
|
||||
* $Modtime: 12-05-06 10:21 $
|
||||
* $Revision: 56 $
|
||||
* $Modtime: 2-06-06 11:08 $
|
||||
*/
|
||||
|
||||
/*
|
||||
* DELEN ...
|
||||
<prj_v_prj_deel_nieuw> : nieuwe delen in PRJ
|
||||
<prj_v_ins_deel_nieuw> : nieuwe delen in INS {sinds afsplitsing PRJ}
|
||||
<prj_v_deel_nieuw> : <prj_v_prj_deel_nieuw> UNION <prj_v_ins_deel_nieuw>
|
||||
<prj_v_prj_deel_herstel> : verwijderd in INS, niet verwijderd in PRJ
|
||||
<prj_v_deel_nieuw2> : <prj_v_prj_deel_nieuw> UNION <prj_v_prj_deel_herstel>
|
||||
<prj_v_deel_verplaatst> : plaats in PRJ niet hetzelfde als in INS
|
||||
<prj_v_deel_gewijzigd> : select * from <prj_v_deel_verplaatst>
|
||||
<prj_v_deel_verwijderd> : in PRJ verwijderd, in INS niet verwijderd
|
||||
<prj_v_deel_plaatsaanduiding> : o.a. ophalen plaatsaanduiding deel in PRJ
|
||||
* WERKPLEKKEN ...
|
||||
<prj_v_prj_werkplek_nieuw> : nieuw werkplekken in PRJ
|
||||
<prj_v_prj_werkplek_herstel> : werkplekken verwijderd in PRS maar die niet
|
||||
zijn verwijderd in PRJ
|
||||
<prj_v_werkplek_nieuw> : <prj_v_prj_werkplek_nieuw> UNION <prj_v_prj_werkplek_herstel>
|
||||
<prj_v_werkplek_verplaatst> : plaats in PRS niet hetzelfde als in PRJ
|
||||
<prj_v_werkplek_verwijderd> : niet verwijderd in PRS, verwijderd in PRJ
|
||||
<prj_v_werkplek_gewijzigd> : <prj_v_werkplek_nieuw> UNION <prj_v_werkplek_verplaatst>
|
||||
<prj_v_prs_werkplek_nieuw> : werkplekken toegevoegd aan PRS sinds afsplitsing PRJ
|
||||
<cad_v_prs_werkplek_nieuw> : select * from <prj_v_prs_werkplek_nieuw>
|
||||
* RUIMTEN ...
|
||||
<prj_v_ruimte_verwijderd> : in PRJ verwijderd, in ALG niet verwijderd
|
||||
<prj_v_ruimte_gewijzigd> : verschil in omtrek en/of oppervlakte tussen PRJ en ALG
|
||||
<prj_v_prj_ruimte_nieuw> : nieuwe ruimten in PRJ
|
||||
<prj_v_prj_ruimte_herstel> : ruimten verwijderd in ALG maar die niet
|
||||
zijn verwijderd in PRJ
|
||||
<prj_v_ruimte_nieuw> : <prj_v_prj_ruimte_nieuw> UNION <prj_v_prj_ruimte_herstel>
|
||||
<prj_v_ruimte_oppervlakte> : oude (ALG), en nieuwe (PRJ) oppervlakte
|
||||
<prj_v_alg_ruimte_nieuw> : ruimten toegevoegd aan ALG nadat project is afgesplitst
|
||||
<prj_v_prj_ruimte_aanduiding> : aanduiding ruimten van PRJ
|
||||
<prj_v_alg_ruimte_aanduiding> : aanduiding ruimten van ALG
|
||||
* VERDIEPINGEN ...
|
||||
<prj_v_alg_verdiepingen> : selecteer alle verdiepingen van een bepaald project
|
||||
*/
|
||||
|
||||
#include "comsql.h"
|
||||
|
||||
|
||||
CREATE_VIEW(prj_v_deel_plaatsaanduiding, PRJ_NORMAAL_PRIVILEGE)
|
||||
( alg_plaatsaanduiding
|
||||
, prs_werkplek_key
|
||||
, prs_werkplek_verwijder
|
||||
, ins_deel_key
|
||||
, ins_deel_omschrijving
|
||||
, ins_deel_verwijder
|
||||
, ins_srtdeel_key
|
||||
, prj_scenario_key)
|
||||
AS
|
||||
SELECT alg_g.alg_gebouw_code || ' - ' || alg_v.alg_verdieping_code || ' - ' || prj_r.prj_ruimte_nr, TO_NUMBER (NULL),
|
||||
TO_DATE (NULL), prj_d.ins_deel_key, prj_d.prj_deel_omschrijving, prj_d.prj_deel_verwijder,
|
||||
prj_d.ins_srtdeel_key, prj_d.prj_scenario_key
|
||||
FROM prj_deel prj_d, prj_ruimte prj_r, alg_verdieping alg_v, alg_gebouw alg_g
|
||||
WHERE prj_d.prj_alg_ruimte_key = prj_r.alg_ruimte_key
|
||||
AND prj_d.prj_alg_ruimte_type = 'R'
|
||||
AND prj_r.alg_verdieping_key = alg_v.alg_verdieping_key
|
||||
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
|
||||
AND prj_d.prj_scenario_key = prj_r.prj_scenario_key
|
||||
UNION
|
||||
SELECT alg_g.alg_gebouw_code
|
||||
|| ' - '
|
||||
|| alg_v.alg_verdieping_code
|
||||
|| ' - '
|
||||
|| prj_r.prj_ruimte_nr
|
||||
|| '/'
|
||||
|| TO_CHAR (prj_w.prj_werkplek_volgnr),
|
||||
prj_w.prs_werkplek_key, prj_w.prj_werkplek_verwijder, prj_d.ins_deel_key, prj_d.prj_deel_omschrijving,
|
||||
prj_d.prj_deel_verwijder, prj_d.ins_srtdeel_key, prj_d.prj_scenario_key
|
||||
FROM prj_deel prj_d, prj_werkplek prj_w, prj_ruimte prj_r, alg_verdieping alg_v, alg_gebouw alg_g
|
||||
WHERE prj_d.prj_alg_ruimte_key = prj_w.prs_werkplek_key
|
||||
AND prj_d.prj_alg_ruimte_type = 'W'
|
||||
AND prj_w.prj_ruimte_key = prj_r.alg_ruimte_key
|
||||
AND prj_r.alg_verdieping_key = alg_v.alg_verdieping_key
|
||||
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
|
||||
AND prj_d.prj_scenario_key = prj_w.prj_scenario_key
|
||||
AND prj_w.prj_scenario_key = prj_r.prj_scenario_key;
|
||||
|
||||
-- nieuwe delen in PRJ
|
||||
CREATE_VIEW(prj_v_prj_deel_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT ins_deel_key
|
||||
, prj_scenario_key
|
||||
FROM prj_deel PD
|
||||
WHERE NOT EXISTS (SELECT ins_deel_key FROM ins_deel ID
|
||||
WHERE PD.ins_deel_key = ID.ins_deel_key
|
||||
AND rownum = 1)
|
||||
AND PD.ins_deel_verwijder IS NULL;
|
||||
|
||||
-- object is in PRJ van ruimte gewijzigd, van/aan werkplek (los)gekoppeld of als onderdeel van een werkplek verplaatst.
|
||||
CREATE_VIEW(prj_v_deel_verplaatst, PRJ_NORMAAL_PRIVILEGE)
|
||||
-- Verplaatsing van Ruimte naar Werkplek of omgekeerd + verplaatsing
|
||||
-- van de ene Ruimte (Werkplek) naar een andere Ruimte (Werkplek).
|
||||
AS SELECT DISTINCT
|
||||
PRJ_D.ins_deel_key
|
||||
, PRJ_D.prj_scenario_key
|
||||
FROM ins_deel INS_D
|
||||
, prj_deel PRJ_D
|
||||
WHERE PRJ_D.ins_deel_key = INS_D.ins_deel_key
|
||||
AND (PRJ_D.ins_alg_ruimte_type <> INS_D.ins_alg_ruimte_type
|
||||
OR
|
||||
(PRJ_D.ins_alg_ruimte_type = INS_D.ins_alg_ruimte_type
|
||||
AND
|
||||
PRJ_D.ins_alg_ruimte_key <> INS_D.ins_alg_ruimte_key))
|
||||
AND INS_D.ins_deel_verwijder IS NULL
|
||||
AND PRJ_D.ins_deel_verwijder IS NULL
|
||||
UNION
|
||||
-- Werkplek waar een deel aan gekoppeld is, is veranderd van plaats.
|
||||
SELECT DISTINCT
|
||||
PRJ_D.ins_deel_key
|
||||
, PRJ_D.prj_scenario_key
|
||||
FROM ins_deel INS_D
|
||||
, prj_deel PRJ_D
|
||||
, prj_werkplek PRJ_W
|
||||
, prs_werkplek PRS_W
|
||||
WHERE PRJ_D.ins_deel_key = INS_D.ins_deel_key
|
||||
AND PRJ_D.ins_alg_ruimte_key = INS_D.ins_alg_ruimte_key
|
||||
AND PRJ_D.ins_alg_ruimte_type = INS_D.ins_alg_ruimte_type
|
||||
AND PRJ_D.ins_alg_ruimte_type = 'W'
|
||||
AND PRJ_D.ins_alg_ruimte_key = PRJ_W.prs_werkplek_key
|
||||
AND INS_D.ins_alg_ruimte_key = PRS_W.prs_werkplek_key
|
||||
AND PRJ_W.prs_alg_ruimte_key <> PRS_W.prs_alg_ruimte_key
|
||||
AND PRJ_D.prj_scenario_key = PRJ_W.prj_scenario_key
|
||||
AND INS_D.ins_deel_verwijder IS NULL
|
||||
AND PRJ_D.ins_deel_verwijder IS NULL;
|
||||
|
||||
-- nieuw werkplekken in PRJ
|
||||
CREATE_VIEW(prj_v_prj_werkplek_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS
|
||||
SELECT prs_werkplek_key, prj_scenario_key
|
||||
FROM prj_werkplek prj_w
|
||||
WHERE prj_w.prs_werkplek_key IS NULL;
|
||||
|
||||
-- werkplekken verwijderd in PRS maar die niet zijn verwijderd in PRJ
|
||||
CREATE_VIEW(prj_v_prj_werkplek_herstel, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS
|
||||
SELECT prj_r.alg_ruimte_key, prj_r.prj_scenario_key
|
||||
FROM prj_ruimte prj_r, alg_ruimte alg_r
|
||||
WHERE prj_r.alg_ruimte_key = alg_r.alg_ruimte_key
|
||||
AND prj_r.prj_ruimte_verwijder IS NULL
|
||||
AND alg_r.alg_ruimte_verwijder IS NOT NULL;
|
||||
|
||||
-- plaats in PRS niet hetzelfde als in PRJ
|
||||
CREATE_VIEW(prj_v_werkplek_verplaatst, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS
|
||||
SELECT prj_w.prs_werkplek_key, prj_w.prj_scenario_key
|
||||
FROM prj_werkplek prj_w, prs_werkplek prs_w, prj_ruimte rx
|
||||
WHERE prj_w.prs_werkplek_key = prs_w.prs_werkplek_key
|
||||
AND prj_w.prj_werkplek_verwijder IS NULL
|
||||
AND prs_w.prs_werkplek_verwijder IS NULL
|
||||
AND prj_w.prj_ruimte_key = rx.prj_ruimte_key
|
||||
AND prs_w.prs_alg_ruimte_key <> rx.alg_ruimte_key;
|
||||
|
||||
-- <prj_v_prj_werkplek_nieuw> UNION <prj_v_prj_werkplek_herstel>
|
||||
CREATE_VIEW(prj_v_werkplek_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT *
|
||||
FROM prj_v_prj_werkplek_nieuw
|
||||
UNION
|
||||
SELECT *
|
||||
FROM prj_v_prj_werkplek_herstel;
|
||||
|
||||
-- niet verwijderd in PRS, verwijderd in PRJ
|
||||
CREATE_VIEW(prj_v_werkplek_verwijderd, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS
|
||||
SELECT prj_w.prs_werkplek_key, prj_w.prj_scenario_key
|
||||
FROM prs_werkplek prs_w, prj_werkplek prj_w
|
||||
WHERE prs_w.prs_werkplek_key = prj_w.prs_werkplek_key
|
||||
AND prs_w.prs_werkplek_verwijder IS NULL
|
||||
AND prj_w.prj_werkplek_verwijder IS NOT NULL;
|
||||
|
||||
|
||||
-- niet verwijderd in PRS, in PRJ met ruimte_key = 0 (wel + niet 'verwijderde')
|
||||
CREATE_VIEW(prj_v_prj_werkplek_mag_delete, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT -1, -1
|
||||
FROM DUAL;
|
||||
|
||||
-- prj_v_werkplek_verwijderd UNION prj_v_prj_werkplek_mag_delete
|
||||
CREATE_VIEW(prj_v_werkplek_verwijderd_all, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT *
|
||||
FROM prj_v_werkplek_verwijderd
|
||||
UNION
|
||||
SELECT *
|
||||
FROM prj_v_prj_werkplek_mag_delete;
|
||||
|
||||
-- <prj_v_werkplek_nieuw> UNION <prj_v_werkplek_verplaatst>
|
||||
CREATE_VIEW(prj_v_werkplek_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT *
|
||||
FROM prj_v_werkplek_nieuw
|
||||
UNION
|
||||
SELECT *
|
||||
FROM prj_v_werkplek_verplaatst;
|
||||
|
||||
-- selecteer alle verdiepingen van een bepaald project
|
||||
CREATE_VIEW(prj_v_alg_verdiepingen, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS
|
||||
@@ -202,160 +15,6 @@ SELECT DISTINCT alg_verdieping_key, prj_scenario_key
|
||||
FROM prj_ruimte
|
||||
WHERE alg_verdieping_key IS NOT NULL;
|
||||
|
||||
-- nieuwe delen in INS {sinds afsplitsing PRJ}
|
||||
CREATE_VIEW(prj_v_ins_deel_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT INS_I.ins_deel_key
|
||||
, PRJ_V.prj_scenario_key
|
||||
FROM ins_v_ins_deel_verdieping INS_I,
|
||||
prj_v_alg_verdiepingen PRJ_V
|
||||
WHERE INS_I.alg_verdieping_key = PRJ_V.alg_verdieping_key
|
||||
AND INS_I.ins_deel_key NOT IN (SELECT ins_deel_key
|
||||
FROM prj_deel PRJ_D
|
||||
WHERE PRJ_D.prj_scenario_key = PRJ_V.prj_scenario_key);
|
||||
|
||||
-- <prj_v_prj_deel_nieuw> UNION <prj_v_ins_deel_nieuw>
|
||||
CREATE_VIEW(prj_v_deel_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT *
|
||||
FROM prj_v_prj_deel_nieuw
|
||||
UNION
|
||||
SELECT *
|
||||
FROM prj_v_ins_deel_nieuw;
|
||||
|
||||
-- verwijderd in INS, niet verwijderd in PRJ
|
||||
CREATE_VIEW(prj_v_prj_deel_herstel, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT PRJ_D.ins_deel_key
|
||||
, PRJ_D.prj_scenario_key
|
||||
FROM prj_deel PRJ_D,
|
||||
ins_deel INS_D
|
||||
WHERE PRJ_D.ins_deel_key = INS_D.ins_deel_key
|
||||
AND PRJ_D.ins_deel_verwijder IS NULL
|
||||
AND INS_D.ins_deel_verwijder IS NOT NULL;
|
||||
|
||||
-- <prj_v_prj_deel_nieuw> UNION <prj_v_prj_deel_herstel>
|
||||
CREATE_VIEW(prj_v_deel_nieuw2, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT *
|
||||
FROM prj_v_prj_deel_herstel
|
||||
UNION
|
||||
SELECT *
|
||||
FROM prj_v_prj_deel_nieuw;
|
||||
|
||||
-- in PRJ verwijderd, in INS niet verwijderd
|
||||
CREATE_VIEW(prj_v_deel_verwijderd, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT PRJ_D.ins_deel_key
|
||||
, PRJ_D.prj_scenario_key
|
||||
FROM prj_deel PRJ_D
|
||||
WHERE EXISTS (SELECT ins_deel_key FROM ins_deel INS_D
|
||||
WHERE PRJ_D.ins_deel_key = INS_D.ins_deel_key
|
||||
AND INS_D.ins_deel_verwijder IS NULL
|
||||
AND PRJ_D.ins_deel_verwijder IS NOT NULL
|
||||
AND rownum = 1);
|
||||
|
||||
-- alle in prj verwijderde objecten, en objecten die in het magazijn staan.
|
||||
CREATE_VIEW(prj_v_deel_verwijderd_all, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT PRJ_D.ins_deel_key
|
||||
, PRJ_D.prj_scenario_key
|
||||
FROM prj_deel PRJ_D
|
||||
, ins_deel INS_D
|
||||
WHERE INS_D.ins_deel_key = PRJ_D.ins_deel_key
|
||||
AND INS_D.ins_deel_verwijder IS NULL
|
||||
AND PRJ_D.ins_deel_verwijder IS NOT NULL
|
||||
AND PRJ_D.ins_alg_ruimte_key <> 0
|
||||
UNION
|
||||
SELECT PRJ_D.ins_deel_key
|
||||
, PRJ_D.prj_scenario_key
|
||||
FROM prj_deel PRJ_D
|
||||
, ins_deel INS_D
|
||||
WHERE INS_D.ins_deel_key = PRJ_D.ins_deel_key
|
||||
AND INS_D.ins_deel_verwijder IS NULL
|
||||
AND PRJ_D.ins_alg_ruimte_key = 0;
|
||||
|
||||
|
||||
-- select * from <prj_v_deel_verplaatst>
|
||||
CREATE_VIEW(prj_v_deel_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT *
|
||||
FROM prj_v_deel_verplaatst;
|
||||
|
||||
-- ruimten toegevoegd aan ALG nadat project is afgesplitst
|
||||
CREATE_VIEW(prj_v_alg_ruimte_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT ALG_R.alg_ruimte_key
|
||||
, PRJ_V.prj_scenario_key
|
||||
FROM alg_v_alg_ruimte_verdieping ALG_R,
|
||||
prj_v_alg_verdiepingen PRJ_V
|
||||
WHERE ALG_R.alg_verdieping_key = PRJ_V.alg_verdieping_key
|
||||
AND ALG_R.alg_ruimte_key NOT IN (SELECT alg_ruimte_key
|
||||
FROM prj_ruimte
|
||||
WHERE prj_scenario_key = PRJ_V.prj_scenario_key);
|
||||
|
||||
-- in PRJ verwijderd, in ALG niet verwijderd
|
||||
CREATE_VIEW(prj_v_ruimte_verwijderd, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS
|
||||
SELECT prj_r.alg_ruimte_key, prj_r.prj_scenario_key
|
||||
FROM prj_ruimte prj_r, alg_ruimte alg_r
|
||||
WHERE prj_r.alg_ruimte_key = alg_r.alg_ruimte_key
|
||||
AND prj_r.prj_ruimte_verwijder IS NOT NULL
|
||||
AND alg_r.alg_ruimte_verwijder IS NULL;
|
||||
|
||||
-- verschil in omtrek en/of oppervlakte tussen PRJ en ALG
|
||||
CREATE_VIEW(prj_v_ruimte_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT prj_r.alg_ruimte_key, prj_r.prj_scenario_key
|
||||
FROM prj_ruimte prj_r, alg_ruimte alg_r
|
||||
WHERE prj_r.alg_ruimte_key = alg_r.alg_ruimte_key
|
||||
AND ( prj_r.prj_ruimte_bruto_vloeropp <> alg_r.alg_ruimte_bruto_vloeropp
|
||||
OR prj_r.prj_ruimte_omtrek <> alg_r.alg_ruimte_omtrek
|
||||
)
|
||||
AND prj_r.prj_ruimte_verwijder IS NULL
|
||||
AND alg_r.alg_ruimte_verwijder IS NULL;
|
||||
|
||||
-- nieuwe ruimten in PRJ
|
||||
CREATE_VIEW(prj_v_prj_ruimte_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS
|
||||
SELECT alg_ruimte_key, prj_scenario_key
|
||||
FROM prj_ruimte prj_r
|
||||
WHERE prj_r.alg_ruimte_key IS NULL;
|
||||
|
||||
-- ruimten verwijderd in ALG maar die niet zijn verwijderd in PRJ
|
||||
CREATE_VIEW(prj_v_prj_ruimte_herstel, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT prj_r.alg_ruimte_key, prj_r.prj_scenario_key
|
||||
FROM prj_ruimte prj_r, alg_ruimte alg_r
|
||||
WHERE prj_r.alg_ruimte_key = alg_r.alg_ruimte_key
|
||||
AND prj_r.prj_ruimte_verwijder IS NULL
|
||||
AND alg_r.alg_ruimte_verwijder IS NOT NULL;
|
||||
|
||||
-- <prj_v_prj_ruimte_nieuw> UNION <prj_v_prj_ruimte_herstel>
|
||||
CREATE_VIEW(prj_v_ruimte_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT *
|
||||
FROM prj_v_prj_ruimte_nieuw
|
||||
UNION
|
||||
SELECT *
|
||||
FROM prj_v_prj_ruimte_herstel;
|
||||
|
||||
-- werkplekken toegevoegd aan PRS sinds afsplitsing PRJ
|
||||
CREATE_VIEW(prj_v_prs_werkplek_nieuw, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT PRS_W.prs_werkplek_key
|
||||
, PRJ_V.prj_scenario_key
|
||||
FROM prj_v_alg_verdiepingen PRJ_V
|
||||
, prs_werkplek PRS_W
|
||||
, alg_ruimte ALG_R
|
||||
WHERE PRS_W.prs_werkplek_key NOT IN (SELECT PRJ_W.prs_werkplek_key
|
||||
FROM prj_werkplek PRJ_W
|
||||
WHERE PRJ_W.prs_werkplek_key = PRS_W.prs_werkplek_key)
|
||||
AND PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key
|
||||
AND PRS_W.prs_werkplek_verwijder IS NULL
|
||||
AND ALG_R.alg_verdieping_key = PRJ_V.alg_verdieping_key;
|
||||
|
||||
-- aanduiding ruimten van PRJ
|
||||
CREATE_VIEW(prj_v_prj_ruimte_aanduiding, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT PRJ_R.alg_ruimte_key
|
||||
, PRJ_R.prj_scenario_key
|
||||
, ALG_G.alg_gebouw_code ||' - '
|
||||
|| ALG_V.alg_verdieping_code ||' - '
|
||||
|| PRJ_R.alg_ruimte_nr plaatsaanduiding
|
||||
FROM prj_ruimte PRJ_R
|
||||
, alg_verdieping ALG_V
|
||||
, alg_gebouw ALG_G
|
||||
WHERE PRJ_R.alg_verdieping_key = ALG_V.alg_verdieping_key
|
||||
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key;
|
||||
|
||||
-- aanduiding ruimten van ALG
|
||||
CREATE_VIEW(prj_v_alg_ruimte_aanduiding, PRJ_NORMAAL_PRIVILEGE)
|
||||
AS SELECT ALG_R.alg_ruimte_key
|
||||
@@ -369,59 +28,6 @@ AS SELECT ALG_R.alg_ruimte_key
|
||||
WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
|
||||
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key;
|
||||
|
||||
-- oude (ALG), en nieuwe (PRJ) oppervlakte
|
||||
CREATE_VIEW(prj_v_ruimte_oppervlakte, PRJ_NORMAAL_PRIVILEGE)
|
||||
(alg_ruimte_key,
|
||||
prj_scenario_key,
|
||||
oud_vloeropp,
|
||||
nieuw_vloeropp) AS
|
||||
SELECT prj_r.alg_ruimte_key, prj_r.prj_scenario_key, alg_r.alg_ruimte_bruto_vloeropp,
|
||||
prj_r.prj_ruimte_bruto_vloeropp
|
||||
FROM alg_ruimte alg_r, prj_ruimte prj_r
|
||||
WHERE alg_r.alg_ruimte_key = prj_r.prj_ruimte_key;
|
||||
|
||||
-- Delen die in virtuele magazijn staan of zijn gekoppeld aan een werkplek die in
|
||||
-- het virtuele magazijn staat met de volgende aanvullende condities: deel komt voor in
|
||||
-- PRJ en INS, tevens is het deel in INS niet verwijderd.
|
||||
CREATE_VIEW(prj_v_prj_deel_mag_delete, PRJ_NORMAAL_PRIVILEGE)
|
||||
( alg_plaatsaanduiding
|
||||
, ins_deel_omschrijving
|
||||
, ins_deel_key
|
||||
, ins_srtdeel_omschrijving
|
||||
, prj_scenario_key
|
||||
, alg_verdieping_key)
|
||||
AS SELECT INS_P.alg_plaatsaanduiding
|
||||
, INS_P.ins_deel_omschrijving
|
||||
, PRJ_D.ins_deel_key
|
||||
, INS_S.ins_srtdeel_omschrijving
|
||||
, PRJ_D.prj_scenario_key
|
||||
, INS_P.alg_verdieping_key
|
||||
FROM prj_deel PRJ_D
|
||||
, ins_v_deel_plaatsaanduiding_R INS_P
|
||||
, ins_srtdeel INS_S
|
||||
WHERE INS_P.ins_deel_key = PRJ_D.ins_deel_key
|
||||
AND PRJ_D.ins_srtdeel_key = INS_S.ins_srtdeel_key
|
||||
AND PRJ_D.ins_alg_ruimte_key = 0
|
||||
AND PRJ_D.ins_alg_ruimte_type = 'R'
|
||||
AND INS_P.ins_deel_verwijder IS NULL
|
||||
UNION
|
||||
SELECT INS_P.alg_plaatsaanduiding
|
||||
, INS_P.ins_deel_omschrijving
|
||||
, PRJ_D.ins_deel_key
|
||||
, INS_S.ins_srtdeel_omschrijving
|
||||
, PRJ_D.prj_scenario_key
|
||||
, INS_P.alg_verdieping_key
|
||||
FROM prj_deel PRJ_D
|
||||
, ins_v_deel_plaatsaanduiding_W INS_P
|
||||
, ins_srtdeel INS_S
|
||||
, prj_werkplek PRJ_W
|
||||
WHERE INS_P.ins_deel_key = PRJ_D.ins_deel_key
|
||||
AND PRJ_D.ins_srtdeel_key = INS_S.ins_srtdeel_key
|
||||
AND PRJ_D.ins_alg_ruimte_type = 'W'
|
||||
AND PRJ_W.prs_werkplek_key = PRJ_D.ins_alg_ruimte_key
|
||||
AND PRJ_W.prj_scenario_key = PRJ_D.prj_scenario_key
|
||||
AND PRJ_W.prs_alg_ruimte_key = 0
|
||||
AND INS_P.ins_deel_verwijder IS NULL;
|
||||
|
||||
-- wat suggesties:(gebruiken we ..1 en..2 of alg vs prj?)
|
||||
|
||||
@@ -468,8 +74,21 @@ CREATE_VIEW (prj_v_cad_thema_afdeling,0) (prj_ruimte_key, waarde)
|
||||
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;
|
||||
|
||||
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;
|
||||
|
||||
CREATE_VIEW (prj_v_cad_thema_srtruimte,0) (prj_ruimte_key, waarde)
|
||||
AS
|
||||
SELECT r.prj_ruimte_key, sr.alg_srtruimte_omschrijving
|
||||
@@ -495,7 +114,7 @@ AS
|
||||
GROUP BY wp.prj_ruimte_key;
|
||||
|
||||
// Hulpview voor de daaropvolgende
|
||||
CREATE_VIEW prj_v_cad_thema_onderhanden0, 0) (prj_ruimte_key1, prj_ruimte_key2)
|
||||
CREATE_VIEW (prj_v_cad_thema_onderhanden0, 0) (prj_ruimte_key1, prj_ruimte_key2)
|
||||
AS
|
||||
SELECT prj_rkey1, prj_rkey2
|
||||
FROM (SELECT algprs.prs_werkplek_key oud_wpkey, prj_w.prs_werkplek_key new_wpkey, algprs.alg_ruimte_key oud_rkey,
|
||||
@@ -547,96 +166,127 @@ AS
|
||||
-- GRAFISCHE LABELS
|
||||
-- GRAFISCHE LABELS
|
||||
|
||||
CREATE_VIEW (prj_v_cad_label_bewoner,0) (prj_ruimte_key, waarde, label_soort, label_key)
|
||||
CREATE_VIEW (prj_v_cad_label_bewoner,0) (prj_ruimte_key, waarde, label_soort, label_key, highlight)
|
||||
AS
|
||||
SELECT prs_w.prj_ruimte_key, '* [' || prs_a.prs_afdeling_naam || ']', 'PRJ_PERSLIDWERKPLEK',
|
||||
prs_pw.prj_perslidwerkplek_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 prs_w.prj_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 || ')'),
|
||||
'PRJ_PERSLIDWERKPLEK', prs_pw.prj_perslidwerkplek_key
|
||||
FROM prj_ruimte prj_r, prj_werkplek prs_w, prj_perslidwerkplek prs_pw, prs_perslid prs_p
|
||||
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
|
||||
AND prs_pw.prs_perslid_key IS NOT NULL
|
||||
AND prs_w.prj_werkplek_verwijder IS NULL
|
||||
AND prs_pw.prj_perslidwerkplek_verwijder IS NULL
|
||||
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||||
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key;
|
||||
|
||||
SELECT DISTINCT /*Voor als in meerdere buffers*/
|
||||
prj_ruimte_key, waarde, label_soort, label_key, 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_PERSLIDWERKPLEK' label_soort, prs_pw.prj_perslidwerkplek_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, '', ', ' || prs_p.prs_perslid_voorletters)
|
||||
|| DECODE (prs_p.prs_perslid_voornaam, NULL, '', ' (' || prs_p.prs_perslid_voornaam || ')'),
|
||||
'PRJ_PERSLIDWERKPLEK', prs_pw.prj_perslidwerkplek_key
|
||||
FROM prj_ruimte prj_r, prj_werkplek prs_w, prj_perslidwerkplek prs_pw, prs_perslid prs_p
|
||||
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
|
||||
AND prs_pw.prs_perslid_key IS NOT NULL
|
||||
AND prs_w.prj_werkplek_verwijder IS NULL
|
||||
AND prs_pw.prj_perslidwerkplek_verwijder IS NULL
|
||||
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||||
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key) vdata,
|
||||
prj_selectie ps
|
||||
WHERE ps.prj_scenario_key(+) = vdata.prj_scenario_key AND ps.prj_selectie_tabelnaam(+) = label_soort
|
||||
AND ps.prj_selectie_tabelkey(+) = label_key;
|
||||
|
||||
// Note: the subselect in the FROM is *necessary* to force these record to be retrieved by outer join
|
||||
// else deleted prj_perslidwerkplek records are retrieved by inner join, and do not show up if
|
||||
// the _verwijder IS NULL is then applied.
|
||||
CREATE_VIEW (prj_v_cad_label_bewonerwp, 0) (prj_ruimte_key, waarde, label_soort, label_key)
|
||||
CREATE_VIEW (prj_v_cad_label_bewonerwp, 0) (prj_ruimte_key, waarde, label_soort, label_key, highlight)
|
||||
AS
|
||||
SELECT 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))
|
||||
|| '%',
|
||||
'PRJ_PERSLIDWERKPLEK', prs_pw.prj_perslidwerkplek_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 prs_w.prj_ruimte_key,
|
||||
CHR (1)
|
||||
|| prs_w.prj_werkplek_volgnr
|
||||
|| ' '
|
||||
|| 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 || ')')
|
||||
|| ': '
|
||||
|| TO_CHAR (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0))
|
||||
|| '%',
|
||||
'PRJ_PERSLIDWERKPLEK', prs_pw.prj_perslidwerkplek_key
|
||||
FROM prj_ruimte prj_r, prj_werkplek prs_w, (select * from prj_perslidwerkplek where prj_perslidwerkplek_verwijder is null) prs_pw, prs_perslid prs_p
|
||||
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
|
||||
AND prs_pw.prs_perslid_key IS NOT NULL
|
||||
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||||
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
|
||||
UNION
|
||||
SELECT prs_w.prj_ruimte_key,
|
||||
CHR (1)
|
||||
|| prs_w.prj_werkplek_volgnr
|
||||
|| ' Vrij: '
|
||||
|| TO_CHAR (100 - NVL (SUM (prs_wb.prj_perslidwerkplek_bezetting), 0))
|
||||
|| '%',
|
||||
'PRJ_WERKPLEK', prs_w.prj_werkplek_key
|
||||
FROM prj_werkplek prs_w, (select * from prj_perslidwerkplek where prj_perslidwerkplek_verwijder is null) prs_wb
|
||||
WHERE prs_w.prj_werkplek_key = prs_wb.prj_werkplek_key(+)
|
||||
AND prj_werkplek_verwijder is null
|
||||
GROUP BY prs_w.prj_ruimte_key, prs_w.prj_werkplek_key, prs_w.prj_werkplek_volgnr
|
||||
HAVING SUM (NVL (prs_wb.prj_perslidwerkplek_bezetting, 0)) < 100;
|
||||
SELECT DISTINCT /*Voor als in meerdere buffers*/
|
||||
prj_ruimte_key, waarde, label_soort, label_key, DECODE (prj_selectie_key, NULL, 0, 1)
|
||||
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_PERSLIDWERKPLEK' label_soort, prs_pw.prj_perslidwerkplek_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, NULL, '', ', ' || prs_p.prs_perslid_voorletters)
|
||||
|| DECODE (prs_p.prs_perslid_voornaam, NULL, '', ' (' || prs_p.prs_perslid_voornaam || ')')
|
||||
|| ': '
|
||||
|| TO_CHAR (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0))
|
||||
|| '%',
|
||||
'PRJ_PERSLIDWERKPLEK', prs_pw.prj_perslidwerkplek_key
|
||||
FROM prj_ruimte prj_r,
|
||||
prj_werkplek prs_w,
|
||||
(SELECT *
|
||||
FROM prj_perslidwerkplek
|
||||
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw,
|
||||
prs_perslid prs_p
|
||||
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
|
||||
AND prs_pw.prs_perslid_key IS NOT NULL
|
||||
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||||
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
|
||||
UNION
|
||||
SELECT -1, prs_w.prj_ruimte_key,
|
||||
CHR (1)
|
||||
|| prs_w.prj_werkplek_volgnr
|
||||
|| ' Vrij: '
|
||||
|| TO_CHAR (100 - NVL (SUM (prs_wb.prj_perslidwerkplek_bezetting), 0))
|
||||
|| '%',
|
||||
'PRJ_WERKPLEK', prs_w.prj_werkplek_key
|
||||
FROM prj_werkplek prs_w, (SELECT *
|
||||
FROM prj_perslidwerkplek
|
||||
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_wb
|
||||
WHERE prs_w.prj_werkplek_key = prs_wb.prj_werkplek_key(+) AND prj_werkplek_verwijder IS NULL
|
||||
GROUP BY prs_w.prj_ruimte_key, prs_w.prj_werkplek_key, prs_w.prj_werkplek_volgnr
|
||||
HAVING SUM (NVL (prs_wb.prj_perslidwerkplek_bezetting, 0)) < 100) DATA,
|
||||
prj_selectie ps
|
||||
WHERE ps.prj_scenario_key(+) = DATA.prj_scenario_key AND ps.prj_selectie_tabelnaam(+) = label_soort
|
||||
AND ps.prj_selectie_tabelkey(+) = label_key;
|
||||
|
||||
CREATE_VIEW (prj_v_cad_label_werkplekken,0) (prj_ruimte_key, waarde, label_soort, label_key, highlight)
|
||||
AS
|
||||
SELECT prj_ruimte_key, waarde, label_soort, label_key, DECODE (prj_selectie_key, NULL, 0, 1) highlight
|
||||
FROM (SELECT prj_scenario_key, prs_w.prj_ruimte_key,
|
||||
CHR (1)
|
||||
|| prs_w.prj_werkplek_volgnr
|
||||
|| ' ('
|
||||
|| TO_CHAR (SUM (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0)))
|
||||
|| '%)' waarde,
|
||||
'PRJ_WERKPLEK' label_soort, prs_w.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
|
||||
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key(+)
|
||||
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
|
||||
AND prs_w.prj_werkplek_verwijder IS NULL
|
||||
GROUP BY prj_scenario_key,
|
||||
prs_w.prj_ruimte_key,
|
||||
prs_w.prj_werkplek_volgnr,
|
||||
'PRJ_WERKPLEK',
|
||||
prs_w.prj_werkplek_key) vdata,
|
||||
prj_selectie ps
|
||||
WHERE ps.prj_scenario_key(+) = vdata.prj_scenario_key AND ps.prj_selectie_tabelnaam(+) = label_soort
|
||||
AND ps.prj_selectie_tabelkey(+) = label_key;
|
||||
|
||||
CREATE_VIEW (prj_v_cad_label_werkplekken,0) (prj_ruimte_key, waarde, label_soort, label_key)
|
||||
AS
|
||||
SELECT prs_w.prj_ruimte_key,
|
||||
CHR (1)
|
||||
|| prs_w.prj_werkplek_volgnr
|
||||
|| ' ('
|
||||
|| TO_CHAR (SUM (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0)))
|
||||
|| '%)',
|
||||
'PRJ_WERKPLEK', prs_w.prj_werkplek_key
|
||||
FROM prj_ruimte prj_r, prj_werkplek prs_w, prj_perslidwerkplek prs_pw
|
||||
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key(+) AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
|
||||
AND prs_w.prj_werkplek_verwijder IS NULL
|
||||
AND prs_pw.prj_perslidwerkplek_verwijder IS NULL
|
||||
GROUP BY prs_w.prj_ruimte_key, prs_w.prj_werkplek_volgnr, 'PRJ_WERKPLEK', prs_w.prj_werkplek_key;
|
||||
|
||||
//De objecten in een ruimte (de soort-keys kunnen worden gebruikt om onroerende objecten uit te sluiten)
|
||||
CREATE_VIEW (prj_v_cad_label_object,0) (prj_ruimte_key,
|
||||
|
||||
Reference in New Issue
Block a user