SGGR#83501 update perslid WD aangepast zodat de juiste verantwoordelijke wordt weggeschreven bij medewerkers

svn path=/Customer/trunk/; revision=70987
This commit is contained in:
Suzan Wiegerinck
2025-11-18 13:54:26 +00:00
parent 1a49f0d536
commit 6bbeb81c1f

View File

@@ -37,6 +37,7 @@ AS
FUNCTION find_nieuw (p_string IN VARCHAR2, p_default IN VARCHAR2)
RETURN VARCHAR2;
END;
/
@@ -120,6 +121,7 @@ AS
RETURN p_default;
END IF;
END;
END;
/
@@ -3857,6 +3859,18 @@ IS
(SELECT 1
FROM fac_imp_perslid i
WHERE UPPER (i.PRS_PERSLID_NR) = UPPER (p.PRS_PERSLID_NR));
-- de perslid key van de manager taat in kenmerk 20
CURSOR c_ver IS
SELECT p.prs_perslid_key, mgr.prs_perslid_key prs_perslid_key_verantw
FROM fac_imp_perslid i, prs_perslid mgr, prs_perslid p
WHERE mgr.prs_perslid_nr = i.prs_kenmerk20
AND p.prs_perslid_key = i.prs_perslid_key
AND p.prs_perslid_key = i.prs_perslid_key
AND mgr.prs_perslid_verwijder IS NULL
AND ( p.prs_perslid_key_verantw <> mgr.prs_perslid_key
OR p.prs_perslid_key_verantw IS NULL);
BEGIN
SELECT COUNT (*)
INTO v_count_prs_import
@@ -3870,8 +3884,6 @@ BEGIN
FROM prs_v_aanwezigperslid
WHERE prs_perslid_oslogin IS NOT NULL;
/*
We zetten dit even uit ivm de grote achterstand in oude accounts
IF (TRUNC ((v_count_prs_import / v_count_prs_actual) * 100) < (100 - c_max_delta_percentage))
THEN
fac.imp_writelog (
@@ -3894,9 +3906,8 @@ BEGIN
RETURN;
END IF;
*/
-- Generieke update.
-- Generieke update
prs.update_perslid (p_import_key, 'NR', NULL);
-- Verwijder personen die niet meer in de import voorkomen.
@@ -3905,16 +3916,16 @@ BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END LOOP;
-- Bijwerken manager
UPDATE prs_perslid p
SET p.prs_perslid_key_verantw =
(SELECT mgr.prs_perslid_key
FROM fac_imp_perslid i, prs_perslid mgr
WHERE mgr.prs_perslid_nr = i.prs_kenmerk20
AND p.prs_perslid_key = i.prs_perslid_key
AND mgr.prs_perslid_verwijder IS NULL
AND ( p.prs_perslid_key_verantw <> mgr.prs_perslid_key
OR p.prs_perslid_key_verantw IS NULL));
-- We nemen de manager uit Workday over als verantwoordelijke bij de persoon
FOR rec IN c_ver
LOOP
UPDATE prs_perslid mdw
SET mdw.prs_perslid_key_verantw = rec.prs_perslid_key_verantw
WHERE mdw.prs_perslid_key = rec.prs_perslid_key;
COMMIT;
END LOOP;
-- De manager blijkt niet voor iedereen in WD goed te staan waardoor de leidinggevende leeg gelaten wordt
-- Fallback: we nemen de manager uit het kenmerk leidinggevende over
@@ -3933,7 +3944,7 @@ BEGIN
AND mgr.prs_perslid_key = fac.safe_to_number (kl.prs_kenmerklink_waarde)
AND p.prs_perslid_key = mdw.prs_perslid_key
AND p.prs_perslid_key_verantw IS NULL);
END sggr_update_perslid_wd;
/