From f5437b7021f7e6cb303df64f234fab3a47aedf7f Mon Sep 17 00:00:00 2001 From: Robin Stoker Date: Tue, 23 Jan 2018 09:48:15 +0000 Subject: [PATCH] VEST#41990 -- PRS import op basis van oslogin svn path=/Customer/trunk/; revision=36674 --- VEST/vest.sql | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/VEST/vest.sql b/VEST/vest.sql index a1a9afb34..fe17e2373 100644 --- a/VEST/vest.sql +++ b/VEST/vest.sql @@ -33,13 +33,30 @@ BEGIN v_errorhint := 'Generieke update'; -- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc prs.import_perslid (p_import_key, - '12;13;14;15;0;0;5;1;3;2;' || - '0;0;0;0;8;9;10;4;0;11;' || - '6;7;4;0;0;0;0;0;0;0;'|| + '13;14;15;16;0;0;6;1;3;2;' || + '0;0;0;0;9;10;11;5;0;12;' || + '7;4;0;8;0;0;0;0;0;0;'|| '0;0;0;0;0;0;0;0;0;0;'|| '0;0;0;0;0;0', - 'Achternaam;Voornaam;Tussenvoegsel;Email;Afdeling;Functie;Titel/Aanhef;Geslacht;Telefoonnummer;Mobiel nummer;Personeelsnummer;Locatie;Gebouw;Verdieping;Ruimte' - ); + 'Achternaam;Voornaam;Tussenvoegsel;SamAccountName;Email;Afdeling;Functie;Titel/Aanhef;Geslacht;Telefoonnummer;Mobiel nummer;Personeelsnummer;Locatie;Gebouw;Verdieping;Ruimte' + ); + +UPDATE fac_imp_perslid +SET alg_locatie_code = ( +SELECT a.alg_locatie_code +FROM alg_locatie a +WHERE fac_imp_perslid.alg_locatie_code = a.alg_locatie_omschrijving); + +UPDATE fac_imp_perslid +SET prs_afdeling_naam = ( +SELECT p.prs_afdeling_naam +FROM prs_afdeling p +WHERE fac_imp_perslid.prs_afdeling_naam = substr (p.prs_afdeling_omschrijving, 1, 15)) +WHERE fac_imp_perslid.prs_afdeling_naam NOT IN (SELECT p.prs_afdeling_naam FROM prs_afdeling p); + +DELETE FROM fac_imp_perslid +WHERE alg_locatie_code NOT IN (SELECT alg_locatie_code FROM alg_locatie); + COMMIT; EXCEPTION WHEN OTHERS @@ -57,13 +74,14 @@ CREATE OR REPLACE PROCEDURE vest_update_perslid ( -- Alle personen verwijderen die niet meer in import bestand voorkomen. CURSOR c_del IS - SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full + SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf - WHERE p.prs_perslid_nr = i.prs_perslid_nr(+) + WHERE p.prs_perslid_oslogin = i.prs_perslid_oslogin(+) 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_oslogin IS NOT NULL + AND i.prs_perslid_oslogin IS NULL AND p.prs_perslid_verwijder IS NULL + AND p.prs_perslid_oslogin NOT LIKE '%_%' ORDER BY 2; v_count NUMBER; @@ -75,7 +93,7 @@ BEGIN INTO v_count FROM fac_imp_perslid; - IF v_count < 300 + IF v_count < 150 THEN fac.imp_writelog (p_import_key, 'E', @@ -86,9 +104,9 @@ BEGIN RETURN; END IF; - -- 'NR' betekent dat op basis van personeelsNummeR wordt gematched. + -- 'LOGIN' betekent dat op basis van oslogin wordt gematched. -- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen - prs.update_perslid (p_import_key, 'NR', NULL); + prs.update_perslid (p_import_key, 'LOGIN', NULL); -- Verwijder personen die niet meer in de import voorkomen. FOR rec IN c_del @@ -97,7 +115,6 @@ BEGIN prs.delete_perslid (p_import_key, rec.prs_perslid_key); END; END LOOP; - vest_post_update_perslid (p_import_key); END vest_update_perslid; /