FSN#26947 Opschonen gebruik perslidwerkplek/werkplek_verwijder

svn path=/Customer/trunk/; revision=19083
This commit is contained in:
Maarten van der Heide
2013-09-12 10:34:49 +00:00
parent bba1dfe27e
commit 782e6ee81d
7 changed files with 68 additions and 503 deletions

View File

@@ -1334,107 +1334,8 @@ BEGIN
-- wordt onderstaande overgeslagen.
IF (v_count = 0 OR recwp.alg_ruimte_nr != c_ruimte_nr)
THEN
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(ken) in gebouw';
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
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 =
v_gebouw_key);
-- Persoon krijgt wp op de hierboven eerder bepaalde ruimte.
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, 'G');
END IF;
EXCEPTION
WHEN OTHERS