IMPU#89882 -- Inpassen INSTEMMING VOORAF in de meldingsstructuur van Impuls - INPASSEN OP TEAMACCOUNTS VIA AFAS_KOPPELING

svn path=/Customer/trunk/; revision=70136
This commit is contained in:
Jos Migo
2025-08-28 10:06:43 +00:00
parent d227e3a7ff
commit 5e591f51d9

View File

@@ -184,7 +184,7 @@ AS
p.prs_perslid_verwijder
FROM prs_perslid p, prs_srtperslid sp, alg_onrgoedkenmerk ok, alg_locatie l
WHERE fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = p.prs_perslid_key
AND ok.alg_kenmerk_key IN (1016,1018, 1180, 1200) -- locatiemanagers en Regiomanagers en locatiemanager-2 en -3
AND ok.alg_kenmerk_key IN (1016, 1018, 1180, 1200) -- locatiemanagers en Regiomanagers en locatiemanager-2 en -3
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoed_niveau = 'L' AND ok.alg_onrgoed_key = l.alg_locatie_key
AND (l.alg_locatie_verwijder IS NULL OR l.alg_locatie_vervaldatum > TRUNC(SYSDATE) )
@@ -788,12 +788,14 @@ END impu_import_afasonline;
CREATE OR REPLACE PROCEDURE impu_update_afasonline (p_import_key IN NUMBER)
IS
-- Alle personen verwijderen die niet meer in het import bestand voorkomen.
-- Teamaccounts (functie 'Teamaccount' laten we ongemoeid)
-- Personen in de juiste autorisatiegroep zetten.
-- Match bij IMPULS KINDEROPVANG kan via Email of Personeelsnummer.
---- Zie ticket IMPU#84705 - ivm overgang GMK omzetting van email naar personeelsnummer
-- Geen acties tenzij het aantal records in de importtabel meer dan 100 medewerkers betreft.
-- Daarnaast in 2025-juni toegevoegd dat werkplekken van locatiemanager-2/3 + mandaten worden ingeregeld
-- De verantwoordelijke (leidinggevende) koppelen in personenkaart
-- Bij de Teamaccounts ook deze verantwoordelijke (leidinggevende) vullen met de eerste locatiemanager uit de locatiekaart
CURSOR c_del
IS
@@ -925,7 +927,43 @@ IS
prs_perslid_verantw_nr_afas
FROM prs_perslid p) p
WHERE p.prs_perslid_key = i.prs_perslid_key
ORDER BY 1 ;
ORDER BY 1 ;
-- Voor teamaccounts de verantwoordelijke vullen met 1e-locatiemanager
CURSOR c_verantw_t
IS
SELECT p.prs_perslid_key, -- - teamaccount perslid_key
p.prs_perslid_naam,
p.prs_perslid_email,
p.prs_perslid_key_verantw, -- huidige verantwoordelijke
l.alg_locatie_key,
-- eerste locatiemanager van die locatie
(SELECT p.prs_perslid_key -- p.* -- min(p.alg_kenmerk_key)
FROM ( SELECT ROWNUM volgnr, v.*, ok.alg_kenmerk_key
FROM impu_v_locatiemanagers v, alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_niveau = 'L'
AND ok.alg_onrgoed_key = v.alg_locatie_key
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = v.prs_perslid_key
AND v.prs_perslid_verwijder IS NULL
AND INSTR (UPPER (locatiemanager), 'REGIOMANAGER') = 0
AND v.alg_locatie_key = l.alg_locatie_key
ORDER BY ok.alg_kenmerk_key) p
WHERE p.volgnr = 1) locatiemanager_key
FROM prs_perslid p,
prs_srtperslid sp,
prs_perslidwerkplek wp,
prs_werkplek w,
alg_ruimte r,
alg_v_onrgoed_boom onr,
alg_locatie l
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
AND sp.prs_srtperslid_upper = 'TEAMACCOUNT'
AND p.prs_perslid_key = wp.prs_perslid_key
AND wp.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_ruimte_key = onr.alg_ruimte_key
AND onr.alg_locatie_key = l.alg_locatie_key
ORDER BY wp.prs_perslid_key;
v_count NUMBER;
@@ -1185,6 +1223,41 @@ BEGIN
END;
END LOOP;
-- En de verantwoordelijk manager updaten in de personenkaart van de teamaccounts
FOR rec IN c_verantw_t
LOOP
BEGIN
v_errorhint:='Fout bijwerken verantwoordelijke in teamaccount';
-- als de huidge gekoppelde verantwoordelijke in de teamaccount-personenkaart anders is dan de waarde/locatiemanager uit de gekoppelde locatiekaart dan zaken updaten in teamaccount
IF COALESCE(rec.prs_perslid_key_verantw, '<leeg>') <> COALESCE(rec.locatiemanager_key, '<leeg>')
THEN
-- geen gevonden locatiemanager in locatiekaart dan verantwoordelijke in teamaccount verwijderen
IF rec.locatiemanager_key IS NULL
THEN
UPDATE prs_perslid
SET prs_perslid_key_verantw = ''
WHERE prs_perslid_key = rec.prs_perslid_key ;
END IF;
-- wel gevonden locatiemanager dan bijbehorende verantwoordelijke_key in teamaccount vullen
IF rec.locatiemanager_key IS NOT NULL
THEN
UPDATE prs_perslid
SET prs_perslid_key_verantw = rec.locatiemanager_key
WHERE prs_perslid_key = rec.prs_perslid_key ;
END IF;
END IF;
END;
END LOOP;
ELSE
fac.imp_writelog (p_import_key,