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:
114
IMPU/impu.sql
114
IMPU/impu.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user