MDUX#81808 Inactiveren personen obv einddatum
svn path=/Customer/trunk/; revision=67908
This commit is contained in:
177
MDUX/mdux.sql
177
MDUX/mdux.sql
@@ -5166,167 +5166,62 @@ END;
|
|||||||
|
|
||||||
CREATE OR REPLACE PACKAGE MDUX
|
CREATE OR REPLACE PACKAGE MDUX
|
||||||
AS
|
AS
|
||||||
PROCEDURE verwijderen_personen;
|
PROCEDURE inactiveren_personen;
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
CREATE OR REPLACE PACKAGE BODY MDUX
|
CREATE OR REPLACE PACKAGE BODY MDUX
|
||||||
AS
|
AS
|
||||||
-- Dagelijks verwijderen personen (deze worden vanuit MISA via REST API aangemaakt/bijgehouden)
|
-- Dagelijks inactiveren personen (deze worden vanuit MISA via REST API aangemaakt/bijgehouden, einddatum is waar we naar kijken)
|
||||||
-- Een enddate bepaalt vanuit MISA (AFAS) dat de persoon verwijderd mag worden.
|
-- Een einddatum bepaalt vanuit MISA (AFAS) dat de persoon verwijderd mag worden.
|
||||||
PROCEDURE verwijderen_personen
|
PROCEDURE inactiveren_personen
|
||||||
AS
|
AS
|
||||||
c_applname VARCHAR2 (50) := 'VERWIJDEREN_PERSONEN';
|
c_applname VARCHAR2 (50) := 'INACTIVEREN_PERSONEN';
|
||||||
v_errormsg VARCHAR2 (1000);
|
v_errormsg VARCHAR2 (1000);
|
||||||
oracle_err_num NUMBER;
|
oracle_err_num NUMBER;
|
||||||
oracle_err_mes VARCHAR2 (200);
|
oracle_err_mes VARCHAR2 (200);
|
||||||
v_aanduiding VARCHAR2 (200);
|
v_aanduiding VARCHAR2 (200);
|
||||||
v_count_del NUMBER (10);
|
v_count_tot NUMBER (10) := 0;
|
||||||
|
|
||||||
-- Alle personen verwijderen die door Misa zijn aangeduid als oud-medewerkers (einddatum)
|
-- Alle personen inactiveren die een einddatum < sysdate -14
|
||||||
CURSOR c_del IS
|
CURSOR c_inactief IS
|
||||||
SELECT p.prs_perslid_key,
|
SELECT p.prs_perslid_key,
|
||||||
p.prs_perslid_nr,
|
p.prs_perslid_nr,
|
||||||
'['
|
pf.prs_perslid_naam_full,
|
||||||
|| TO_CHAR (p.prs_perslid_key)
|
p.prs_perslid_email,
|
||||||
|| '|'
|
p.prs_perslid_einddatum
|
||||||
|| p.prs_perslid_email
|
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
|
||||||
|| '|'
|
|
||||||
|| pf.prs_perslid_naam_full
|
|
||||||
|| '] ' aanduiding,
|
|
||||||
COUNT (vp.prs_perslid_key) aant
|
|
||||||
FROM prs_perslid p,
|
|
||||||
prs_v_perslid_fullnames_all pf,
|
|
||||||
prs_v_verplichting_keys vp
|
|
||||||
WHERE pf.prs_perslid_key = p.prs_perslid_key
|
WHERE pf.prs_perslid_key = p.prs_perslid_key
|
||||||
AND p.prs_perslid_nr IS NOT NULL
|
AND p.prs_perslid_nr IS NOT NULL
|
||||||
AND p.prs_perslid_verwijder IS NULL
|
|
||||||
AND p.prs_perslid_einddatum IS NOT NULL
|
AND p.prs_perslid_einddatum IS NOT NULL
|
||||||
AND TRUNC (p.prs_perslid_einddatum) <= TRUNC (SYSDATE)
|
AND TRUNC (p.prs_perslid_einddatum) <=
|
||||||
AND p.prs_perslid_apikey IS NULL
|
TRUNC (SYSDATE) - 14
|
||||||
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
|
|
||||||
GROUP BY p.prs_perslid_key,
|
|
||||||
p.prs_perslid_nr,
|
|
||||||
'['
|
|
||||||
|| TO_CHAR (p.prs_perslid_key)
|
|
||||||
|| '|'
|
|
||||||
|| p.prs_perslid_email
|
|
||||||
|| '|'
|
|
||||||
|| pf.prs_perslid_naam_full
|
|
||||||
|| '] '
|
|
||||||
ORDER BY 2;
|
|
||||||
|
|
||||||
CURSOR c_actief IS
|
|
||||||
SELECT p.prs_perslid_key,
|
|
||||||
p.prs_perslid_nr,
|
|
||||||
'['
|
|
||||||
|| TO_CHAR (p.prs_perslid_key)
|
|
||||||
|| '|'
|
|
||||||
|| p.prs_perslid_email
|
|
||||||
|| '|'
|
|
||||||
|| pf.prs_perslid_naam_full
|
|
||||||
|| '] ' aanduiding,
|
|
||||||
COUNT (vp.prs_perslid_key) aant
|
|
||||||
FROM prs_perslid p,
|
|
||||||
prs_v_perslid_fullnames_all pf,
|
|
||||||
prs_v_verplichting_keys vp
|
|
||||||
WHERE pf.prs_perslid_key = p.prs_perslid_key
|
|
||||||
AND p.prs_perslid_nr IS NOT NULL
|
|
||||||
AND p.prs_perslid_verwijder IS NULL
|
AND p.prs_perslid_verwijder IS NULL
|
||||||
AND p.prs_perslid_inactief IS NOT NULL
|
AND p.prs_perslid_inactief IS NULL
|
||||||
AND (p.prs_perslid_einddatum IS NULL OR TRUNC (p.prs_perslid_einddatum) > TRUNC (SYSDATE))
|
|
||||||
AND p.prs_perslid_apikey IS NULL
|
AND p.prs_perslid_apikey IS NULL
|
||||||
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
|
|
||||||
GROUP BY p.prs_perslid_key,
|
|
||||||
p.prs_perslid_nr,
|
|
||||||
'['
|
|
||||||
|| TO_CHAR (p.prs_perslid_key)
|
|
||||||
|| '|'
|
|
||||||
|| p.prs_perslid_email
|
|
||||||
|| '|'
|
|
||||||
|| pf.prs_perslid_naam_full
|
|
||||||
|| '] '
|
|
||||||
ORDER BY 2;
|
ORDER BY 2;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
v_count_del := 0;
|
|
||||||
|
|
||||||
-- LET OP: DAILY-taak draait dagelijks na middernacht (begin van dag)
|
-- LET OP: DAILY-taak draait dagelijks na middernacht (begin van dag)
|
||||||
FOR rec IN c_del
|
FOR rec IN c_inactief
|
||||||
LOOP
|
LOOP
|
||||||
BEGIN
|
v_aanduiding :=
|
||||||
IF rec.aant = 0
|
'['
|
||||||
THEN
|
|| TO_CHAR (rec.prs_perslid_key)
|
||||||
v_errormsg := 'Fout schonen collega';
|
|| '|'
|
||||||
|
|| rec.prs_perslid_email
|
||||||
|
|| '] ';
|
||||||
|
v_count_tot := v_count_tot + 1;
|
||||||
|
|
||||||
DELETE FROM
|
UPDATE prs_perslid
|
||||||
prs_collega
|
SET prs_perslid_inactief = SYSDATE
|
||||||
WHERE prs_perslid_key = rec.prs_perslid_key
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||||||
OR prs_perslid_key_alt = rec.prs_perslid_key;
|
|
||||||
|
|
||||||
v_errormsg := 'Fout schonen perslid';
|
fac.writelog (
|
||||||
|
c_applname,
|
||||||
UPDATE prs_perslid
|
'S',
|
||||||
SET prs_perslid_verwijder = SYSDATE
|
'#Accounts geinactiveerd: ' || TO_CHAR (v_count_tot),
|
||||||
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
|
|
||||||
v_errormsg := 'Fout inactief maken perslid';
|
|
||||||
|
|
||||||
UPDATE prs_perslid
|
|
||||||
SET prs_perslid_inactief = SYSDATE
|
|
||||||
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
||||||
AND prs_perslid_inactief IS NULL;
|
|
||||||
|
|
||||||
fac.writelog (
|
|
||||||
'VERWIJDEREN_PERSONEN',
|
|
||||||
'I',
|
|
||||||
rec.aanduiding
|
|
||||||
|| '/#Verplichtingen: '
|
|
||||||
|| TO_CHAR (rec.aant),
|
|
||||||
'Persoon niet geschoond');
|
|
||||||
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 ('VERWIJDEREN_PERSONEN',
|
|
||||||
'W',
|
|
||||||
rec.aanduiding || v_errormsg,
|
|
||||||
'Fout schonen persoon');
|
|
||||||
END;
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
fac.writelog ('VERWIJDEREN_PERSONEN',
|
|
||||||
'S',
|
|
||||||
'Personen/#geschoond: ' || TO_CHAR (v_count_del),
|
|
||||||
'');
|
|
||||||
|
|
||||||
FOR rec IN c_actief
|
|
||||||
LOOP
|
|
||||||
BEGIN
|
|
||||||
v_errormsg := 'Fout weer actief maken perslid';
|
|
||||||
|
|
||||||
UPDATE prs_perslid
|
|
||||||
SET prs_perslid_inactief = NULL
|
|
||||||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
||||||
END;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS
|
WHEN OTHERS
|
||||||
THEN
|
THEN
|
||||||
@@ -5346,19 +5241,15 @@ AS
|
|||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE PROCEDURE MDUX_DAILY
|
CREATE OR REPLACE PROCEDURE MDUX_DAILY
|
||||||
AS
|
AS
|
||||||
v_errormsg VARCHAR2 (1000);
|
v_errormsg VARCHAR2 (1000);
|
||||||
oracle_err_num NUMBER;
|
oracle_err_num NUMBER;
|
||||||
oracle_err_mes VARCHAR2 (200);
|
oracle_err_mes VARCHAR2 (200);
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Dagelijks verwijderen personen (deze worden vanuit MISA via REST API aangemaakt/bijgehouden)
|
-- Dagelijks inactiveren personen (deze worden vanuit MISA via REST API aangemaakt/bijgehouden obv einddatum)
|
||||||
-- Een enddate bepaalt vanuit MISA (AFAS) dat de persoon verwijderd mag worden.
|
-- Een enddate bepaalt vanuit MISA (AFAS) dat de persoon verwijderd mag worden.
|
||||||
mdux.verwijderen_personen ();
|
mdux.inactiveren_personen ();
|
||||||
|
|
||||||
mdux_huurautos_afmelden ();
|
|
||||||
|
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user