FSN#26947 Opschonen gebruik perslidwerkplek/werkplek_verwijder
svn path=/Customer/trunk/; revision=19083
This commit is contained in:
103
ALLV/allv.sql
103
ALLV/allv.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user