MDUX#81808 Verwijderen personen lukt niet

svn path=/Customer/trunk/; revision=63199
This commit is contained in:
Sander Schepers
2024-01-17 10:02:15 +00:00
parent 498e394458
commit 14bf242bc2

View File

@@ -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;
/