diff --git a/MDUX/mdux.sql b/MDUX/mdux.sql index 0a5f140a3..b603e57da 100644 --- a/MDUX/mdux.sql +++ b/MDUX/mdux.sql @@ -5164,13 +5164,6 @@ EXCEPTION END; / -CREATE OR REPLACE PROCEDURE mdux_daily -AS -BEGIN - mdux_huurautos_afmelden (); -END; -/ - CREATE OR REPLACE PACKAGE MDUX AS PROCEDURE verwijderen_personen; @@ -5190,7 +5183,7 @@ AS v_aanduiding VARCHAR2 (200); v_count_del NUMBER (10); - -- Alle personen verwijderen die niet meer in import bestand voorkomen. + -- Alle personen verwijderen die door Misa zijn aangeduid als oud-medewerkers (einddatum) CURSOR c_del IS SELECT p.prs_perslid_key, p.prs_perslid_nr, @@ -5222,6 +5215,39 @@ AS || 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_inactief IS NOT 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_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; + BEGIN v_count_del := 0; @@ -5251,6 +5277,13 @@ AS 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', @@ -5282,6 +5315,18 @@ AS '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 WHEN OTHERS THEN @@ -5312,6 +5357,8 @@ BEGIN -- Een enddate bepaalt vanuit MISA (AFAS) dat de persoon verwijderd mag worden. mdux.verwijderen_personen (); + mdux_huurautos_afmelden (); + END; /