CEVA#81147 Script automatisch opschonen accounts

svn path=/Customer/trunk/; revision=62656
This commit is contained in:
Sander Schepers
2023-11-22 12:53:00 +00:00
parent e51a7db6b7
commit 7f6962d79d

View File

@@ -264,31 +264,141 @@ AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_count_del NUMBER (10);
v_perslid_key NUMBER (15);
CURSOR c IS
SELECT p.*
FROM prs_v_aanwezigperslid p, FAC_V_LCRAP_FE_VS_KEY_DATA u
WHERE p.prs_perslid_key = u.prs_perslid_key
AND ( TRUNC (p.prs_perslid_login) <
TRUNC (SYSDATE) - 365
AND p.prs_perslid_login IS NOT NULL)
SELECT '['
|| TO_CHAR (p.prs_perslid_key)
|| '|'
|| p.prs_perslid_email
|| '|'
|| p.prs_perslid_naam
|| '] ' aanduiding,
p.prs_perslid_key,
COUNT (vp.prs_perslid_key) aant,
DECODE (p.prs_perslid_inactief, NULL, 0, 1) inactief
FROM prs_v_aanwezigperslid p,
FAC_V_LCRAP_FE_VS_KEY_DATA u,
prs_v_verplichting_keys vp
WHERE p.prs_perslid_key = u.prs_perslid_key
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
AND ( TRUNC (p.prs_perslid_login) <
TRUNC (SYSDATE) - 365
AND p.prs_perslid_login IS NOT NULL)
GROUP BY '['
|| TO_CHAR (p.prs_perslid_key)
|| '|'
|| p.prs_perslid_email
|| '|'
|| p.prs_perslid_naam
|| '] ',
p.prs_perslid_key,
DECODE (p.prs_perslid_inactief, NULL, 0, 1)
UNION ALL
SELECT p.*
FROM prs_v_aanwezigperslid p, FAC_V_LCRAP_FE_VS_KEY_DATA u
WHERE p.prs_perslid_key = u.prs_perslid_key
AND ( TRUNC (p.prs_perslid_aanmaak) <
TRUNC (SYSDATE) - 365
AND p.prs_perslid_login IS NULL);
SELECT '['
|| TO_CHAR (p.prs_perslid_key)
|| '|'
|| p.prs_perslid_email
|| '|'
|| p.prs_perslid_naam
|| '] ' aanduiding,
p.prs_perslid_key,
COUNT (vp.prs_perslid_key) aant,
DECODE (p.prs_perslid_inactief, NULL, 0, 1) inactief
FROM prs_v_aanwezigperslid p,
FAC_V_LCRAP_FE_VS_KEY_DATA u,
prs_v_verplichting_keys vp
WHERE p.prs_perslid_key = u.prs_perslid_key
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
AND ( TRUNC (p.prs_perslid_aanmaak) <
TRUNC (SYSDATE) - 365
AND p.prs_perslid_login IS NULL)
GROUP BY '['
|| TO_CHAR (p.prs_perslid_key)
|| '|'
|| p.prs_perslid_email
|| '|'
|| p.prs_perslid_naam
|| '] ',
p.prs_perslid_key,
DECODE (p.prs_perslid_inactief, NULL, 0, 1);
BEGIN
v_count_del := 0;
FOR rec IN c
LOOP
BEGIN
v_perslid_key := rec.prs_perslid_key;
prs.delete_perslid (1, v_perslid_key);
IF rec.aant = 0
THEN
v_errormsg := 'Fout schonen collega';
DELETE FROM
prs_collega
WHERE prs_perslid_key = rec.prs_perslid_key
OR prs_perslid_key_alt = rec.prs_perslid_key;
v_errormsg := 'Fout schonen persoon';
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
v_count_del := v_count_del + 1;
IF MOD (v_count_del, 1000) = 0
THEN
COMMIT;
END IF;
ELSE
fac.writelog (
'SCHONEN_PERSONEN',
'I',
rec.aanduiding
|| '/#Verplichtingen: '
|| TO_CHAR (rec.aant),
'Persoon niet geschoond');
IF rec.inactief = 0
THEN
v_errormsg := 'Fout inactiveren persoon';
UPDATE prs_perslid
SET prs_perslid_inactief = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
fac.trackaction ('PRSUPD',
rec.prs_perslid_key,
3, --Facilitor
SYSDATE,
'Persoon inactief gemaakt');
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN -- Kennelijk heeft persoon toch nog ernstige verplichtingen!
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog ('SCHONEN_PERSONEN',
'W',
rec.aanduiding || v_errormsg,
'Fout schonen persoon');
END;
END LOOP;
fac.writelog ('SCHONEN_PERSONEN',
'S',
'Personen/#geschoond: ' || TO_CHAR (v_count_del),
'');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
@@ -540,6 +650,203 @@ AS
AND d.ins_alg_ruimte_key = aog.alg_ruimte_key
AND l.alg_locatie_key = aog.alg_locatie_key;
CREATE OR REPLACE VIEW CEVA_V_EXPORT_BIJLAGEN_LOCATIES
(
TYPE,
LOCATIE,
GEBOUW,
VERDIEPING,
RUIMTE,
OBJECT_KEY,
OBJECT_ID,
OBJECT_OMSCHRIJVING,
MELDING,
CATEGORY,
CALL,
FAC_BIJLAGEN_AANMAAK,
FAC_BIJLAGEN_FILENAME,
FAC_BIJLAGEN_KEY,
FAC_BIJLAGEN_ZIPPATH,
CHECK_LENGTE
)
AS
SELECT 'locatie',
l.alg_locatie_omschrijving AS locatie,
NULL AS gebouw,
NULL AS verdieping,
NULL AS ruimte,
NULL AS object_key,
NULL AS object_id,
NULL AS object_omschrijving,
NULL AS melding,
NULL AS category,
NULL AS call,
b.fac_bijlagen_aanmaak,
b.fac_bijlagen_filename,
b.fac_bijlagen_key,
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
LENGTH (
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename) check_lengte
FROM fac_v_bijlagen b, alg_locatie l
WHERE b.fac_bijlagen_verwijder IS NULL
AND b.fac_bijlagen_module = 'ALG'
AND b.fac_bijlagen_refkey = l.alg_locatie_key
UNION ALL
SELECT 'gebouw',
l.alg_locatie_omschrijving,
g.alg_gebouw_omschrijving,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
b.fac_bijlagen_aanmaak,
b.fac_bijlagen_filename,
b.fac_bijlagen_key,
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
LENGTH (
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename) check_lengte
FROM fac_v_bijlagen b, alg_locatie l, alg_gebouw g
WHERE b.fac_bijlagen_verwijder IS NULL
AND l.alg_locatie_key = g.alg_locatie_key
AND b.fac_bijlagen_module = 'ALG'
AND b.fac_bijlagen_refkey = g.alg_gebouw_key
UNION ALL
SELECT 'verdieping',
l.alg_locatie_omschrijving,
g.alg_gebouw_omschrijving,
v.alg_verdieping_omschrijving,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
b.fac_bijlagen_aanmaak,
b.fac_bijlagen_filename,
b.fac_bijlagen_key,
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
LENGTH (
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename) check_lengte
FROM fac_v_bijlagen b,
alg_locatie l,
alg_gebouw g,
alg_verdieping v
WHERE b.fac_bijlagen_verwijder IS NULL
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND b.fac_bijlagen_module = 'ALG'
AND b.fac_bijlagen_refkey = v.alg_verdieping_key
UNION ALL
SELECT 'ruimte',
l.alg_locatie_omschrijving,
g.alg_gebouw_omschrijving,
v.alg_verdieping_omschrijving,
r.alg_ruimte_nr,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
b.fac_bijlagen_aanmaak,
b.fac_bijlagen_filename,
b.fac_bijlagen_key,
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
LENGTH (
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename) check_lengte
FROM fac_v_bijlagen b,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE b.fac_bijlagen_verwijder IS NULL
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND b.fac_bijlagen_module = 'ALG'
AND b.fac_bijlagen_refkey = r.alg_ruimte_key
UNION ALL
SELECT 'melding',
l.alg_locatie_omschrijving,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
m.mld_melding_key,
disc.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
b.fac_bijlagen_aanmaak,
b.fac_bijlagen_filename,
b.fac_bijlagen_key,
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
LENGTH (
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename) check_lengte
FROM fac_v_bijlagen b,
alg_locatie l,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline disc
WHERE b.fac_bijlagen_verwijder IS NULL
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND b.fac_bijlagen_module = 'MLD'
AND b.fac_bijlagen_refkey = m.mld_melding_key
UNION ALL
SELECT 'object',
l.alg_locatie_omschrijving,
NULL,
NULL,
NULL,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
NULL,
NULL,
NULL,
b.fac_bijlagen_aanmaak,
b.fac_bijlagen_filename,
b.fac_bijlagen_key,
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
LENGTH (
b.fac_bijlagen_disk_directory
|| CHR (92)
|| b.fac_bijlagen_filename) check_lengte
FROM fac_v_bijlagen b, alg_locatie l, ins_deel d
WHERE b.fac_bijlagen_verwijder IS NULL
AND d.ins_alg_locatie_key = l.alg_locatie_key
AND b.fac_bijlagen_module = 'INS'
AND b.fac_bijlagen_refkey = d.ins_deel_key;
------ payload end ------
SET DEFINE OFF