BLST#78768 Ontwikkeling script t.b.v. bijwerken werkplekken
svn path=/Customer/trunk/; revision=61477
This commit is contained in:
280
BLST/BLST.sql
280
BLST/BLST.sql
@@ -6282,6 +6282,157 @@ AS
|
||||
v_errorhint VARCHAR2 (200);
|
||||
v_perslid_key NUMBER;
|
||||
|
||||
-- werkplekken bij gebouwen die zijn verwijderd of vervallen, deze werkplekken mogen sowieso allemaal weg
|
||||
CURSOR verwijder
|
||||
IS
|
||||
SELECT pw.prs_perslidwerkplek_key, pw.prs_perslid_key
|
||||
FROM prs_perslidwerkplek pw,
|
||||
prs_werkplek w,
|
||||
alg_ruimte r,
|
||||
alg_verdieping v,
|
||||
alg_gebouw g
|
||||
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND r.alg_ruimte_key = w.prs_alg_ruimte_key
|
||||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||||
AND ( g.alg_gebouw_verwijder IS NOT NULL
|
||||
OR g.alg_gebouw_vervaldatum <= TRUNC(SYSDATE));
|
||||
|
||||
-- de werkplekken van mdw van de Belastingdienst die zijn komen te vervallen
|
||||
CURSOR intern_verw
|
||||
IS
|
||||
SELECT pw.prs_perslidwerkplek_key, prs.prs_perslid_key
|
||||
FROM prs_perslidwerkplek pw,
|
||||
prs_werkplek w,
|
||||
(SELECT a.prs_afdeling_key,
|
||||
p.prs_perslid_key,
|
||||
p.prs_perslid_naam,
|
||||
bu.prs_afdeling_upper
|
||||
FROM prs_afdeling a, prs_perslid p, prs_afdeling bu
|
||||
WHERE a.prs_afdeling_parentkey = 21
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND bu.prs_afdeling_key = a.prs_afdeling_parentkey
|
||||
UNION ALL
|
||||
SELECT a.prs_afdeling_key,
|
||||
p.prs_perslid_key,
|
||||
p.prs_perslid_naam,
|
||||
a.prs_afdeling_upper
|
||||
FROM prs_afdeling a, prs_perslid p
|
||||
WHERE a.prs_afdeling_key = 21
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key) prs, --- selectie van alle personen die rechtstreeks of op een lager level voor de BD werken
|
||||
(SELECT r.alg_ruimte_key, UPPER (ud.fac_usrdata_omschr) afdeling
|
||||
FROM fac_usrtab ut,
|
||||
fac_usrdata ud,
|
||||
alg_gebouw g,
|
||||
alg_verdieping v,
|
||||
alg_ruimte r
|
||||
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN BD'
|
||||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ut.fac_usrtab_verwijder IS NULL
|
||||
AND ( ud.fac_usrdata_vervaldatum <= TRUNC(SYSDATE)
|
||||
OR ud.fac_usrdata_verwijder IS NOT NULL)
|
||||
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
||||
fac.safe_to_number (g.alg_gebouw_code)
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND r.alg_ruimte_nr = '_000'
|
||||
AND UPPER (ud.fac_usrdata_omschr) = 'BD') wp --- alle werklocaties die zijn vervallen of verwijderd voor deze mdw
|
||||
WHERE wp.afdeling = prs.prs_afdeling_upper
|
||||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND w.prs_alg_ruimte_key = wp.alg_ruimte_key
|
||||
AND pw.prs_perslid_key = prs.prs_perslid_key;
|
||||
|
||||
-- de werkplekken van mdw van de specifieke afdelingen binnen Belastingdienst die zijn komen te vervallen
|
||||
CURSOR intern_spec_verw IS
|
||||
SELECT pw.prs_perslidwerkplek_key, p.prs_perslid_key
|
||||
FROM fac_usrtab ut,
|
||||
fac_usrdata ud,
|
||||
prs_afdeling a,
|
||||
prs_perslid p,
|
||||
alg_gebouw g,
|
||||
alg_verdieping v,
|
||||
alg_ruimte r,
|
||||
prs_perslidwerkplek pw,
|
||||
prs_werkplek w
|
||||
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN BD'
|
||||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ut.fac_usrtab_verwijder IS NULL
|
||||
AND ( ud.fac_usrdata_vervaldatum <= TRUNC(SYSDATE)
|
||||
OR ud.fac_usrdata_verwijder IS NOT NULL )
|
||||
AND UPPER (ud.fac_usrdata_omschr) = a.prs_afdeling_upper
|
||||
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
||||
fac.safe_to_number (g.alg_gebouw_code)
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND r.alg_ruimte_nr = '_000'
|
||||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND pw.prs_perslid_key = p.prs_perslid_key
|
||||
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_parentkey = 21
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key);
|
||||
|
||||
-- de werkplekken van externen die zijn komen te vervallen
|
||||
CURSOR extern_verw IS
|
||||
SELECT pw.prs_perslidwerkplek_key, prs.prs_perslid_key
|
||||
FROM prs_perslidwerkplek pw,
|
||||
prs_werkplek w,
|
||||
(SELECT a.prs_afdeling_key,
|
||||
p.prs_perslid_key,
|
||||
p.prs_perslid_naam,
|
||||
bu.prs_afdeling_upper
|
||||
FROM prs_afdeling a, prs_perslid p, prs_afdeling bu
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND bu.prs_afdeling_key = a.prs_afdeling_parentkey
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
WHERE ( a.prs_afdeling_parentkey = 21
|
||||
OR a.prs_afdeling_key = 21)
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key)
|
||||
UNION ALL
|
||||
SELECT a.prs_afdeling_key,
|
||||
p.prs_perslid_key,
|
||||
p.prs_perslid_naam,
|
||||
a.prs_afdeling_upper
|
||||
FROM prs_afdeling a, prs_perslid p
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
WHERE ( a.prs_afdeling_parentkey = 21
|
||||
OR a.prs_afdeling_key = 21)
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key))
|
||||
prs, --- selectie van alle personen die niet voor de BD werken
|
||||
(SELECT r.alg_ruimte_key, UPPER (ud.fac_usrdata_omschr) afdeling
|
||||
FROM fac_usrtab ut,
|
||||
fac_usrdata ud,
|
||||
alg_gebouw g,
|
||||
alg_verdieping v,
|
||||
alg_ruimte r
|
||||
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN EXT'
|
||||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ut.fac_usrtab_verwijder IS NULL
|
||||
AND ( ud.fac_usrdata_vervaldatum <= SYSDATE
|
||||
OR ud.fac_usrdata_verwijder IS NOT NULL)
|
||||
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
||||
fac.safe_to_number (g.alg_gebouw_code)
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND r.alg_ruimte_nr = '_000') wp --- alle werkplekken (dummy ruimte per gebouw) waar deze medewerkers een werkplek zouden moeten hebben
|
||||
WHERE wp.afdeling = prs.prs_afdeling_upper
|
||||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND w.prs_alg_ruimte_key = wp.alg_ruimte_key
|
||||
AND pw.prs_perslid_key = prs.prs_perslid_key;
|
||||
|
||||
-- de werkplekken die alle mdw van de Belastingdienst moeten krijgen
|
||||
CURSOR intern IS
|
||||
SELECT prs.prs_perslid_key, wp.alg_ruimte_key
|
||||
@@ -6323,6 +6474,9 @@ AS
|
||||
AND r.alg_ruimte_nr = '_000'
|
||||
AND r.alg_ruimte_verwijder IS NULL
|
||||
AND v.alg_verdieping_verwijder IS NULL
|
||||
AND (g.alg_gebouw_vervaldatum > SYSDATE
|
||||
OR g.alg_gebouw_vervaldatum IS NULL)
|
||||
AND g.alg_gebouw_verwijder IS NULL
|
||||
AND UPPER (ud.fac_usrdata_omschr) = 'BD') wp --- alle werkplekken (dummy ruimte per gebouw) waar deze medewerkers een werkplek zouden moeten hebben
|
||||
WHERE wp.afdeling = prs.prs_afdeling_upper
|
||||
AND NOT EXISTS ---- maar welke dus nog ontbreken
|
||||
@@ -6358,6 +6512,9 @@ AS
|
||||
AND r.alg_ruimte_nr = '_000'
|
||||
AND r.alg_ruimte_verwijder IS NULL
|
||||
AND v.alg_verdieping_verwijder IS NULL
|
||||
AND (g.alg_gebouw_vervaldatum > SYSDATE
|
||||
OR g.alg_gebouw_vervaldatum IS NULL)
|
||||
AND g.alg_gebouw_verwijder IS NULL
|
||||
AND EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
@@ -6422,6 +6579,9 @@ AS
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND r.alg_ruimte_nr = '_000'
|
||||
AND r.alg_ruimte_verwijder IS NULL
|
||||
AND (g.alg_gebouw_vervaldatum > SYSDATE
|
||||
OR g.alg_gebouw_vervaldatum IS NULL)
|
||||
AND g.alg_gebouw_verwijder IS NULL
|
||||
AND v.alg_verdieping_verwijder IS NULL) wp --- alle werkplekken (dummy ruimte per gebouw) waar deze medewerkers een werkplek zouden moeten hebben
|
||||
WHERE wp.afdeling = prs.prs_afdeling_upper
|
||||
AND NOT EXISTS ---- maar welke dus nog ontbreken
|
||||
@@ -6432,6 +6592,126 @@ AS
|
||||
AND pw.prs_perslid_key = prs.prs_perslid_key);
|
||||
BEGIN
|
||||
|
||||
FOR REC IN verwijder
|
||||
LOOP
|
||||
v_perslid_key := rec.prs_perslid_key;
|
||||
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
||||
v_errorhint :=
|
||||
'Werkplek verwijderen voor perslid: ' || rec.prs_perslid_key;
|
||||
|
||||
BEGIN
|
||||
DELETE prs_perslidwerkplek pw
|
||||
WHERE pw.prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
|
||||
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
'Verwijderen werkplek BD medewerker',
|
||||
'E',
|
||||
'Error '
|
||||
|| v_aanduiding
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR REC IN intern_verw
|
||||
LOOP
|
||||
v_perslid_key := rec.prs_perslid_key;
|
||||
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
||||
v_errorhint :=
|
||||
'Werkplek verwijderen voor perslid: ' || rec.prs_perslid_key;
|
||||
|
||||
BEGIN
|
||||
DELETE prs_perslidwerkplek pw
|
||||
WHERE pw.prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
|
||||
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
'Verwijderen werkplek',
|
||||
'E',
|
||||
'Error '
|
||||
|| v_aanduiding
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR REC IN intern_spec_verw
|
||||
LOOP
|
||||
v_perslid_key := rec.prs_perslid_key;
|
||||
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
||||
v_errorhint :=
|
||||
'Werkplek verwijderen voor perslid: ' || rec.prs_perslid_key;
|
||||
|
||||
BEGIN
|
||||
DELETE prs_perslidwerkplek pw
|
||||
WHERE pw.prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
|
||||
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
'Verwijderen werkplek',
|
||||
'E',
|
||||
'Error '
|
||||
|| v_aanduiding
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR REC IN extern_verw
|
||||
LOOP
|
||||
v_perslid_key := rec.prs_perslid_key;
|
||||
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
||||
v_errorhint :=
|
||||
'Werkplek verwijderen voor perslid: ' || rec.prs_perslid_key;
|
||||
|
||||
BEGIN
|
||||
DELETE prs_perslidwerkplek pw
|
||||
WHERE pw.prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
|
||||
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
'Verwijderen werkplek',
|
||||
'E',
|
||||
'Error '
|
||||
|| v_aanduiding
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR REC IN intern
|
||||
LOOP
|
||||
v_perslid_key := rec.prs_perslid_key;
|
||||
|
||||
Reference in New Issue
Block a user