FSN#26947 Opschonen gebruik perslidwerkplek/werkplek_verwijder

svn path=/Customer/trunk/; revision=19147
This commit is contained in:
Maarten van der Heide
2013-09-18 09:35:47 +00:00
parent 431fdbc6f6
commit bcf50bdfde

View File

@@ -810,7 +810,7 @@ IS
AND p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslidwerkplek pw
FROM prs_perslidwerkplek pw
WHERE pw.prs_perslid_key = p.prs_perslid_key);
-- Alle aanwezige personen met oslogin (ie. de import-doelgroep) niet in een groep
@@ -1301,7 +1301,7 @@ BEGIN
SELECT COUNT ( * )
INTO v_count
FROM prs_v_aanwezigperslidwerkplek pw,
FROM prs_perslidwerkplek pw,
prs_werkplek w,
alg_ruimte r,
alg_verdieping v
@@ -1314,117 +1314,10 @@ BEGIN
-- Als persoon in gebouw reeds een werkplek heeft en de nieuwe zou
-- in de default ruimte zijn (want ongedefinieerd bij import!), dan
-- wordt onderstaande overgeslagen.
IF v_count = 0 OR recwp.alg_ruimte_nr != c_ruimte_nr
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_v_aanwezigperslidwerkplek 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';
UPDATE prs_perslidwerkplek
SET prs_perslidwerkplek_verwijder = SYSDATE
WHERE prs_perslidwerkplek_key IN
(SELECT pw.prs_perslidwerkplek_key
FROM prs_v_aanwezigperslidwerkplek 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_v_aanwezigwerkplek w
WHERE w.prs_alg_ruimte_key = v_ruimte_key
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslidwerkplek 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_v_aanwezigwerkplek w
WHERE w.prs_alg_ruimte_key = v_ruimte_key
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslidwerkplek pw
WHERE pw.prs_werkplek_key =
w.prs_werkplek_key);
-- Verwijder (keihard) de mogelijk eerder logisch verwijderde
-- koppeling tussen dezelfde persoon en werkplek!!!
DELETE FROM prs_perslidwerkplek pw
WHERE pw.prs_perslid_key = v_perslid_key
AND pw.prs_werkplek_key = v_wp_key
AND pw.prs_perslidwerkplek_verwijder IS NOT NULL;
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
@@ -1861,14 +1754,16 @@ AS
AND l.alg_locatie_key = 50;
/* Formatted on 29-8-2013 17:20:02 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PACKAGE RENK
AS
-- PACKAGES voor de RENK specifieke ondersteuning
PROCEDURE freezereserveringen (p_groepering IN VARCHAR2);
PROCEDURE freezereserveringen (p_groepering IN VARCHAR2,
p_kenmerk IN VARCHAR2);
END;
/
/* Formatted on 20-8-2013 13:22:02 (QP5 v5.115.810.9015) */
/* Formatted on 29-8-2013 17:20:02 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PACKAGE BODY RENK
AS
PROCEDURE freezereserveringen (p_groepering IN VARCHAR2,
@@ -1885,7 +1780,8 @@ AS
rr.res_rsv_ruimte_key,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
rd.res_rsv_deel_key
rd.res_rsv_deel_key,
rd.res_status_bo_key
FROM renk_v_verhuurregels_alle v,
res_v_aanwezigrsv_ruimte rr,
res_v_aanwezigrsv_deel rd
@@ -1899,7 +1795,8 @@ AS
rr.res_rsv_ruimte_key,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
ra.res_rsv_artikel_key
ra.res_rsv_artikel_key,
ra.res_status_bo_key
FROM renk_v_verhuurregels_alle v,
res_v_aanwezigrsv_ruimte rr,
res_v_aanwezigrsv_artikel ra
@@ -1912,7 +1809,8 @@ AS
SELECT v.resid,
rr.res_rsv_ruimte_key,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr
rr.res_rsv_ruimte_volgnr,
rr.res_status_bo_key
FROM renk_v_verhuurregels_alle v, res_v_aanwezigrsv_ruimte rr
WHERE v.groepering = p_groepering
AND v.res_rsv_ruimte_key = rr.res_rsv_ruimte_key;
@@ -1957,7 +1855,6 @@ AS
COMMIT;
v_count_upd := v_count_upd + 1;
END IF;
--v_errormsg := 'Fout bij bepalen res_rsv_deel_prijs.';
--SELECT res.getdeelprijs (rec.res_rsv_deel_key)
@@ -2030,7 +1927,6 @@ AS
COMMIT;
v_count_upd := v_count_upd + 1;
END IF;
--IF (rec.res_artikel_prijs_vast = 1)
--THEN
-- v_errormsg := 'Fout bij bepalen res_rsv_artikel_prijs.';
@@ -2156,14 +2052,16 @@ AS
|| '|'
|| rec.res_rsv_ruimte_key
|| '|'
|| TO_CHAR (p_prskey)
|| TO_CHAR (p_groepering)
|| '] ';
v_errormsg := 'Fout bij bijwerken kenmerk.';
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_ordernr =
res_rsv_ruimte_ordernr || '+' || v_factuurnr
DECODE (res_rsv_ruimte_ordernr,
NULL, p_kenmerk,
res_rsv_ruimte_ordernr || '+' || p_kenmerk)
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
-- Niet voor "roomservice"!