From 023226737c3cab4a0afbb0050c298c877b27df40 Mon Sep 17 00:00:00 2001 From: Arthur Egberink Date: Fri, 25 Feb 2022 07:14:59 +0000 Subject: [PATCH] YASK#71216 -- Inrichting Renewi op de MC+ omgeving svn path=/Customer/trunk/; revision=55122 --- YASK/yask.sql | 63 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 10 deletions(-) diff --git a/YASK/yask.sql b/YASK/yask.sql index 63562f7c5..7e1c00b51 100644 --- a/YASK/yask.sql +++ b/YASK/yask.sql @@ -834,21 +834,21 @@ AS AS v_ruimte_key NUMBER; v_afdeling_key NUMBER; + v_groep_key NUMBER; + v_perslid_email PRS_PERSLID.PRS_PERSLID_EMAIL%TYPE; BEGIN - v_ruimte_key := 7056; -- Receptie op de begane grond - SELECT MAX (a.prs_afdeling_key) + SELECT MAX (kl.prs_link_key) INTO v_afdeling_key - FROM prs_afdeling a, prs_bedrijf b, prs_perslid p - WHERE a.prs_bedrijf_key = b.prs_bedrijf_key - AND b.prs_bedrijf_naam = 'W1' - AND a.prs_afdeling_verwijder IS NULL - AND a.prs_afdeling_omschrijving = - SUBSTR (prs_perslid_email, - INSTR (prs_perslid_email, '@') + 1, + FROM prs_perslid p, prs_kenmerklink kl + WHERE kl.prs_kenmerk_key = 1041 -- Domein + AND kl.prs_kenmerklink_verwijder IS NULL + AND LOWER(kl.prs_kenmerklink_waarde) = + SUBSTR (LOWER(p.prs_perslid_email), + INSTR (LOWER(p.prs_perslid_email), '@') + 1, 100) - AND prs_perslid_key = p_perslid_key; + AND p.prs_perslid_key = p_perslid_key; -- Als we de afdeling niet kennen dan blijft de persoon onder onbekend. IF v_afdeling_key IS NOT NULL @@ -858,7 +858,50 @@ AS WHERE prs_perslid_key = p_perslid_key; END IF; + -- zoek de juiste werkplek voor deze persoon. Bij de afdeling staat in een kenmerk ook de ruimteaanduiding. + SELECT MAX (rg.alg_ruimte_key) + INTO v_ruimte_key + FROM prs_perslid p, prs_kenmerklink kld, prs_kenmerklink klr, alg_v_ruimte_gegevens rg + WHERE kld.prs_kenmerk_key = 1041 -- Domein + AND kld.prs_kenmerklink_verwijder IS NULL + AND LOWER(kld.prs_kenmerklink_waarde) = + SUBSTR (LOWER(p.prs_perslid_email), + INSTR (LOWER(p.prs_perslid_email), '@') + 1, + 100) + AND klr.prs_kenmerk_key = 1060 -- Locatiecode-Ruimtenummer + AND klr.prs_kenmerklink_verwijder IS NULL + AND LOWER(klr.prs_kenmerklink_waarde) = + LOWER(rg.alg_locatie_code) || '-' || LOWER(rg.alg_ruimte_nr) + AND p.prs_perslid_key = p_perslid_key; + prs.movetoruimte (p_perslid_key, v_ruimte_key, 'A'); + + -- De medewerkers van Renewi gaan we onder een andere autorisatiegroep plaatsen + SELECT LOWER(prs_perslid_email) + INTO v_perslid_email + FROM prs_perslid + WHERE prs_perslid_key = p_perslid_key; + + SELECT MIN(fac_groep_key) + INTO v_groep_key + FROM fac_groep g + WHERE LOWER(fac_groep_externid) = + SUBSTR (v_perslid_email, + INSTR (v_perslid_email, '@'), + 100) + AND NOT EXISTS (SELECT 1 + FROM fac_gebruikersgroep gg + WHERE gg.prs_perslid_key = p_perslid_key + AND gg.fac_groep_key = g.fac_groep_key); + + IF v_groep_key IS NOT NULL + THEN + DELETE fac_gebruikersgroep WHERE prs_perslid_key = p_perslid_key; + + INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) + VALUES (v_groep_key, p_perslid_key); + END IF; + END;