From 27546ae1f5cf48c6e9406569d210b44d2f009ebb Mon Sep 17 00:00:00 2001 From: Jos Migo Date: Wed, 3 Dec 2025 15:26:49 +0000 Subject: [PATCH] AAIT#90164 Voor BFNL - Locatiemanagers automatisch mandaat en wp's krijgen - Laatste finetunen svn path=/Customer/trunk/; revision=71138 --- AA/BFNL/bfnl.sql | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/AA/BFNL/bfnl.sql b/AA/BFNL/bfnl.sql index 725391c99..bbb1d20fb 100644 --- a/AA/BFNL/bfnl.sql +++ b/AA/BFNL/bfnl.sql @@ -549,11 +549,12 @@ AS AND pk.prs_perslid_key IN (SELECT d.prs_perslid_key FROM bfnl_v_personenlijst_loc d WHERE p.prs_perslid_verwijder IS NULL AND INSTR(d.naam, 'Regiomanager')=0) -- kijken alleen naar locatieverantwoordelijke ORDER BY 1, 2 ; - CURSOR c_loc_recht -- -- Voor onderhouden van de locatiemanagers in de autorisatiegroepen + CURSOR c_loc_recht -- -- Voor onderhouden van de locatiemanagers in de eigen autorisatiegroep en de _default-groep IS SELECT p.prs_perslid_key, p.naam, (SELECT count(*) FROM prs_perslidwerkplek wp WHERE wp.prs_perslid_key = p.prs_perslid_key) aantal_wp, - (SELECT count(*) FROM fac_gebruikersgroep gg WHERE gg.prs_perslid_key = p.prs_perslid_key AND gg.fac_groep_key = 461) groep + (SELECT count(*) FROM fac_gebruikersgroep gg WHERE gg.prs_perslid_key = p.prs_perslid_key AND gg.fac_groep_key = 461) groep, -- de locatiemanagers-autorisatiegroep + (SELECT count(*) FROM fac_gebruikersgroep gg WHERE gg.prs_perslid_key = p.prs_perslid_key AND gg.fac_groep_key = 1) groep_default -- de default_groep FROM bfnl_v_personenlijst_loc p WHERE p.prs_perslid_verwijder IS NULL AND INSTR(p.naam, 'Regiomanager')=0 -- uitsluiten regiomanagers ORDER BY 1 ; @@ -572,8 +573,6 @@ AS v_prs_perslidkostenplaats_key NUMBER (10); v_teller_mandaat NUMBER (10); v_upsert_sync NUMBER(1); - c_fac_groep_key NUMBER(10) := 461 ; -- standaard autorisatiegroep voor Locatiemanagers BFNL - BEGIN v_count := 0; @@ -719,33 +718,56 @@ BEGIN FOR rec IN c_loc_recht LOOP BEGIN - -- Alle managers zonder WP's uit de autorisatiegroep Locatiemanagers halen (key 24) + -- Alle managers zonder WP's uit de autorisatiegroep Locatiemanagers halen (key 461) v_aanduiding := 'bijwerken locatiemanager - perslid_key:' || TO_CHAR (rec.prs_perslid_key); - v_errorhint := 'verwijderen locatiemanager uit autorisatiegroep'; - + v_errorhint := 'verwijderen locatiemanager uit eigen autorisatiegroep'; + IF rec.aantal_wp = 0 AND rec.groep = 1 THEN DELETE FROM fac_gebruikersgroep - WHERE fac_groep_key = c_fac_groep_key AND prs_perslid_key = rec.prs_perslid_key ; + WHERE fac_groep_key = 461 AND prs_perslid_key = rec.prs_perslid_key ; END IF; - v_errorhint := 'toevoegen locatiemanagers aan autorisatiegroep'; + v_errorhint := 'toevoegen locatiemanagers aan eigen autorisatiegroep'; IF rec.aantal_wp > 0 AND rec.groep = 0 THEN INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) - VALUES (c_fac_groep_key, + VALUES (461, rec.prs_perslid_key) ; END IF; + + v_errorhint := 'verwijderen locatiemanager met werkplekkoppelingen uit default autorisatiegroep'; + + IF rec.aantal_wp > 0 AND rec.groep_default = 1 + THEN + + DELETE + FROM fac_gebruikersgroep + WHERE fac_groep_key = 1 AND prs_perslid_key = rec.prs_perslid_key ; + + END IF; + + v_errorhint := 'toevoegen locatiemanager zonder werkplekkoppelingen aan de default autorisatiegroep'; + + IF rec.aantal_wp = 0 AND rec.groep_default = 0 + THEN + + INSERT INTO fac_gebruikersgroep (fac_groep_key, + prs_perslid_key) + VALUES (1, + rec.prs_perslid_key) ; + + END IF; END; END LOOP;