ARBO#56645 -- Aanpassen personenkoppeling ivm uitbreiding richting Human Capital Care

svn path=/Customer/trunk/; revision=45487
This commit is contained in:
Arthur Egberink
2020-01-17 15:52:26 +00:00
parent 94043a3613
commit 4a1b4b85e6

View File

@@ -1505,27 +1505,6 @@ END arbo_update_prs;
/
/*
CREATE OR REPLACE PROCEDURE arbo_import_perslid (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR(255);
BEGIN
v_seq_of_columns := '0;0;0;0;0;0;1;6;0;5;0;0;0;0;0;8;9;7;0;2;4;0;0;0;0;0;3;10;11;12;13;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0';
prs.import_perslid(p_import_key, v_seq_of_columns, '%');
UPDATE fac_imp_perslid p
SET prs_kenmerk10 = (SELECT fac_import_filenaam FROM fac_import i WHERE fac_import_key = p_import_key),
prs_kenmerk11 = (SELECT TO_CHAR(fac_import_datum_gelezen, 'yyyy-mm-dd hh24:mi:ss') FROM fac_import i WHERE fac_import_key = p_import_key)
WHERE p.fac_import_key = p_import_key;
-- Bewaar de oude data omdat we een aantal imports per nacht krijgen
INSERT INTO arbo_imp_perslid
SELECT * FROM fac_imp_perslid;
END;
/
*/
CREATE OR REPLACE PROCEDURE arbo_import_perslid (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (255);
@@ -1614,7 +1593,7 @@ BEGIN
'TD');
UPDATE fac_imp_perslid
SET prs_afdeling_naam = prs_afdeling_naam || '-' || prs_kenmerk6;
SET prs_afdeling_naam = prs_afdeling_naam || REPLACE(prs_kenmerk7, '-');
UPDATE fac_imp_perslid i
SET prs_perslid_email = COALESCE(i.prs_perslid_email, (SELECT prs_perslid_email
@@ -1622,6 +1601,12 @@ BEGIN
WHERE i.prs_perslid_nr = p.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL));
UPDATE fac_imp_perslid i
SET (prs_perslid_mobiel, prs_perslid_telefoonnr ) = (SELECT prs_perslid_mobiel, prs_perslid_telefoonnr
FROM prs_perslid p
WHERE i.prs_perslid_nr = p.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL);
END;
/
@@ -1650,6 +1635,8 @@ IS
WHERE i.prs_perslid_key = p.prs_perslid_key
AND prs_kenmerk10 IS NOT NULL;
-- personen pas verwijderen als ze langer dan 80 dagen bestaan. Hiermee voorkomen we dat nieuw handmatig ingevoerde
-- personen direct verwijderd worden, omdat HR data altijd wat ouder is.
CURSOR c_del IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, p.prs_perslid_oslogin
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
@@ -1657,7 +1644,8 @@ IS
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_nr IS NOT NULL
AND i.prs_perslid_nr IS NULL
AND p.prs_perslid_verwijder IS NULL;
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_aanmaak < SYSDATE -80;
v_bedrijf_key NUMBER (10);
v_afdeling_key1 NUMBER (10);
@@ -1839,7 +1827,7 @@ BEGIN
INTO v_afdeling_key4
FROM prs_v_afdeling a
WHERE a.prs_afdeling_upper =
rec.afdeling_naam || '-' || rec.kostenplaats_id
rec.afdeling_naam || REPLACE(rec.kostenplaats_nr,'-')
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 4
AND a.prs_afdeling_parentkey = v_afdeling_key3;
@@ -1860,13 +1848,11 @@ BEGIN
'Voeg afdeling4 toe '
|| v_afdeling_key4
|| '-'
|| rec.afdeling_naam
|| rec.afdeling_naam || REPLACE(rec.kostenplaats_nr,'-')
|| '-'
|| rec.afdeling_oms3
|| '-'
|| v_afdeling_key3
|| '-'
|| rec.kostenplaats_id;
|| v_afdeling_key3;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
@@ -1876,8 +1862,7 @@ BEGIN
VALUES (
v_afdeling_key4,
rec.afdeling_naam
|| '-'
|| rec.kostenplaats_id,
|| REPLACE(rec.kostenplaats_nr,'-'),
rec.afdeling_oms3,
v_kostenplaats_key,
v_afdeling_key3);
@@ -1926,14 +1911,15 @@ BEGIN
prs.update_perslid (p_import_key, 'NR', NULL);
v_errorhint := 'Update personen';
FOR rec IN c_upd LOOP
BEGIN
v_errorhint := 'Update persoon: ' || rec.prs_perslid_key || '-' || rec.alt_email;
PRS.upsertkenmerk (1020, rec.prs_perslid_key, rec.alt_email);
END;
END LOOP;
-- Niet gebruikte functies gaan we nu verwijderen
UPDATE prs_srtperslid sp
SET prs_srtperslid_verwijder = SYSDATE
WHERE prs_srtperslid_verwijder IS NULL
AND NOT EXISTS
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_verwijder IS NULL);
-- Nu gaan we proberen de afdelingen op te ruimen
BEGIN
@@ -1949,7 +1935,8 @@ BEGIN
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key =
ab.prs_afdeling_key)
ab.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_afd_verplichting v
@@ -1974,7 +1961,8 @@ BEGIN
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key =
ab.prs_afdeling_key)
ab.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_afd_verplichting v
@@ -1999,7 +1987,8 @@ BEGIN
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key =
ab.prs_afdeling_key)
ab.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_afd_verplichting v
@@ -2024,7 +2013,8 @@ BEGIN
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key =
ab.prs_afdeling_key)
ab.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_afd_verplichting v
@@ -2036,6 +2026,16 @@ BEGIN
WHERE a.prs_afdeling_parentkey =
ab.prs_afdeling_key)
AND prs_afdeling_verwijder IS NULL);
-- Niet gebruikte kostenplaatsen gaan we verwijderen.
UPDATE prs_kostenplaats kp
SET kp.prs_kostenplaats_verwijder = SYSDATE
WHERE prs_kostenplaats_verwijder IS NULL
AND prs_kostenplaats_module = 'PRS'
AND NOT EXISTS (SELECT a.prs_afdeling_key
FROM prs_afdeling a
WHERE a.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND a.prs_afdeling_verwijder IS NULL);
END;
COMMIT;