FSN#14942

svn path=/Database/trunk/; revision=9928
This commit is contained in:
Maykel Geerdink
2008-11-26 12:23:24 +00:00
parent 3ba818dc25
commit e25cea0a1f
2 changed files with 92 additions and 19 deletions

View File

@@ -1,8 +1,8 @@
#ifdef PRJ
/* PRJ_PAC.SRC
*
* $Revision: 55 $
* $Modtime: 7-10-08 14:01 $
* $Revision: 56 $
* $Modtime: 24-11-08 10:46 $
*/
/*
CODE COMMENTS, CONSIDERATIONS
@@ -310,16 +310,23 @@ AS
AND rx.prj_scenario_key = pscenariokey
AND pw.prs_perslid_key IS NOT NULL
AND wx.prj_ruimte_key = rx.prj_ruimte_key
AND rx.alg_verdieping_key = pverdiepingkey
UNION
SELECT NULL, pw.prs_perslidwerkplek_key, NULL, pw.prs_afdeling_key,
wx.prj_werkplek_key, pw.prs_perslidwerkplek_bezetting
FROM prs_perslidwerkplek pw, prj_werkplek wx, prj_ruimte rx
WHERE pw.prs_werkplek_key = wx.prs_werkplek_key
AND pw.prs_perslidwerkplek_verwijder IS NULL
AND rx.alg_verdieping_key = pverdiepingkey;
-- Kopieer de ruimteafdelingen
INSERT INTO prj_ruimteafdeling
(prj_ruimteafdeling_key, prs_ruimteafdeling_key,
prs_afdeling_key, prj_ruimte_key,
prj_ruimteafdeling_bezetting
)
SELECT NULL,
ra.prs_ruimteafdeling_key,
ra.prs_afdeling_key,
rx.prj_ruimte_key,
ra.prs_ruimteafdeling_bezetting
FROM prs_ruimteafdeling ra,
prj_ruimte rx
WHERE ra.alg_ruimte_key = rx.alg_ruimte_key
AND ra.prs_ruimteafdeling_verwijder IS NULL
AND rx.prj_scenario_key = pscenariokey
AND pw.prs_perslid_key IS NULL
AND wx.prj_ruimte_key = rx.prj_ruimte_key
AND rx.alg_verdieping_key = pverdiepingkey;
-- Kopieer de objecten
INSERT INTO prj_deel
@@ -804,6 +811,18 @@ AS
AND wx.prj_werkplek_key = pwx.prj_werkplek_key
AND rx.prj_ruimte_key = wx.prj_ruimte_key
AND rx.prj_scenario_key = sk;
CURSOR new_ruimteafdeling (sk IN NUMBER)
IS
SELECT rax.prs_afdeling_key,
rx.alg_ruimte_key,
prj_ruimteafdeling_bezetting,
rax.prj_ruimteafdeling_key
FROM prj_ruimteafdeling rax,
prj_ruimte rx
WHERE rx.prj_ruimte_key = rax.prj_ruimte_key
AND rax.prj_ruimteafdeling_verwijder IS NULL
AND rax.prs_ruimteafdeling_key IS NULL
AND rx.prj_scenario_key = sk;
CURSOR new_deel (sk IN NUMBER)
IS
SELECT dx.prj_deel_key, alg_locatie_key, prj_deel_omschrijving,
@@ -841,6 +860,7 @@ AS
aantal_r_toegevoegd NUMBER;
aantal_w_toegevoegd NUMBER;
aantal_pw_toegevoegd NUMBER;
aantal_ra_toegevoegd NUMBER;
aantal_d_toegevoegd NUMBER;
ruimte_nr alg_ruimte.alg_ruimte_nr%TYPE;
werkplek_nr prs_werkplek.prs_werkplek_volgnr%TYPE;
@@ -929,12 +949,10 @@ AS
LOOP
INSERT INTO prs_perslidwerkplek pw
(prs_perslid_key,
prs_afdeling_key,
prs_werkplek_key,
prs_perslidwerkplek_bezetting
)
VALUES (v_perslidwerkplek.prs_perslid_key,
v_perslidwerkplek.prs_afdeling_key,
v_perslidwerkplek.prs_werkplek_key,
v_perslidwerkplek.prj_perslidwerkplek_bezetting
);
@@ -942,6 +960,24 @@ AS
aantal_pw_toegevoegd := aantal_pw_toegevoegd + 1;
END LOOP;
--
-- RUIMTEAFDELINGBEZETTINGEN (anoniem)
--
aantal_ra_toegevoegd := 0;
FOR v_ruimteafdeling IN new_ruimteafdeling (pscenariokey)
LOOP
INSERT INTO prs_ruimteafdeling pw
(prs_afdeling_key,
alg_ruimte_key,
prs_ruimteafdeling_bezetting
)
VALUES (v_ruimteafdeling.prs_afdeling_key,
v_ruimteafdeling.alg_ruimte_key,
v_ruimteafdeling.prj_ruimteafdeling_bezetting
);
-- Bijwerken van de nieuwe keys is niet nodig..
aantal_ra_toegevoegd := aantal_ra_toegevoegd + 1;
END LOOP;
--
-- OBJECTEN
--
aantal_d_toegevoegd := 0;
@@ -1013,15 +1049,26 @@ AS
AND pr.prj_scenario_key = sk;
CURSOR perslidwerkplek_updates (sk IN NUMBER)
IS
SELECT prs_perslid_key, prs_afdeling_key,
prj_perslidwerkplek_bezetting, prs_perslidwerkplek_key,
prs_werkplek_key
SELECT prs_perslid_key, prj_perslidwerkplek_bezetting,
prs_perslidwerkplek_key, prs_werkplek_key
FROM prj_perslidwerkplek pwp, prj_werkplek wp, prj_ruimte rx
WHERE pwp.prj_werkplek_key = wp.prj_werkplek_key
AND wp.prj_ruimte_key = rx.prj_ruimte_key
AND wp.prj_werkplek_verwijder IS NULL
AND wp.prs_werkplek_key IS NOT NULL
AND rx.prj_scenario_key = sk;
CURSOR ruimteafdeling_updates (sk IN NUMBER)
IS
SELECT rax.prs_afdeling_key,
rx.alg_ruimte_key,
prj_ruimteafdeling_bezetting,
rax.prs_ruimteafdeling_key
FROM prj_ruimteafdeling rax,
prj_ruimte rx
WHERE rx.prj_ruimte_key = rax.prj_ruimte_key
AND rax.prj_ruimteafdeling_verwijder IS NULL
AND rax.prj_ruimteafdeling_key IS NOT NULL
AND rx.prj_scenario_key = sk;
werkplek_nr PRJ_WERKPLEK.prj_werkplek_volgnr%TYPE;
BEGIN
@@ -1094,12 +1141,21 @@ AS
UPDATE prs_perslidwerkplek r
SET prs_werkplek_key = cr.prs_werkplek_key,
prs_perslid_key = cr.prs_perslid_key,
prs_afdeling_key = cr.prs_afdeling_key,
prs_perslidwerkplek_bezetting =
cr.prj_perslidwerkplek_bezetting
WHERE r.prs_perslidwerkplek_verwijder IS NULL
AND r.prs_perslidwerkplek_key = cr.prs_perslidwerkplek_key;
END LOOP;
-- Bestaande ruimteafdelingen aanpassen
FOR cr IN ruimteafdeling_updates (pscenariokey)
LOOP
UPDATE prs_ruimteafdeling r
SET prs_afdeling_key = cr.prs_afdeling_key,
alg_ruimte_key = cr.alg_ruimte_key,
prs_ruimteafdeling_bezetting = cr.prj_ruimteafdeling_bezetting
WHERE r.prs_ruimteafdeling_verwijder IS NULL
AND r.prs_ruimteafdeling_key = cr.prs_ruimteafdeling_key;
END LOOP;
END;
END prj_commit_changes;
PROCEDURE prj_commit_deletions (pscenariokey IN NUMBER)
@@ -1141,6 +1197,18 @@ AS
AND ppw.prs_perslidwerkplek_key IS NOT NULL
AND rx.prj_scenario_key = pscenariokey)
WHERE p.prs_perslidwerkplek_verwijder IS NULL;
-- Vervallen ruimteafdelingen laten vervallen
UPDATE prs_ruimteafdeling p
SET prs_ruimteafdeling_verwijder =
(SELECT SYSDATE
FROM prj_ruimteafdeling pra,
prj_ruimte rx
WHERE pra.prj_ruimte_key = rx.prj_ruimte_key
AND pra.prs_ruimteafdeling_key = p.prs_ruimteafdeling_key
AND pra.prj_ruimteafdeling_verwijder IS NOT NULL
AND pra.prs_ruimteafdeling_key IS NOT NULL
AND rx.prj_scenario_key = pscenariokey)
WHERE p.prs_ruimteafdeling_verwijder IS NULL;
END prj_commit_deletions;
PROCEDURE prj_commit_cleanup (pscenariokey IN NUMBER)
AS