IMPU#87499 -- Herziening medewerkerskoppeling AFAS voor IMPU ivm integratie GMK - TWEEDE LOC-MANAGER + MANDAAT

svn path=/Customer/trunk/; revision=69604
This commit is contained in:
Jos Migo
2025-06-30 18:25:25 +00:00
parent 39564deeac
commit 05d66009be

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) -- locatiemanagers en Regiomanagers
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) )
@@ -793,10 +793,7 @@ IS
-- 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.
-- NOG DOEN IN OVERLEG MET IRENE en ANNEKE!!!
---- 2. Mandaten inregelen....
-- Daarnaast in 2025-juni toegevoegd dat werkplekken van locatiemanager-2/3 + mandaten worden ingeregeld
CURSOR c_del
IS
@@ -837,18 +834,18 @@ IS
CURSOR c_loc_wp -- Voor updaten van locatieleiders (werkplek-koppelingen)
IS
SELECT v.prs_perslid_key, v.alg_locatie_key, v.prs_werkplek_key, v.actie
SELECT v.prs_perslid_key, v.persoon, v.alg_locatie_key, v.locatienaam, v.prs_werkplek_key, v.actie
FROM
(
SELECT man.prs_perslid_key, man.alg_locatie_key, NULL prs_werkplek_key, 'toevoegen' actie
SELECT man.prs_perslid_key, man.locatiemanager persoon, man.alg_locatie_key, man.locatie locatienaam, NULL prs_werkplek_key, 'toevoegen' actie
FROM impu_v_locatiemanagers man
WHERE NOT EXISTS
(SELECT *
FROM impu_v_locatiemanagers_wp wp
WHERE wp.alg_locatie_key = man.alg_locatie_key
AND wp.prs_perslid_key = man.prs_perslid_key)
UNION
SELECT wp.prs_perslid_key, wp.alg_locatie_key, wp.prs_werkplek_key, 'verwijderen' actie
UNION
SELECT wp.prs_perslid_key, wp.naam persoon, wp.alg_locatie_key, wp.locatie_wp locatienaam, wp.prs_werkplek_key, 'verwijderen' actie
FROM impu_v_locatiemanagers_wp wp
WHERE NOT EXISTS
(SELECT *
@@ -856,13 +853,51 @@ IS
WHERE man.alg_locatie_key = wp.alg_locatie_key
AND man.prs_perslid_key = wp.prs_perslid_key)
UNION
SELECT wp.prs_perslid_key, wp.alg_locatie_key, wp.prs_werkplek_key, 'ok' actie
SELECT wp.prs_perslid_key, man.locatiemanager persoon, wp.alg_locatie_key, man.locatie locatienaam, wp.prs_werkplek_key, 'ok' actie
FROM impu_v_locatiemanagers_wp wp, impu_v_locatiemanagers man
WHERE man.alg_locatie_key = wp.alg_locatie_key
AND man.prs_perslid_key = wp.prs_perslid_key
) v
ORDER BY v.prs_perslid_key, v.alg_locatie_key
;
ORDER BY v.prs_perslid_key, v.alg_locatie_key ;
CURSOR c_loc_kp -- Voor updaten van locatiemanagers (mandaten op kostenplaatsen)
IS
SELECT w.prs_perslid_key, w.locatiemanager, w.alg_locatie_key, w.alg_locatie_omschrijving, w.prs_kostenplaats_key, w.prs_kostenplaats_omschrijving
FROM ( SELECT v_prs.prs_perslid_key,
v_prs.locatiemanager,
v_prs.alg_locatie_key,
v_kp.alg_locatie_omschrijving,
v_kp.prs_kostenplaats_key,
v_kp.prs_kostenplaats_nr || ' - ' || v_kp.prs_kostenplaats_omschrijving
prs_kostenplaats_omschrijving
FROM impu_v_locatiemanagers v_prs, impu_v_locaties_kp v_kp
WHERE v_prs.alg_locatie_key = v_kp.alg_locatie_key
GROUP BY v_prs.prs_perslid_key,
v_prs.locatiemanager,
v_prs.alg_locatie_key,
v_kp.alg_locatie_omschrijving,
v_kp.prs_kostenplaats_key,
v_kp.prs_kostenplaats_nr || ' - ' || v_kp.prs_kostenplaats_omschrijving
) w
ORDER BY 1, 2, 3;
CURSOR c_loc_kp_del -- Voor deleten van mandaten die niet meer van toepassing zijn
IS
SELECT pk.prs_perslid_key, pk.prs_perslidkostenplaats_key
FROM prs_perslidkostenplaats pk
WHERE
NOT EXISTS
( SELECT v_prs.prs_perslid_key,
v_kp.prs_kostenplaats_key
FROM impu_v_locatiemanagers v_prs,
impu_v_locaties_kp v_kp
WHERE v_prs.alg_locatie_key = v_kp.alg_locatie_key
AND v_prs.prs_perslid_key = pk.prs_perslid_key
AND v_kp.prs_kostenplaats_key = pk.prs_kostenplaats_key
GROUP BY v_prs.prs_perslid_key,
v_kp.prs_kostenplaats_key)
AND pk.prs_perslid_key IN (SELECT d.prs_perslid_key FROM impu_v_personenlijst_loc d)
ORDER BY 1, 2 ;
CURSOR c_verantw
IS
@@ -903,9 +938,11 @@ IS
v_alg_ruimte_key NUMBER;
v_prs_werkplek_key NUMBER;
v_prs_perslid_key_verantw NUMBER(10);
v_teller_mandaat NUMBER(10);
BEGIN
v_errormsg := 'Update afasonline';
v_errorhint := 'Niet genoeg personen in bestand, import afgebroken';
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
@@ -1042,6 +1079,59 @@ BEGIN
END;
END LOOP;
FOR rec IN c_loc_kp
LOOP
BEGIN
-- kostenplaatsen en mandaat
v_errorhint :=
'bijwerken mandaten locatiemanager - perslid_key:'
|| TO_CHAR (rec.prs_perslid_key);
-- Alle mandaten goed inregelen
SELECT COUNT(*)
INTO v_teller_mandaat
FROM prs_perslidkostenplaats
WHERE prs_perslid_key = rec.prs_perslid_key
AND prs_kostenplaats_key = rec.prs_kostenplaats_key ;
IF v_teller_mandaat = 0
THEN
v_errorhint :=
'bijwerken kostenplaats-mandaat - kostenplaat_key'
|| TO_CHAR (rec.prs_kostenplaats_key);
INSERT INTO prs_perslidkostenplaats (
prs_perslidkostenplaats_boeken,
prs_perslidkostenplaats_inzage,
prs_perslid_key,
prs_kostenplaats_key)
VALUES (1,
1,
rec.prs_perslid_key,
rec.prs_kostenplaats_key);
END IF;
END;
END LOOP;
FOR rec IN c_loc_kp_del
LOOP
BEGIN
-- opschonen mandaten die niet meer geldig zijn
v_errorhint :=
'verwijderen mandaten locatiemanager - perslid_key:'
|| TO_CHAR (rec.prs_perslid_key);
DELETE FROM prs_perslidkostenplaats
WHERE prs_perslidkostenplaats_key =
rec.prs_perslidkostenplaats_key;
END;
END LOOP;
-- En de verantwoordelijk manager updaten in de personenkaart indien nodig
FOR rec IN c_verantw
LOOP