BLST#73155 Script om de werkplekken van alle gebruikers bij te werken
svn path=/Customer/trunk/; revision=57729
This commit is contained in:
238
BLST/BLST.sql
238
BLST/BLST.sql
@@ -6087,20 +6087,244 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
--de weekly task draait elke zondagochtend
|
||||
CREATE OR REPLACE PROCEDURE blst_weekly
|
||||
AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (200);
|
||||
v_perslid_key NUMBER;
|
||||
|
||||
-- de werkplekken die alle mdw van de Belastingdienst moeten krijgen
|
||||
CURSOR intern IS
|
||||
SELECT prs.prs_perslid_key, wp.alg_ruimte_key
|
||||
FROM (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 > SYSDATE
|
||||
OR ud.fac_usrdata_vervaldatum IS NULL)
|
||||
AND ud.fac_usrdata_verwijder IS 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 r.alg_ruimte_verwijder IS NULL
|
||||
AND v.alg_verdieping_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
|
||||
(SELECT pw.prs_perslid_key
|
||||
FROM prs_perslidwerkplek pw, prs_werkplek w
|
||||
WHERE 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);
|
||||
|
||||
-- werkplekken die alleen bepaalde afdelingen van de BD moeten krijgen
|
||||
CURSOR intern_spec IS
|
||||
SELECT p.prs_perslid_key, r.alg_ruimte_key
|
||||
FROM fac_usrtab ut,
|
||||
fac_usrdata ud,
|
||||
prs_afdeling a,
|
||||
prs_perslid p,
|
||||
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 > SYSDATE
|
||||
OR ud.fac_usrdata_vervaldatum IS NULL)
|
||||
AND ud.fac_usrdata_verwijder IS 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 r.alg_ruimte_verwijder IS NULL
|
||||
AND v.alg_verdieping_verwijder IS NULL
|
||||
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)
|
||||
AND NOT EXISTS
|
||||
(SELECT pw.prs_perslid_key
|
||||
FROM prs_perslidwerkplek pw, prs_werkplek w
|
||||
WHERE 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);
|
||||
|
||||
--- werkplekken voor bepaalde externe organisaties
|
||||
CURSOR extern IS
|
||||
SELECT prs.prs_perslid_key, wp.alg_ruimte_key
|
||||
FROM (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_vervaldatum IS NULL)
|
||||
AND ud.fac_usrdata_verwijder IS 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 r.alg_ruimte_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
|
||||
(SELECT pw.prs_perslid_key
|
||||
FROM prs_perslidwerkplek pw, prs_werkplek w
|
||||
WHERE 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);
|
||||
BEGIN
|
||||
-- bijwerken van werkplekken voor medewerkers Belastingdienst
|
||||
blst.prs_bd_werkplekken(NULL);
|
||||
|
||||
-- bijwerken van werkplekken voor externe medewerkers
|
||||
blst.prs_ext_werkplekken(NULL);
|
||||
FOR REC IN intern
|
||||
LOOP
|
||||
v_perslid_key := rec.prs_perslid_key;
|
||||
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
||||
v_errorhint :=
|
||||
'Werkplek koppelen voor BD perslid: ' || rec.prs_perslid_key;
|
||||
|
||||
BEGIN
|
||||
prs.movetoruimte (v_perslid_key, rec.alg_ruimte_key, '');
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
'Toewijzen werkplek BD medewerker',
|
||||
'E',
|
||||
'Error '
|
||||
|| v_aanduiding
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR REC IN intern_spec
|
||||
LOOP
|
||||
v_perslid_key := rec.prs_perslid_key;
|
||||
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
||||
v_errorhint :=
|
||||
'Afdelingsspec. werkplek koppelen voor BD perslid: ' || rec.prs_perslid_key;
|
||||
|
||||
BEGIN
|
||||
prs.movetoruimte (v_perslid_key, rec.alg_ruimte_key, '');
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
'Toewijzen afdelingsspec. werkplek BD',
|
||||
'E',
|
||||
'Error '
|
||||
|| v_aanduiding
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR REC IN extern
|
||||
LOOP
|
||||
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
||||
v_errorhint :=
|
||||
'Werkplek koppelen voor extern perslid: ' || rec.prs_perslid_key;
|
||||
|
||||
BEGIN
|
||||
prs.movetoruimte (rec.prs_perslid_key, rec.alg_ruimte_key, '');
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
'Toewijzen externe werkplekken',
|
||||
'E',
|
||||
'Error '
|
||||
|| v_aanduiding
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW BLST_V_RAP_RES_MOB
|
||||
(
|
||||
HIDE_F_SRT,
|
||||
|
||||
Reference in New Issue
Block a user