FSN#26947 Opschonen gebruik perslidwerkplek/werkplek_verwijder
svn path=/Customer/trunk/; revision=19083
This commit is contained in:
136
ARBO/arbo.sql
136
ARBO/arbo.sql
@@ -1310,8 +1310,7 @@ BEGIN
|
||||
SELECT alg_locatie_key
|
||||
INTO v_locatie_key
|
||||
FROM alg_v_aanweziglocatie
|
||||
WHERE UPPER (alg_locatie_code) =
|
||||
UPPER (recwp.alg_locatie_code);
|
||||
WHERE UPPER (alg_locatie_code) = UPPER (recwp.alg_locatie_code);
|
||||
|
||||
v_errorhint := 'Fout bij bepalen gebouw';
|
||||
|
||||
@@ -1326,8 +1325,7 @@ BEGIN
|
||||
SELECT alg_verdieping_key
|
||||
INTO v_verdieping_key
|
||||
FROM alg_v_aanwezigverdieping
|
||||
WHERE UPPER (alg_verdieping_code) =
|
||||
UPPER (recwp.alg_verdieping_code)
|
||||
WHERE UPPER (alg_verdieping_code) = UPPER (recwp.alg_verdieping_code)
|
||||
AND alg_gebouw_key = v_gebouw_key;
|
||||
|
||||
v_errorhint := 'Fout bij bepalen ruimte';
|
||||
@@ -1338,134 +1336,8 @@ BEGIN
|
||||
WHERE UPPER (alg_ruimte_nr) = UPPER (recwp.alg_ruimte_nr)
|
||||
AND alg_verdieping_key = v_verdieping_key;
|
||||
|
||||
-- Verwijder oude werkplek op dezelfde locatie, tenzij ongewijzigd!
|
||||
v_errorhint := 'Fout bij bepalen of werkplek is gewijzigd';
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM prs_perslidwerkplek pw, prs_werkplek w
|
||||
WHERE pw.prs_perslid_key = v_perslid_key
|
||||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND w.prs_alg_ruimte_key = v_ruimte_key;
|
||||
|
||||
IF v_count = 0
|
||||
THEN
|
||||
v_errorhint := 'Fout bij verwijderen oude werkplek op locatie';
|
||||
|
||||
DELETE FROM prs_perslidwerkplek
|
||||
WHERE prs_perslidwerkplek_key IN
|
||||
(SELECT pw.prs_perslidwerkplek_key
|
||||
FROM prs_perslidwerkplek pw,
|
||||
prs_werkplek w,
|
||||
alg_ruimte r,
|
||||
alg_verdieping v,
|
||||
alg_gebouw g
|
||||
WHERE pw.prs_perslid_key = v_perslid_key
|
||||
AND pw.prs_werkplek_key =
|
||||
w.prs_werkplek_key
|
||||
AND w.prs_alg_ruimte_key =
|
||||
r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key =
|
||||
v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key =
|
||||
g.alg_gebouw_key
|
||||
AND g.alg_locatie_key = v_locatie_key);
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
-- Als persoon nu nog een werkplek heeft op locatie, dan gebeurt
|
||||
-- daar niets mee (nl. ongewijzgd)!
|
||||
v_errorhint :=
|
||||
'Fout bij bepalen of persoon op locatie een werkplek heeft';
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM prs_perslidwerkplek pw,
|
||||
prs_werkplek w,
|
||||
alg_ruimte r,
|
||||
alg_verdieping v,
|
||||
alg_gebouw g
|
||||
WHERE pw.prs_perslid_key = v_perslid_key
|
||||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND g.alg_locatie_key = v_locatie_key;
|
||||
|
||||
-- v_count=0 -> persoon verhuist naar/krijgt wp op locatie.
|
||||
IF v_count = 0 AND v_ruimte_key IS NOT NULL
|
||||
THEN
|
||||
v_errorhint := 'Fout bij bepalen vrije werkplek';
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM prs_werkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_perslidwerkplek pw
|
||||
WHERE pw.prs_werkplek_key =
|
||||
w.prs_werkplek_key);
|
||||
|
||||
IF v_count > 0
|
||||
THEN
|
||||
SELECT MIN (w.prs_werkplek_key)
|
||||
INTO v_wp_key
|
||||
FROM prs_werkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_perslidwerkplek pw
|
||||
WHERE pw.prs_werkplek_key =
|
||||
w.prs_werkplek_key);
|
||||
|
||||
v_errorhint :=
|
||||
'Fout bij koppelen persoon aan vrije werkplek';
|
||||
|
||||
INSERT INTO prs_perslidwerkplek (
|
||||
prs_perslid_key,
|
||||
prs_werkplek_key,
|
||||
prs_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (v_perslid_key, v_wp_key, 100);
|
||||
|
||||
COMMIT;
|
||||
ELSE
|
||||
v_errorhint := 'Fout bij bepalen nieuwe werkplek';
|
||||
|
||||
SELECT COALESCE (MAX (w.prs_werkplek_volgnr), 0) + 1
|
||||
INTO v_wp_volgnr
|
||||
FROM prs_werkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key;
|
||||
|
||||
v_wp_oms := v_ruimte_nr || '/' || TO_CHAR (v_wp_volgnr);
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen nieuwe werkplek';
|
||||
|
||||
INSERT INTO prs_werkplek (prs_werkplek_module,
|
||||
prs_werkplek_volgnr,
|
||||
prs_werkplek_omschrijving,
|
||||
prs_alg_ruimte_key)
|
||||
VALUES ('PRR',
|
||||
v_wp_volgnr,
|
||||
v_wp_oms,
|
||||
v_ruimte_key)
|
||||
RETURNING prs_werkplek_key INTO v_wp_key;
|
||||
|
||||
v_errorhint :=
|
||||
'Fout bij koppelen persoon aan nieuwe werkplek';
|
||||
|
||||
INSERT INTO prs_perslidwerkplek (
|
||||
prs_perslid_key,
|
||||
prs_werkplek_key,
|
||||
prs_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (v_perslid_key, v_wp_key, 100);
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
END IF;
|
||||
v_errorhint := 'Fout bij verhuizen naar nieuwe werkplek';
|
||||
PRS.movetoruimte (v_perslid_key, v_ruimte_key, 'L');
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
|
||||
Reference in New Issue
Block a user