Bugfixjes
svn path=/Database/trunk/; revision=9273
This commit is contained in:
440
PRJ/PRJ_PAC.SRC
440
PRJ/PRJ_PAC.SRC
@@ -1,8 +1,28 @@
|
||||
#ifdef PRJ
|
||||
/* PRJ_PAC.SRC
|
||||
*
|
||||
* $Revision: 46 $
|
||||
* $Modtime: 31-05-06 17:35 $
|
||||
* $Revision: 47 $
|
||||
* $Modtime: 22-06-06 8:43 $
|
||||
*/
|
||||
/*
|
||||
CODE COMMENTS, CONSIDERATIONS
|
||||
|
||||
Voor een verdiepinging kan in 1 klap een scenario-omgeving worden aangemaakt: prj_initiate_scenario.
|
||||
Dit scenario kan worden geannuleerd met prj_cancel_scenario.
|
||||
|
||||
In een scenario bevat elk item een link naar zijn bron in the real world. Omdat dingen ook toegevoegd kunnen
|
||||
zijn, kan deze link ook leek zijn, In dat geval moet de relatie met de buitenwereld bekend zijn, om het nieuwe
|
||||
item later op de juiste plek in te kunnen vullen. Dat is:
|
||||
prj_ruimte: alg_ruimte_key of alg_verdieping_key (alg_srtruimte_key verplicht)
|
||||
prj_werkplek: prs_werkplek_key of prj_ruimte_key
|
||||
prj_perslidwerkplek: prs_perslidwerkplek_key of prj_werkplek x prs_perslid/prs_afdeling.
|
||||
prj_deel: ins_deel_key of prj_alg_ruimte_key/prj_alg_ruimte_type
|
||||
|
||||
Een scenarioruimte kan afwijkende soort en oppervlakte hebben.
|
||||
|
||||
Voor bron wordt zoveel mogelijk (altijd?) de originele keys gebruikt(alg_ruimte etc)
|
||||
en voor bestemming de prj keys (prj_ruimte etc)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef MS_SQL
|
||||
@@ -35,18 +55,17 @@ AS
|
||||
-- UTILITY PROCEDURES AND FUNCTIONS
|
||||
----------------------------------------------
|
||||
PROCEDURE prj_log_clear (pscenariokey IN NUMBER)
|
||||
IS
|
||||
AS
|
||||
BEGIN
|
||||
DELETE FROM prj_log
|
||||
WHERE prj_scenario_key = pscenariokey;
|
||||
END prj_log_clear;
|
||||
|
||||
PROCEDURE prj_log_add (
|
||||
logmelding IN VARCHAR2,
|
||||
code IN VARCHAR2,
|
||||
pscenariokey IN NUMBER
|
||||
logmelding IN VARCHAR2 ,
|
||||
code IN VARCHAR2 ,
|
||||
pscenariokey IN NUMBER
|
||||
)
|
||||
IS
|
||||
AS
|
||||
BEGIN
|
||||
BEGIN
|
||||
INSERT INTO prj_log
|
||||
@@ -59,13 +78,11 @@ AS
|
||||
THEN
|
||||
NULL;
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
-- COMMIT;
|
||||
END prj_log_add;
|
||||
|
||||
PROCEDURE checkscenario (pscenariokey IN NUMBER)
|
||||
IS
|
||||
dummy VARCHAR2 (1);
|
||||
AS
|
||||
dummy VARCHAR2 (1);
|
||||
BEGIN
|
||||
SELECT 'x'
|
||||
INTO dummy
|
||||
@@ -74,31 +91,26 @@ AS
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
raise_application_error
|
||||
(-20001,
|
||||
'prj package: invalid parameter pscenariokey'
|
||||
);
|
||||
raise_application_error(-20001, 'prj package: invalid parameter _VAR(pscenariokey)');
|
||||
RETURN;
|
||||
END checkscenario;
|
||||
|
||||
FUNCTION forceuniqueness (
|
||||
element_type IN VARCHAR2,
|
||||
parent_key IN NUMBER,
|
||||
element_omschrijving IN VARCHAR2
|
||||
element_type IN VARCHAR2 ,
|
||||
parent_key IN NUMBER,
|
||||
element_omschrijving IN VARCHAR2
|
||||
)
|
||||
RETURN VARCHAR2
|
||||
IS
|
||||
omschrijving VARCHAR2 (30);
|
||||
prefix VARCHAR2 (30);
|
||||
RETURN VARCHAR2 IS
|
||||
omschrijving VARCHAR2 (30);
|
||||
prefix VARCHAR2 (30);
|
||||
BEGIN
|
||||
IF element_type = 'ALG_RUIMTE'
|
||||
THEN
|
||||
-- Zoek op de geselecteerde verdieping of het huidige ruimtenummer al voor komt.
|
||||
BEGIN
|
||||
SELECT g.alg_gebouw_code
|
||||
|| '-'
|
||||
|| TO_CHAR (v.alg_verdieping_code)
|
||||
|| '-'
|
||||
|| '-'
|
||||
|| TO_CHAR (v.alg_verdieping_code)
|
||||
|| '-'
|
||||
INTO prefix
|
||||
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
|
||||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||||
@@ -106,20 +118,18 @@ AS
|
||||
AND r.alg_verdieping_key = parent_key
|
||||
AND r.alg_ruimte_nr = element_omschrijving
|
||||
AND r.alg_ruimte_verwijder IS NULL;
|
||||
|
||||
-- Gevonden, dus niet uniek. Probeer het met een sterretje ervoor, passen ze dat later maar zelf aan
|
||||
omschrijving :=
|
||||
forceuniqueness (element_type,
|
||||
parent_key,
|
||||
SUBSTR ('*' || element_omschrijving, 1, 10)
|
||||
SUBSTR ('*' || element_omschrijving, 1, 10)
|
||||
);
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
omschrijving := element_omschrijving;
|
||||
omschrijving := element_omschrijving;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
-- Voor werkplekken, die een unieke numerieke ID hebben wordt gecheckt of de huidige waarde ok is,
|
||||
-- en zoniet, dan wordt er doorgeteld tot de eersthogere wel unieke
|
||||
IF element_type = 'PRS_WERKPLEK'
|
||||
@@ -127,10 +137,10 @@ AS
|
||||
-- Zoek in de geselecteerde ruimte of het huidige werkpleknummer al voor komt.
|
||||
BEGIN
|
||||
SELECT g.alg_gebouw_code
|
||||
|| '-'
|
||||
|| TO_CHAR (v.alg_verdieping_code)
|
||||
|| '-'
|
||||
|| TO_CHAR (r.alg_ruimte_nr)
|
||||
|| '-'
|
||||
|| TO_CHAR (v.alg_verdieping_code)
|
||||
|| '-'
|
||||
|| TO_CHAR (r.alg_ruimte_nr)
|
||||
INTO prefix
|
||||
FROM alg_gebouw g,
|
||||
alg_verdieping v,
|
||||
@@ -142,7 +152,6 @@ AS
|
||||
AND w.prs_alg_ruimte_key = parent_key
|
||||
AND w.prs_werkplek_volgnr = TO_NUMBER (element_omschrijving)
|
||||
AND w.prs_werkplek_verwijder IS NULL;
|
||||
|
||||
-- Gevonden, dus niet uniek. Probeer het met een sterretje ervoor, passen ze dat later maar zelf aan
|
||||
IF TO_NUMBER (element_omschrijving) = 999
|
||||
THEN
|
||||
@@ -161,10 +170,9 @@ AS
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
omschrijving := element_omschrijving;
|
||||
omschrijving := element_omschrijving;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
IF element_type = 'PRJ_WERKPLEK'
|
||||
THEN
|
||||
-- Zoek in de geselecteerde ruimte of het huidige werkpleknummer al voor komt.
|
||||
@@ -175,7 +183,6 @@ AS
|
||||
WHERE w.prj_ruimte_key = parent_key
|
||||
AND w.prj_werkplek_volgnr = element_omschrijving
|
||||
AND w.prj_werkplek_verwijder IS NULL;
|
||||
|
||||
-- Gevonden, dus niet uniek. Probeer het met een sterretje ervoor, passen ze dat later maar zelf aan
|
||||
IF TO_NUMBER (element_omschrijving) = 999
|
||||
THEN
|
||||
@@ -194,43 +201,37 @@ AS
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
omschrijving := element_omschrijving;
|
||||
omschrijving := element_omschrijving;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
RETURN omschrijving;
|
||||
END;
|
||||
|
||||
FUNCTION defaultwpomschrijving (pruimtekey IN NUMBER, pwerkpleknr IN NUMBER)
|
||||
RETURN VARCHAR2
|
||||
IS
|
||||
omschrijving VARCHAR2 (30);
|
||||
RETURN VARCHAR2 IS
|
||||
omschrijving VARCHAR2 (30);
|
||||
BEGIN
|
||||
SELECT SUBSTR ( prj_ruimte_nr
|
||||
|| '-'
|
||||
|| LPAD (TO_CHAR (pwerkpleknr), 3, '0'),
|
||||
|| '-'
|
||||
|| LPAD (TO_CHAR (pwerkpleknr), 3, '0'),
|
||||
1,
|
||||
30
|
||||
)
|
||||
INTO omschrijving
|
||||
FROM prj_ruimte
|
||||
WHERE prj_ruimte_key = pruimtekey;
|
||||
|
||||
RETURN omschrijving;
|
||||
END;
|
||||
|
||||
----------------------------------------------
|
||||
-- SCENARIO MANAGEMENT PROCEDURES
|
||||
----------------------------------------------
|
||||
PROCEDURE prj_initiate_scenario (
|
||||
pscenariokey IN NUMBER,
|
||||
pverdiepingkey IN NUMBER
|
||||
pscenariokey IN NUMBER,
|
||||
pverdiepingkey IN NUMBER
|
||||
)
|
||||
IS
|
||||
dummy VARCHAR2 (1);
|
||||
AS
|
||||
dummy VARCHAR2 (1);
|
||||
BEGIN
|
||||
checkscenario (pscenariokey);
|
||||
|
||||
BEGIN
|
||||
SELECT 'x'
|
||||
INTO dummy
|
||||
@@ -240,13 +241,9 @@ AS
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
raise_application_error
|
||||
(-20001,
|
||||
'prj_initiate_scenario: invalid parameter pverdiepingkey'
|
||||
);
|
||||
raise_application_error(-20001, 'prj_initiate_scenario: invalid parameter _VAR(pverdiepingkey)');
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
SELECT 'x'
|
||||
INTO dummy
|
||||
@@ -263,7 +260,6 @@ AS
|
||||
NULL;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
-- ** Parameters are proven valid
|
||||
-- ?? Check of er al een kopie bestaat nodig ??
|
||||
-- Kopieer de ruimtes
|
||||
@@ -279,21 +275,19 @@ AS
|
||||
FROM alg_ruimte r
|
||||
WHERE r.alg_ruimte_verwijder IS NULL
|
||||
AND alg_verdieping_key = pverdiepingkey;
|
||||
|
||||
-- Kopieer de werkplekken
|
||||
INSERT INTO prj_werkplek
|
||||
(prj_werkplek_key, prs_werkplek_key, prj_werkplek_volgnr,
|
||||
prj_werkplek_omschrijving, prj_werkplek_vastopp,
|
||||
prj_werkplek_omschrijving, prj_werkplek_vastopp, prj_werkplek_opp,
|
||||
prj_ruimte_key)
|
||||
SELECT NULL, prs_werkplek_key, prs_werkplek_volgnr,
|
||||
prs_werkplek_omschrijving, prs_werkplek_vastopp,
|
||||
prs_werkplek_omschrijving, prs_werkplek_vastopp, prs_werkplek_opp,
|
||||
prj_ruimte_key
|
||||
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 rx.prj_scenario_key = pscenariokey
|
||||
AND rx.alg_verdieping_key = pverdiepingkey;
|
||||
|
||||
-- Kopieer de werkplekbezettingen
|
||||
INSERT INTO prj_perslidwerkplek
|
||||
(prj_perslidwerkplek_key, prs_perslidwerkplek_key,
|
||||
@@ -321,7 +315,6 @@ AS
|
||||
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
|
||||
(prj_deel_key, ins_deel_key, prj_ruimte_key,
|
||||
@@ -336,7 +329,6 @@ AS
|
||||
AND rx.prj_scenario_key = pscenariokey
|
||||
AND rx.alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = pverdiepingkey;
|
||||
|
||||
INSERT INTO prj_deel
|
||||
(prj_deel_key, ins_deel_key, prj_ruimte_key,
|
||||
prj_werkplek_key, prj_deel_omschrijving, ins_srtdeel_key)
|
||||
@@ -354,20 +346,17 @@ AS
|
||||
AND rx.prj_scenario_key = pscenariokey
|
||||
AND rx.alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = pverdiepingkey;
|
||||
|
||||
COMMIT;
|
||||
END prj_initiate_scenario;
|
||||
|
||||
PROCEDURE prj_copy_scenario (
|
||||
pscenariokey_from IN NUMBER,
|
||||
pscenariokey_to IN NUMBER
|
||||
pscenariokey_from IN NUMBER,
|
||||
pscenariokey_to IN NUMBER
|
||||
)
|
||||
IS
|
||||
dummy VARCHAR2 (1);
|
||||
AS
|
||||
dummy VARCHAR2 (1);
|
||||
BEGIN
|
||||
checkscenario (pscenariokey_from);
|
||||
checkscenario (pscenariokey_to);
|
||||
|
||||
BEGIN
|
||||
SELECT 'x'
|
||||
INTO dummy
|
||||
@@ -383,13 +372,8 @@ AS
|
||||
NULL;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
raise_application_error
|
||||
(-20002,
|
||||
'prj package: copy not yet supported'
|
||||
);
|
||||
raise_application_error(-20002, 'prj package: copy not yet supported');
|
||||
RETURN;
|
||||
|
||||
-- ** Parameters are proven valid
|
||||
-- Kopieer de ruimtes
|
||||
INSERT INTO prj_ruimte
|
||||
@@ -403,38 +387,34 @@ AS
|
||||
prj_ruimte_inhoud
|
||||
FROM prj_ruimte rx
|
||||
WHERE prj_scenario_key = pscenariokey_from;
|
||||
|
||||
-- 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 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,
|
||||
@@ -444,38 +424,32 @@ AS
|
||||
FROM prj_deel dx, prj_ruimte rx
|
||||
WHERE dx.prj_ruimte_key = rx.prj_ruimte_key
|
||||
AND rx.prj_scenario_key = pscenariokey_from;
|
||||
|
||||
COMMIT;
|
||||
END prj_copy_scenario;
|
||||
|
||||
PROCEDURE prj_reinitiate_scenario (
|
||||
pscenariokey IN NUMBER,
|
||||
pverdiepingkey IN NUMBER
|
||||
pscenariokey IN NUMBER,
|
||||
pverdiepingkey IN NUMBER
|
||||
)
|
||||
IS
|
||||
AS
|
||||
BEGIN
|
||||
checkscenario (pscenariokey);
|
||||
-- Oogmerk van deze routine kan het opfrissen van het snapshot van dit scenario zijn met behoud van reeds gedane wijzigingen
|
||||
-- FUTURE EXTENSION
|
||||
END prj_reinitiate_scenario;
|
||||
|
||||
-- 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
|
||||
pscenariokey IN NUMBER,
|
||||
pverdiepingkey IN NUMBER
|
||||
)
|
||||
IS
|
||||
dummy VARCHAR2 (1);
|
||||
AS
|
||||
dummy VARCHAR2 (1);
|
||||
BEGIN
|
||||
checkscenario (pscenariokey);
|
||||
|
||||
IF true OR pverdiepingkey IS NULL
|
||||
IF true or pverdiepingkey IS NULL
|
||||
THEN
|
||||
DELETE FROM prj_ruimte rx
|
||||
WHERE rx.prj_scenario_key = pscenariokey;
|
||||
|
||||
-- Deze cascadeert door naar de onderliggende items
|
||||
DELETE FROM prj_scenario
|
||||
WHERE prj_scenario_key = pscenariokey;
|
||||
@@ -495,7 +469,6 @@ AS
|
||||
FROM prj_ruimte
|
||||
WHERE alg_verdieping_key = pverdiepingkey
|
||||
AND prj_scenario_key = pscenariokey);
|
||||
|
||||
-- De personen die van een andere verdieping op een werkplke zijn gezet die nu
|
||||
-- gaat vervallen, komen tussen de thuislozen terecht. Terugzetten op hun oude plek
|
||||
-- is nl. ook niet altijd triviaal. Het zou mooi zijn als ze nu vanuit dat reservoir
|
||||
@@ -507,7 +480,6 @@ AS
|
||||
AND rx.alg_verdieping_key = pverdiepingkey;
|
||||
END IF;
|
||||
END prj_cancel_scenario;
|
||||
|
||||
----------------------------------------------
|
||||
-- SCENARIO TRANSACTION PROCEDURES
|
||||
----------------------------------------------
|
||||
@@ -515,53 +487,48 @@ AS
|
||||
-- Moves a werkplek to another ruimte
|
||||
---------------------------------------
|
||||
PROCEDURE prj_move_werkplek (pwerkplekkey IN NUMBER, pruimtekey IN NUMBER)
|
||||
IS
|
||||
currentnr prj_werkplek.prj_werkplek_volgnr%TYPE;
|
||||
werkpleknr prj_werkplek.prj_werkplek_volgnr%TYPE;
|
||||
werkplekomschrijving prj_werkplek.prj_werkplek_omschrijving%TYPE;
|
||||
scenariokey prj_ruimte.prj_scenario_key%TYPE;
|
||||
AS
|
||||
currentnr prj_werkplek.prj_werkplek_volgnr%TYPE;
|
||||
werkpleknr prj_werkplek.prj_werkplek_volgnr%TYPE;
|
||||
werkplekomschrijving prj_werkplek.prj_werkplek_omschrijving%TYPE;
|
||||
scenariokey prj_ruimte.prj_scenario_key%TYPE;
|
||||
BEGIN
|
||||
SELECT prj_werkplek_volgnr
|
||||
INTO currentnr
|
||||
FROM prj_werkplek
|
||||
WHERE prj_werkplek_key = pwerkplekkey;
|
||||
|
||||
werkpleknr :=
|
||||
TO_NUMBER (forceuniqueness ('PRJ_WERKPLEK',
|
||||
pruimtekey,
|
||||
TO_CHAR (currentnr)
|
||||
)
|
||||
);
|
||||
werkplekomschrijving := defaultwpomschrijving (pruimtekey, werkpleknr);
|
||||
|
||||
werkplekomschrijving := defaultwpomschrijving (pruimtekey, werkpleknr);
|
||||
UPDATE prj_werkplek
|
||||
SET prj_ruimte_key = pruimtekey,
|
||||
prj_werkplek_volgnr = werkpleknr,
|
||||
prj_werkplek_omschrijving = werkplekomschrijving
|
||||
WHERE prj_werkplek_key = pwerkplekkey AND prj_ruimte_key <> pruimtekey;
|
||||
-- niet onnodig moven
|
||||
|
||||
SELECT prj_scenario_key
|
||||
INTO scenariokey
|
||||
FROM prj_ruimte
|
||||
WHERE prj_ruimte_key = pruimtekey;
|
||||
END;
|
||||
|
||||
-------------------------------------
|
||||
-- Find a sufficently free werkplek in ruimte pruimtekey
|
||||
-- Find a sufficiently free werkplek in ruimte pruimtekey
|
||||
-- If necessary create a new one
|
||||
-------------------------------------
|
||||
FUNCTION find_or_create_free_werkplek (
|
||||
pruimtekey IN NUMBER,
|
||||
bezetting IN NUMBER
|
||||
pruimtekey IN NUMBER,
|
||||
bezetting IN NUMBER
|
||||
)
|
||||
RETURN NUMBER
|
||||
IS
|
||||
omschrijving VARCHAR2 (30);
|
||||
prefix VARCHAR2 (30);
|
||||
werkplekkey prj_werkplek.prj_werkplek_key%TYPE;
|
||||
werkpleknr prj_werkplek.prj_werkplek_volgnr%TYPE;
|
||||
werkplekomschrijving prj_werkplek.prj_werkplek_omschrijving%TYPE;
|
||||
RETURN NUMBER IS
|
||||
omschrijving VARCHAR2 (30);
|
||||
prefix VARCHAR2 (30);
|
||||
werkplekkey prj_werkplek.prj_werkplek_key%TYPE;
|
||||
werkpleknr prj_werkplek.prj_werkplek_volgnr%TYPE;
|
||||
werkplekomschrijving prj_werkplek.prj_werkplek_omschrijving%TYPE;
|
||||
BEGIN
|
||||
BEGIN
|
||||
-- Wat is de eerste werkplek in de nieuwe ruimte waarin deze bezetting zou passen?
|
||||
@@ -575,7 +542,7 @@ AS
|
||||
FROM prj_perslidwerkplek
|
||||
WHERE prj_perslidwerkplek_verwijder IS NULL) pwx
|
||||
WHERE wx.prj_ruimte_key = pruimtekey
|
||||
AND wx.prj_werkplek_key = pwx.prj_werkplek_key(+)
|
||||
AND wx.prj_werkplek_key = pwx.prj_werkplek_key (+)
|
||||
GROUP BY wx.prj_werkplek_key
|
||||
HAVING NVL (SUM (pwx.prj_perslidwerkplek_bezetting), 0)
|
||||
+ bezetting <= 100)
|
||||
@@ -592,7 +559,6 @@ AS
|
||||
);
|
||||
werkplekomschrijving :=
|
||||
defaultwpomschrijving (pruimtekey, werkpleknr);
|
||||
|
||||
INSERT INTO prj_werkplek
|
||||
(prj_werkplek_key, prs_werkplek_key,
|
||||
prj_werkplek_volgnr, prj_werkplek_omschrijving,
|
||||
@@ -602,19 +568,16 @@ AS
|
||||
werkpleknr, werkplekomschrijving,
|
||||
NULL, pruimtekey
|
||||
);
|
||||
|
||||
SELECT prj_werkplek_key
|
||||
INTO werkplekkey
|
||||
FROM prj_werkplek
|
||||
WHERE prj_ruimte_key = pruimtekey
|
||||
AND prj_werkplek_volgnr = werkpleknr
|
||||
AND prj_werkplek_verwijder IS NULL;
|
||||
--DBMS_OUTPUT.put_line ('inserted werkplekkey:' || TO_CHAR (werkplekkey));
|
||||
--DBMS_OUTPUT.put_line ('inserted _VAR(werkplekkey):' || TO_CHAR (werkplekkey));
|
||||
END;
|
||||
|
||||
RETURN werkplekkey;
|
||||
END; -- Function find_or_create_free_werkplek
|
||||
|
||||
-------------------------------------
|
||||
-- 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
|
||||
@@ -622,69 +585,63 @@ AS
|
||||
-------------------------------------
|
||||
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;
|
||||
reedsbezet prj_perslidwerkplek.prj_perslidwerkplek_bezetting%TYPE;
|
||||
scenariokey prj_ruimte.prj_scenario_key%TYPE;
|
||||
werkplekkey prj_werkplek.prj_werkplek_key%TYPE;
|
||||
oldruimtekey prj_werkplek.prj_ruimte_key%TYPE;
|
||||
oldwerkplekkey prj_werkplek.prj_werkplek_key%TYPE;
|
||||
currentbezetting prj_perslidwerkplek.prj_perslidwerkplek_bezetting%TYPE;
|
||||
reedsbezet prj_perslidwerkplek.prj_perslidwerkplek_bezetting%TYPE;
|
||||
scenariokey prj_ruimte.prj_scenario_key%TYPE;
|
||||
werkplekkey prj_werkplek.prj_werkplek_key%TYPE;
|
||||
BEGIN
|
||||
-- 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
|
||||
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;
|
||||
|
||||
--DBMS_OUTPUT.put_line ('_VAR(oldruimtekey):' || TO_CHAR (oldruimtekey));
|
||||
--DBMS_OUTPUT.put_line ('_VAR(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 _VAR(werkplekkey)=' || TO_CHAR (oldwerkplekkey) || ')',
|
||||
prj_log_add ('Werkplekbezetting niet verplaatst (zelfde _VAR(werkplekkey)=' || TO_CHAR (oldwerkplekkey) || ')',
|
||||
'MOVE',
|
||||
scenariokey
|
||||
);
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
IF pwerkplekkey IS NOT NULL
|
||||
THEN
|
||||
werkplekkey := pwerkplekkey;
|
||||
werkplekkey := pwerkplekkey;
|
||||
ELSE
|
||||
-- Is de bestemmingsruimte een andere dan de huidige?
|
||||
IF pruimtekey = oldruimtekey
|
||||
THEN
|
||||
prj_log_add ('Werkplekbezetting niet verplaatst (zelfde ruimtekey=' || TO_CHAR (oldruimtekey) || ')',
|
||||
prj_log_add ('Werkplekbezetting niet verplaatst (zelfde ruimtekey=' || TO_CHAR (oldruimtekey) || ')',
|
||||
'MOVE',
|
||||
scenariokey
|
||||
);
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
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)
|
||||
COMMIT;
|
||||
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.
|
||||
-------------------------------------
|
||||
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;
|
||||
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
|
||||
-- Wat is de te gebruiken bezetting van deze persoon (100 minus reeds op andere plekken aanwezig)?
|
||||
-- TODO: dienstverband verwerken
|
||||
@@ -696,14 +653,12 @@ AS
|
||||
--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
|
||||
werkplekkey := pwerkplekkey;
|
||||
werkplekkey := pwerkplekkey;
|
||||
ELSE
|
||||
werkplekkey := find_or_create_free_werkplek (pruimtekey, doelbezetting);
|
||||
werkplekkey := find_or_create_free_werkplek (pruimtekey, doelbezetting);
|
||||
END IF;
|
||||
|
||||
-- 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
|
||||
@@ -719,7 +674,6 @@ AS
|
||||
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,
|
||||
@@ -728,7 +682,7 @@ AS
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
--DBMS_OUTPUT.put_line ('_VAR(werkplekkey):' || TO_CHAR (werkplekkey));
|
||||
--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
|
||||
@@ -736,16 +690,13 @@ AS
|
||||
VALUES (werkplekkey, pperslidkey, doelbezetting
|
||||
);
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
|
||||
|
||||
----------------------------------------------
|
||||
-- SCENARIO COMMIT PROCEDURES
|
||||
----------------------------------------------
|
||||
PROCEDURE prj_commit_additions (pscenariokey IN NUMBER)
|
||||
IS
|
||||
AS
|
||||
CURSOR new_ruimte (sk IN NUMBER)
|
||||
IS
|
||||
SELECT alg_verdieping_key, prj_ruimte_nr, prj_ruimte_omschrijving,
|
||||
@@ -756,7 +707,6 @@ AS
|
||||
WHERE rx.prj_ruimte_verwijder IS NULL
|
||||
AND rx.alg_ruimte_key IS NULL
|
||||
AND rx.prj_scenario_key = sk;
|
||||
|
||||
CURSOR new_werkplek (sk IN NUMBER)
|
||||
IS
|
||||
SELECT prj_werkplek_volgnr, prj_werkplek_omschrijving,
|
||||
@@ -767,7 +717,6 @@ AS
|
||||
AND wx.prs_werkplek_key IS NULL
|
||||
AND rx.prj_ruimte_key = wx.prj_ruimte_key
|
||||
AND rx.prj_scenario_key = sk;
|
||||
|
||||
CURSOR new_perslidwerkplek (sk IN NUMBER)
|
||||
IS
|
||||
SELECT prs_perslid_key, prs_afdeling_key, prs_werkplek_key,
|
||||
@@ -778,7 +727,6 @@ 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_deel (sk IN NUMBER)
|
||||
IS
|
||||
SELECT dx.prj_deel_key
|
||||
@@ -797,29 +745,26 @@ AS
|
||||
AND dx.prj_werkplek_key IS NULL
|
||||
AND rx.prj_ruimte_key = wx.prj_ruimte_key
|
||||
AND rx.prj_scenario_key = sk;
|
||||
|
||||
aantal_r_toegevoegd NUMBER;
|
||||
aantal_w_toegevoegd NUMBER;
|
||||
aantal_pw_toegevoegd NUMBER;
|
||||
aantal_d_toegevoegd NUMBER;
|
||||
ruimte_nr alg_ruimte.alg_ruimte_nr%TYPE;
|
||||
werkplek_nr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
||||
deel_nr ins_deel.ins_deel_omschrijving%TYPE;
|
||||
aantal_r_toegevoegd NUMBER;
|
||||
aantal_w_toegevoegd NUMBER;
|
||||
aantal_pw_toegevoegd NUMBER;
|
||||
aantal_d_toegevoegd NUMBER;
|
||||
ruimte_nr alg_ruimte.alg_ruimte_nr%TYPE;
|
||||
werkplek_nr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
||||
deel_nr ins_deel.ins_deel_omschrijving%TYPE;
|
||||
BEGIN
|
||||
-- Nieuwe ruimtes toevoegen
|
||||
aantal_r_toegevoegd := 0;
|
||||
|
||||
aantal_r_toegevoegd := 0;
|
||||
--
|
||||
-- RUIMTES
|
||||
--
|
||||
FOR v_ruimte IN new_ruimte (pscenariokey)
|
||||
LOOP
|
||||
loop
|
||||
ruimte_nr :=
|
||||
forceuniqueness ('ALG_RUIMTE',
|
||||
v_ruimte.alg_verdieping_key,
|
||||
v_ruimte.prj_ruimte_nr
|
||||
);
|
||||
|
||||
INSERT INTO alg_ruimte r
|
||||
(alg_verdieping_key, alg_ruimte_nr,
|
||||
alg_ruimte_omschrijving,
|
||||
@@ -835,9 +780,7 @@ AS
|
||||
v_ruimte.prj_ruimte_inhoud,
|
||||
v_ruimte.prj_ruimte_opmerking
|
||||
);
|
||||
|
||||
aantal_r_toegevoegd := aantal_r_toegevoegd + 1;
|
||||
|
||||
aantal_r_toegevoegd := aantal_r_toegevoegd + 1;
|
||||
-- Registreer de zojuist verworven key; deze is nodig voor de volgende stappen
|
||||
UPDATE prj_ruimte rx
|
||||
SET alg_ruimte_key =
|
||||
@@ -846,23 +789,20 @@ AS
|
||||
WHERE r.alg_verdieping_key = v_ruimte.alg_verdieping_key
|
||||
AND r.alg_ruimte_nr = ruimte_nr)
|
||||
WHERE prj_ruimte_key = v_ruimte.prj_ruimte_key;
|
||||
END LOOP;
|
||||
|
||||
end loop;
|
||||
--
|
||||
-- WERKPLEKKEN
|
||||
--
|
||||
aantal_w_toegevoegd := 0;
|
||||
|
||||
aantal_w_toegevoegd := 0;
|
||||
FOR v_werkplek IN new_werkplek (pscenariokey)
|
||||
LOOP
|
||||
loop
|
||||
werkplek_nr :=
|
||||
forceuniqueness ('PRS_WERKPLEK',
|
||||
v_werkplek.alg_ruimte_key,
|
||||
TO_CHAR (v_werkplek.prj_werkplek_volgnr)
|
||||
);
|
||||
|
||||
-- Note: de omschrijving is meestal ruimtenr+volgnr. Bij nieuwe of verplaatsing is het wenselijk deza aan te passen?
|
||||
--werkpleknr := to_number(substr(Omschrijving,instr(Omschrijving,'-',1)+1));
|
||||
--werkpleknr := TO_NUMBER(SUBSTR(Omschrijving,instr(Omschrijving,'-',1)+1));
|
||||
INSERT INTO prs_werkplek w
|
||||
(prs_werkplek_volgnr, prs_werkplek_omschrijving,
|
||||
prs_werkplek_vastopp,
|
||||
@@ -872,9 +812,7 @@ AS
|
||||
v_werkplek.prj_werkplek_vastopp,
|
||||
v_werkplek.prj_werkplek_opp, v_werkplek.alg_ruimte_key
|
||||
);
|
||||
|
||||
aantal_w_toegevoegd := aantal_w_toegevoegd + 1;
|
||||
|
||||
aantal_w_toegevoegd := aantal_w_toegevoegd + 1;
|
||||
-- Registreer de zojuist verworven keys; deze zijn nodig voor de volgende stappen
|
||||
UPDATE prj_werkplek wx
|
||||
SET prs_werkplek_key =
|
||||
@@ -883,15 +821,13 @@ AS
|
||||
WHERE w.prs_werkplek_volgnr = werkplek_nr
|
||||
AND w.prs_alg_ruimte_key = v_werkplek.alg_ruimte_key)
|
||||
WHERE prj_werkplek_key = v_werkplek.prj_werkplek_key;
|
||||
END LOOP;
|
||||
|
||||
end loop;
|
||||
--
|
||||
-- WERKPLEKBEZETTINGEN (anoniem)
|
||||
--
|
||||
aantal_pw_toegevoegd := 0;
|
||||
|
||||
aantal_pw_toegevoegd := 0;
|
||||
FOR v_perslidwerkplek IN new_perslidwerkplek (pscenariokey)
|
||||
LOOP
|
||||
loop
|
||||
INSERT INTO prs_perslidwerkplek pw
|
||||
(prs_perslid_key,
|
||||
prs_afdeling_key,
|
||||
@@ -903,18 +839,16 @@ AS
|
||||
v_perslidwerkplek.prs_werkplek_key,
|
||||
v_perslidwerkplek.prj_perslidwerkplek_bezetting
|
||||
);
|
||||
|
||||
-- Bijwerken van de nieuwe keys is niet nodig..
|
||||
aantal_pw_toegevoegd := aantal_pw_toegevoegd + 1;
|
||||
END LOOP;
|
||||
|
||||
aantal_pw_toegevoegd := aantal_pw_toegevoegd + 1;
|
||||
end loop;
|
||||
--
|
||||
-- OBJECTEN
|
||||
--
|
||||
aantal_d_toegevoegd := 0;
|
||||
aantal_d_toegevoegd := 0;
|
||||
-- FOR v_deel IN new_deel (pscenariokey)
|
||||
-- LOOP
|
||||
-- deel_nr := forceuniqueness ('INS_DEEL', v_deel.ins_alg_locatie_key, v_deel.ins_deel_omschrijving);
|
||||
-- deel_nr := forceuniqueness ('INS_DEEL', v_deel.ins_alg_locatie_key, v_deel.ins_deel_omschrijving);
|
||||
--
|
||||
-- INSERT INTO ins_deel
|
||||
-- (ins_srtdeel_key, ins_alg_ruimte_key, ins_alg_ruimte_type,
|
||||
@@ -925,30 +859,28 @@ AS
|
||||
-- v_deel.ins_alg_locatie_key, v_deel.ins_discipline_key, omschrijving, v_deel.ins_deel_parent_key,
|
||||
-- v_deel.ins_deel_oppervlak, v_deel.ins_deel_omtrek
|
||||
-- );
|
||||
|
||||
-- -- Bijwerken van de nieuwe keys is niet nodig..
|
||||
-- aantal_d_toegevoegd := aantal_d_toegevoegd + 1;
|
||||
-- END LOOP;
|
||||
prj_log_add ('Nieuwe ruimtes : ' || TO_CHAR (aantal_r_toegevoegd),
|
||||
-- aantal_d_toegevoegd := aantal_d_toegevoegd + 1;
|
||||
-- end loop;
|
||||
prj_log_add ('Nieuwe ruimtes : ' || TO_CHAR (aantal_r_toegevoegd),
|
||||
'123',
|
||||
pscenariokey
|
||||
);
|
||||
prj_log_add ('Nieuwe werkplekken: ' || TO_CHAR (aantal_w_toegevoegd),
|
||||
prj_log_add ('Nieuwe werkplekken: ' || TO_CHAR (aantal_w_toegevoegd),
|
||||
'123',
|
||||
pscenariokey
|
||||
);
|
||||
prj_log_add ('Nieuwe objecten: ' || TO_CHAR (aantal_d_toegevoegd),
|
||||
prj_log_add ('Nieuwe objecten: ' || TO_CHAR (aantal_d_toegevoegd),
|
||||
'123',
|
||||
pscenariokey
|
||||
);
|
||||
prj_log_add ('Nieuwe bezettingen: ' || TO_CHAR (aantal_pw_toegevoegd),
|
||||
prj_log_add ('Nieuwe bezettingen: ' || TO_CHAR (aantal_pw_toegevoegd),
|
||||
'123',
|
||||
pscenariokey
|
||||
);
|
||||
END prj_commit_additions;
|
||||
|
||||
PROCEDURE prj_commit_changes (pscenariokey IN NUMBER)
|
||||
IS
|
||||
AS
|
||||
CURSOR ruimte_updates (sk IN NUMBER)
|
||||
IS
|
||||
SELECT prj_ruimte_nr, prj_ruimte_omschrijving,
|
||||
@@ -959,7 +891,6 @@ AS
|
||||
WHERE rx.prj_ruimte_verwijder IS NULL
|
||||
AND rx.alg_ruimte_key IS NOT NULL
|
||||
AND rx.prj_scenario_key = sk;
|
||||
|
||||
CURSOR werkplek_updates (sk IN NUMBER)
|
||||
IS
|
||||
SELECT prj_werkplek_volgnr, prj_werkplek_omschrijving,
|
||||
@@ -970,7 +901,6 @@ AS
|
||||
AND wp.prj_werkplek_verwijder IS NULL
|
||||
AND wp.prs_werkplek_key IS NOT NULL
|
||||
AND rx.prj_scenario_key = sk;
|
||||
|
||||
CURSOR perslidwerkplek_updates (sk IN NUMBER)
|
||||
IS
|
||||
SELECT prs_perslid_key, prs_afdeling_key,
|
||||
@@ -986,7 +916,7 @@ AS
|
||||
BEGIN
|
||||
-- Bestaande ruimtes aanpassen
|
||||
FOR cr IN ruimte_updates (pscenariokey)
|
||||
LOOP
|
||||
loop
|
||||
UPDATE alg_ruimte r
|
||||
SET alg_ruimte_nr = cr.prj_ruimte_nr,
|
||||
alg_ruimte_omschrijving = cr.prj_ruimte_omschrijving,
|
||||
@@ -997,11 +927,10 @@ AS
|
||||
alg_ruimte_opmerking = cr.prj_ruimte_opmerking
|
||||
WHERE r.alg_ruimte_verwijder IS NULL
|
||||
AND r.alg_ruimte_key = cr.alg_ruimte_key;
|
||||
END LOOP;
|
||||
|
||||
end loop;
|
||||
-- Bestaande werkplekken aanpassen
|
||||
FOR cr IN werkplek_updates (pscenariokey)
|
||||
LOOP
|
||||
loop
|
||||
UPDATE prs_werkplek r
|
||||
SET prs_alg_ruimte_key = cr.alg_ruimte_key,
|
||||
prs_werkplek_volgnr = cr.prj_werkplek_volgnr,
|
||||
@@ -1010,24 +939,22 @@ AS
|
||||
prs_werkplek_opp = cr.prj_werkplek_opp
|
||||
WHERE r.prs_werkplek_verwijder IS NULL
|
||||
AND r.prs_werkplek_key = cr.prs_werkplek_key;
|
||||
END LOOP;
|
||||
|
||||
end loop;
|
||||
-- Bestaande perslidwerkplekken aanpassen
|
||||
FOR cr IN perslidwerkplek_updates (pscenariokey)
|
||||
LOOP
|
||||
loop
|
||||
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_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;
|
||||
end loop;
|
||||
END;
|
||||
END prj_commit_changes;
|
||||
|
||||
PROCEDURE prj_commit_deletions (pscenariokey IN NUMBER)
|
||||
IS
|
||||
AS
|
||||
BEGIN
|
||||
-- Vervallen ruimtes laten vervallen
|
||||
UPDATE alg_ruimte r
|
||||
@@ -1039,7 +966,6 @@ AS
|
||||
AND rx.alg_ruimte_key IS NOT NULL
|
||||
AND rx.prj_scenario_key = pscenariokey)
|
||||
WHERE r.alg_ruimte_verwijder IS NULL;
|
||||
|
||||
-- Vervallen werkplekken laten vervallen
|
||||
UPDATE prs_werkplek p
|
||||
SET prs_werkplek_verwijder =
|
||||
@@ -1051,7 +977,6 @@ AS
|
||||
AND pw.prs_werkplek_key IS NOT NULL
|
||||
AND rx.prj_scenario_key = pscenariokey)
|
||||
WHERE p.prs_werkplek_verwijder IS NULL;
|
||||
|
||||
-- Vervallen perslidwerkplekken laten vervallen
|
||||
UPDATE prs_perslidwerkplek p
|
||||
SET prs_perslidwerkplek_verwijder =
|
||||
@@ -1065,17 +990,15 @@ AS
|
||||
AND rx.prj_scenario_key = pscenariokey)
|
||||
WHERE p.prs_perslidwerkplek_verwijder IS NULL;
|
||||
END prj_commit_deletions;
|
||||
|
||||
PROCEDURE prj_commit_cleanup (pscenariokey IN NUMBER)
|
||||
IS
|
||||
requestkey prj_scenario.mld_melding_key%TYPE;
|
||||
AS
|
||||
requestkey prj_scenario.mld_melding_key%TYPE;
|
||||
BEGIN
|
||||
-- Voor welke aanvraag was dit scenario een oplossing?
|
||||
SELECT mld_melding_key
|
||||
INTO requestkey
|
||||
FROM prj_scenario
|
||||
WHERE prj_scenario_key = pscenariokey;
|
||||
|
||||
-- IF requestkey IS NOT NULL
|
||||
-- THEN
|
||||
-- DELETE FROM prj_scenario
|
||||
@@ -1085,10 +1008,9 @@ AS
|
||||
--
|
||||
-- END IF;
|
||||
END prj_commit_cleanup;
|
||||
|
||||
PROCEDURE prj_commit_scenario (pscenariokey IN NUMBER)
|
||||
IS
|
||||
dummy VARCHAR2 (1);
|
||||
AS
|
||||
dummy VARCHAR2 (1);
|
||||
BEGIN
|
||||
checkscenario (pscenariokey);
|
||||
prj_commit_additions (pscenariokey);
|
||||
|
||||
Reference in New Issue
Block a user