AAIT#90164 Voor BFNL - Locatiemanagers automatisch mandaat en wp's krijgen - Laatste finetunen

svn path=/Customer/trunk/; revision=71138
This commit is contained in:
Jos Migo
2025-12-03 15:26:49 +00:00
parent ea3bc0f434
commit 27546ae1f5

View File

@@ -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;