KFHT#56229 NACHTWERK-export/Inactiveren gebruikers

svn path=/Customer/trunk/; revision=40982
This commit is contained in:
Maarten van der Heide
2019-02-14 15:40:07 +00:00
parent 1e4d53776b
commit b30025aee4

View File

@@ -2,10 +2,8 @@
-- $Id$
--
-- Script containing customer specific db-configuration for KFHT.
DEFINE thisfile = 'KFHT.SQL'
DEFINE dbuser = '^KFHT'
DEFINE custid = 'KFHT'
SET ECHO ON
SET DEFINE ON
@@ -922,6 +920,65 @@ BEGIN
END;
/
-- KFHT#56229: Verwijderen inactieve accounts (6 maanden niet ingelogd).
CREATE OR REPLACE PROCEDURE kfht_select_nachtwerk (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
BEGIN
v_errormsg := 'Fout inactiveren persoon';
v_count := 0;
FOR rec
IN ( SELECT p.prs_perslid_key, p.prs_perslid_oslogin, COUNT (vp.prs_perslid_key) aant
FROM prs_v_aanwezigperslid p, prs_v_verplichting_keys vp
WHERE TO_CHAR (SYSDATE, 'dd') = '01' -- Op 1e van de maand >180d niet ingelogd
AND p.prs_perslid_login < TRUNC (ADD_MONTHS (SYSDATE, -6), 'mm')
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin)
LOOP
BEGIN
IF rec.aant = 0
THEN
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
v_count := v_count + 1;
ELSE
fac.writelog (p_applname, 'I',
'[' || rec.prs_perslid_oslogin || ']/#Verplichtingen: ' || TO_CHAR (rec.aant),
'Persoon niet geïnactiveerd');
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 := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E',
'[' || rec.prs_perslid_oslogin || ']/' || v_errormsg,
'Fout inactiveren persoon');
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Personen geïnactiveerd:' || TO_CHAR (v_count), '');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
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 (p_applname, 'E', v_errormsg, 'Proces AUTOCLOSE afgebroken!');
END kfht_select_nachtwerk;
/
CREATE OR REPLACE VIEW KFHT_V_NOTI_MLD_WVGREMINDER
(
CODE,
@@ -948,17 +1005,16 @@ AS
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_melding m,
mld_stdmelding std,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline msd
WHERE k.mld_kenmerk_key = mk.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 122 --Begindatum
WHERE k.mld_kenmerk_key = mk.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 122 -- Begindatum
AND k.mld_kenmerk_verwijder IS NULL
AND fac.safe_to_date (mld_kenmerkmelding_waarde, 'DD-MM-YYYY') =
TRUNC (SYSDATE) + 2
AND fac.safe_to_date (mld_kenmerkmelding_waarde, 'DD-MM-YYYY') = TRUNC (SYSDATE) + 2
AND m.mld_melding_key = mk.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key = 208 -- Aanvraag werkvergunning
AND md.ins_srtdiscipline_key = msd.ins_srtdiscipline_key
AND m.mld_melding_status NOT IN (1, 5, 6)