From 4a1b4b85e63c8e1f516a3bf5604a517c242fbc49 Mon Sep 17 00:00:00 2001 From: Arthur Egberink Date: Fri, 17 Jan 2020 15:52:26 +0000 Subject: [PATCH] ARBO#56645 -- Aanpassen personenkoppeling ivm uitbreiding richting Human Capital Care svn path=/Customer/trunk/; revision=45487 --- ARBO/arbo.sql | 84 +++++++++++++++++++++++++-------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/ARBO/arbo.sql b/ARBO/arbo.sql index 591583021..1c3e833b1 100644 --- a/ARBO/arbo.sql +++ b/ARBO/arbo.sql @@ -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;