ASDL#37175 -- Persoon niet hard verwijderen bij personen import.

svn path=/Customer/trunk/; revision=30198
This commit is contained in:
Arthur Egberink
2016-08-02 11:13:07 +00:00
parent a6baab038b
commit 503a52033a

View File

@@ -1077,6 +1077,7 @@ IS
v_perslid_nr VARCHAR2 (100);
v_kostenplaats_nr VARCHAR2 (100);
v_count NUMBER;
v_errorhint VARCHAR2 (1000);
BEGIN
-- generic update
prs.update_perslid (p_import_key, 'NR', 'A');
@@ -1084,7 +1085,64 @@ BEGIN
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
-- Niet gebruik maken van de standaard functie omdat we geen medewerkers
-- hard willen verwijderen.
-- prs.delete_perslid (p_import_key, rec.prs_perslid_key);
-- Controleer of er ACTUELE verplichtingen zijn
SELECT COUNT ( * )
INTO v_count
FROM prs_v_verplichting_keys vp
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
IF v_count > 0
THEN
UPDATE prs_perslid
SET prs_perslid_naam =
SUBSTR ('INACTIEF:' || prs_perslid_naam, 1, 60),
prs_perslid_oslogin = NULL,
prs_perslid_oslogin2 = NULL
WHERE prs_perslid_key = rec.prs_perslid_key
AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
fac.imp_writelog (
p_import_key,
'I',
'Persoon als INACTIEF gemarkeerd of was al INACTIEF gemarkeerd.',
'Achternaam/persoonsnr: '
|| rec.prs_perslid_naam_full
|| '/'
|| rec.prs_perslid_nr);
ELSE
BEGIN
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
fac.imp_writelog (
p_import_key,
'I',
'Persoon ge<67>nactiveerd.',
'Achternaam/persoonsnr: '
|| rec.prs_perslid_naam_full
|| '/'
|| rec.prs_perslid_nr);
EXCEPTION
WHEN OTHERS
THEN
-- Kennelijk heeft de persoon toch ernstige verplichtingen
v_errorhint :=
'Persoon heeft nog (max. '
|| TO_CHAR (v_count)
|| ') verplichtingen. Naam/persoonsnr: '
|| rec.prs_perslid_naam_full
|| '/'
|| rec.prs_perslid_nr;
fac.imp_writelog (p_import_key,
'I',
'Inactiveren persoon is niet gelukt',
v_errorhint);
END;
END IF;
END;
END LOOP;