IMPU#87499 -- Herziening medewerkerskoppeling AFAS voor IMPU ivm integratie GMK - domeinmigratie naar @gmk.nl

svn path=/Customer/trunk/; revision=68582
This commit is contained in:
Jos Migo
2025-03-29 13:32:44 +00:00
parent 786a875087
commit 9458a05758

View File

@@ -136,7 +136,7 @@ AS
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key IN (SELECT prs_link_key FROM prs_kenmerklink WHERE prs_kenmerk_key = 1040 AND prs_kenmerklink_niveau = 'B' AND prs_kenmerklink_verwijder IS NULL)
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND (INSTR(UPPER(sp.prs_srtperslid_omschrijving),'LOCATIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'REGIOMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'TEAMLEIDER') > 0) -- Titels uit AFAS die meelopen in Locatiemanager-verhaal zijn: Locatiemanager + Locatiemanager IKC + Regiomanager + Teamleider
AND (INSTR(UPPER(sp.prs_srtperslid_omschrijving),'DIVISIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'LOCATIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'REGIOMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'TEAMLEIDER') > 0) -- Titels uit AFAS die meelopen in Locatiemanager-verhaal zijn: Locatiemanager + Locatiemanager IKC + Regiomanager + Teamleider
AND p.prs_perslid_verwijder IS NULL
UNION
SELECT
@@ -191,7 +191,7 @@ AS
AND l.alg_locatie_verwijder IS NULL
AND (TRUNC(l.alg_locatie_vervaldatum) > TRUNC(sysdate) OR l.alg_locatie_vervaldatum IS NULL )
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND (INSTR(UPPER(sp.prs_srtperslid_omschrijving),'LOCATIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'REGIOMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'TEAMLEIDER') > 0) -- Titels uit AFAS die meelopen in Locatiemanager-verhaal zijn: Locatiemanager + Locatiemanager IKC + Regiomanager + Teamleider
AND (INSTR(UPPER(sp.prs_srtperslid_omschrijving),'DIVISIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'LOCATIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'REGIOMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'TEAMLEIDER') > 0) -- Titels uit AFAS die meelopen in Locatiemanager-verhaal zijn: Locatiemanager + Locatiemanager IKC + Regiomanager + Teamleider
GROUP BY p.prs_perslid_key, l.alg_locatie_key,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ') - ' || sp.prs_srtperslid_omschrijving,
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving,
@@ -280,13 +280,12 @@ AS
CURSOR c_tel
IS
SELECT p.prs_perslid_email,
pp.prs_perslid_telefoonnr,
pp.prs_perslid_mobiel
SELECT p.fac_imp_file_index,
p.prs_perslid_email,
pp.prs_perslid_telefoonnr
FROM fac_imp_perslid p, prs_perslid pp
WHERE p.prs_perslid_email = pp.prs_perslid_email
AND ( pp.prs_perslid_telefoonnr IS NOT NULL
OR pp.prs_perslid_mobiel IS NOT NULL);
AND pp.prs_perslid_telefoonnr IS NOT NULL ;
CURSOR c_loc
IS
@@ -311,6 +310,7 @@ BEGIN
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
-- Voor IMPULS geldt:
---
/* WAS:
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;1;2;3;5;'
@@ -319,10 +319,24 @@ BEGIN
|| '0;13;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'Kostenplaats;Achternaam;Voorvoegsel;Voorletters;Roepnaam;E-Mail_werk;Omschrijving_Functie;Medewerker;Organisatorische_eenheid_omschrijving;Kostenplaats_2;Datum_in_dienst;Datum_uit_dienst;Soort_medewerker');
*/
-- AFASONLINE: "Kostenplaats";"Achternaam";"Voorvoegsel";"Voorletters";"Roepnaam";"E-Mail_werk";"Omschrijving_Functie";"Medewerker";"Organisatorische_eenheid_omschrijving";"Kostenplaats_2";"Datum_in_dienst";"Datum_uit_dienst";Soort_medewerker"
-- 1 (7) 2 (8) 3 (9) 4 (11) 5 (10) 6 (18) 7 (21) 8(20) 9 (27) 10 (28) 11 (29) 12 (30) 13 (32)
-- DEF: Kostenplaats;Achternaam;Voorvoegsel;Voorletters;Roepnaam;Mail werk;Functie;Medewerker;Organisatorische eenheid;Kostenplaats_oms;In dienst;Uit dienst;Soort medewerker
-- WORDT 2025-MRT
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;1;2;3;5;'
|| '4;0;0;0;0;0;20;6;0;8;'
|| '7;0;0;0;0;0;9;10;11;12;'
|| '0;13;14;15;16;17;18;19;20;0;'
|| '0;0;0;0;0;0',
'Kostenplaats;Achternaam;Voorvoegsel;Voorletters;Roepnaam;E-Mail_werk;Omschrijving_Functie;Medewerker;Organisatorische_eenheid_omschrijving;Kostenplaats_2;Datum_in_dienst;Datum_uit_dienst;Soort_medewerker;Soort_medewerker__Code_obv_medewerkertaal_;Organisatorische_eenheid;Leidinggevende_pers_nr;Leidinggevende_Naam;Werkgever;Naam_werkgever;Mobiel_werk');
-- AFASONLINE: "Kostenplaats";"Achternaam";"Voorvoegsel";"Voorletters";"Roepnaam";"E-Mail_werk";"Omschrijving_Functie";"Medewerker";"Organisatorische_eenheid_omschrijving";"Kostenplaats_2";"Datum_in_dienst";"Datum_uit_dienst";"Soort_medewerker";"Soort_medewerker__Code_obv_medewerkertaal_";"Organisatorische_eenheid";"Leidinggevende_pers_nr";"Leidinggevende_Naam";"Werkgever";"Naam_werkgever";"Mobiel_werk"
-- 1 (7) 2 (8) 3 (9) 4 (11) 5 (10) 6 (18) 7 (21) 8(20) 9 (27) 10 (28) 11 (29) 12 (30) 13 (32) 14 (33) 15 (34) 16 (35) 17 (36) 18 (37) 19 (38) 20 (39)
-- DEF: Kostenplaats;Achternaam;Voorvoegsel;Voorletters;Roepnaam;Mail werk;Functie;Medewerker;Organisatorische eenheid;Kostenplaats_oms;In dienst;Uit dienst;Soort medewerker;Soort_medewerker__Code_obv_medewerkertaal_;Organisatorische_eenheid;Leidinggevende_pers_nr;Leidinggevende_Naam;Werkgever;Naam_werkgever;Mobiel_werk
v_errorhint := 'Login afleiden van emailadres';
@@ -333,13 +347,7 @@ BEGIN
(SUBSTR (prs_perslid_email,
0,
INSTR (prs_perslid_email, '@') - 1)))
WHERE UPPER (prs_perslid_email) LIKE '%IMPULS.NL'
AND prs_perslid_email IS NOT NULL
AND LENGTH (
(SUBSTR (prs_perslid_email,
0,
INSTR (prs_perslid_email, '@') - 1))) <=
30;
WHERE prs_perslid_email IS NOT NULL ;
v_errorhint := 'Uitfilteren records'; -- in afasonline-bestand zitten aantal zaken die niet mee hoeven naar Facilitor
@@ -350,7 +358,12 @@ BEGIN
WHERE UPPER (prs_srtperslid_omschrijving) IN ('PROFIT');
DELETE fac_imp_perslid
WHERE UPPER (prs_perslid_email) NOT LIKE '%@IMPULS.NL';
WHERE (
UPPER (prs_perslid_email) NOT LIKE '%@IMPULS.NL'
AND
UPPER (prs_perslid_email) NOT LIKE '%@GMK.NL'
)
;
v_errorhint := 'Afdeling bepalen en vullen';
@@ -427,8 +440,10 @@ BEGIN
FOR rec IN c_tel
LOOP
-- Telefoonnummers voert men zelf in Facilitor handmatig in en zitten dus niet in importbestand.
-- We vullen daarom deze aan in de fac_imp_perslid
-- 2025-MAART
--- Mobiele telefoonnummers komen nu uit AFAS
--- De vaste telefoonnummers kan/mag men in Facilitor-kaart handmatig opnemen. Deze vullen we nu met import dus aan in fac_imp_perslid-tabel zodat ze niet leeg gemaakt worden met update afasonlinee
v_errorhint :=
'Telefoonnummer toevoegen aan import-tabel'
|| '-'
@@ -438,15 +453,9 @@ BEGIN
THEN
UPDATE fac_imp_perslid p
SET p.prs_perslid_telefoonnr = rec.prs_perslid_telefoonnr
WHERE p.prs_perslid_email = rec.prs_perslid_email;
WHERE p.fac_imp_file_index = rec.fac_imp_file_index ;
END IF;
IF rec.prs_perslid_mobiel IS NOT NULL
THEN
UPDATE fac_imp_perslid p
SET p.prs_perslid_mobiel = rec.prs_perslid_mobiel
WHERE p.prs_perslid_email = rec.prs_perslid_email;
END IF;
END LOOP;
v_errorhint := 'Locatie bepalen en vullen';
@@ -588,15 +597,20 @@ IS
AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND i.prs_perslid_nr IS NULL -- in Facilitor, met onderstaande voorwaarden, is er dus geen mapping op personeelsnummer en die personen gaan we verwijderen/inactief maken
AND a.prs_bedrijf_key = 21 -- Impuls Kinderopvang
AND a.prs_bedrijf_key IN (21, 3503, 6662) -- Impuls/GMK Kinderopvang, Akros, Combiwell
AND sp.prs_srtperslid_upper NOT IN 'TEAMACCOUNT'
AND p.prs_perslid_nr IS NOT NULL
AND UPPER (p.prs_perslid_email) LIKE '%IMPULS.NL'
AND (
UPPER (p.prs_perslid_email) LIKE '%IMPULS.NL'
OR
UPPER (p.prs_perslid_email) LIKE '%GMK.NL'
)
ORDER BY 1 ;
CURSOR c_flex -- Voor updaten van de algemene flex-kenmerkvelden op actuele medewerkers
IS
SELECT p.prs_perslid_key, i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, i.prs_perslid_nr
SELECT p.prs_perslid_key, i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, i.prs_perslid_nr,
i.prs_kenmerk7, i.prs_kenmerk8, i.prs_kenmerk9, i.prs_kenmerk10, i.prs_kenmerk11, i.prs_kenmerk12, i.prs_kenmerk13
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
WHERE p.prs_perslid_key = i.prs_perslid_key
ORDER BY 1;
@@ -699,7 +713,16 @@ BEGIN
PRS.upsertkenmerk (1006, rec.prs_perslid_key, rec.prs_kenmerk6);
v_errorhint:='Fout bijwerken kenmerkveld6 - Medewerker-nummer';
PRS.upsertkenmerk (1060, rec.prs_perslid_key, rec.prs_perslid_nr);
PRS.upsertkenmerk (1060, rec.prs_perslid_key, rec.prs_perslid_nr);
-- NIEUWE VELDEN 2025-MRT
PRS.upsertkenmerk (1080, rec.prs_perslid_key, rec.prs_kenmerk7); -- Soort_medewerker__Code_obv_medewerkertaal_
PRS.upsertkenmerk (1081, rec.prs_perslid_key, rec.prs_kenmerk8); -- Organisatorische_eenheid
PRS.upsertkenmerk (1082, rec.prs_perslid_key, rec.prs_kenmerk9); -- Leidinggevende_pers_nr
PRS.upsertkenmerk (1083, rec.prs_perslid_key, rec.prs_kenmerk10); -- Leidinggevende_Naam
PRS.upsertkenmerk (1084, rec.prs_perslid_key, rec.prs_kenmerk11); -- Werkgever
PRS.upsertkenmerk (1085, rec.prs_perslid_key, rec.prs_kenmerk12); -- Naam_werkgever
PRS.upsertkenmerk (1086, rec.prs_perslid_key, rec.prs_kenmerk13); -- Mobiel_werk
END;
END LOOP;
@@ -1063,6 +1086,126 @@ AS
AND m.mld_alg_onroerendgoed_keys = onr.alg_onroerendgoed_keys (+)
AND mu.intern = 1;
-- Rapportage view voor Behandelteam bloktitels
CREATE OR REPLACE VIEW impu_v_mld_behandelteams_blok
(
MLD_MELDING_KEY,
BLOK,
FCLT_3D_DISCIPLINE_KEY,
BEHANDELTEAM,
BEHANDELAAR,
STATUS,
AFGEMELD_DATUM,
-- HOOFDMELDING-GEGEVENS
MLD_STDMELDING_KEY,
MLD_STDMELDING_OMSCHRIJVING,
FCLT_3D_LOCATIE_KEY,
HM_LOCATIE,
HM_BEHANDELAAR,
HM_STATUS,
HM_STREEFDATUM_GEREED,
HM_AFHANDELINGSTEKST,
-- KENMERKVELDEN IN BLOK - HIERONDER OPNEMEN
ACTIEDATUM,
ACTIEGEVRAAGD,
VRIJETEKST
-- KENMERKVELDEN IN HOOFDMELDING- VIA UDR GUI TOEVOEGEN
)
AS
SELECT m.mld_melding_key,
COALESCE (kmb.mld_kenmerk_code, 'BLOK_ONBEKEND')
blok,
mb.ins_discipline_key,
d.ins_discipline_omschrijving
behandelteam,
p.prs_perslid_naam
behandelaar,
CASE
WHEN mb.mld_kenmerkblokmelding_afmelddatum IS NULL THEN 'lopend'
ELSE 'afgemeld'
END
status,
mb.mld_kenmerkblokmelding_afmelddatum
afgemeld_datum,
-- gegevens hoofdmelding
m.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
m.mld_alg_locatie_key,
CASE WHEN m.mld_alg_locatie_key IS NOT NULL THEN (SELECT alg_locatie_omschrijving FROM alg_locatie WHERE alg_locatie_key = m.mld_alg_locatie_key)
ELSE 'geen locatie op mld'
END
hm_locatie,
CASE WHEN m.mld_melding_behandelaar_key IS NOT NULL THEN (SELECT prs_perslid_voornaam || ' ' || prs_perslid_naam FROM prs_perslid WHERE prs_perslid_key = m.mld_melding_behandelaar_key)
ELSE 'geen hoofd-behandelaar'
END
hm_behandelaar,
(SELECT mld_statuses_omschrijving FROM mld_statuses WHERE mld_statuses_key = m.mld_melding_status)
hm_status,
m.mld_melding_einddatum
hm_streefdatum_gereed,
m.mld_melding_opmerking
hm_afhandelingstekst,
-- kenmerkvelden in blok van behandelteam - hieronder opnemen
fac.safe_to_date(
FLX.getflex (
'MLD',
COALESCE (
(SELECT mld_kenmerk_key
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 164
AND mld_kenmerk_code =
COALESCE (kmb.mld_kenmerk_code,
'BLOK_ONBEKEND')
|| '_ACTIEDATUM'
AND mld_kenmerk_verwijder IS NULL
AND mld_stdmelding_key = m.mld_stdmelding_key),
-1),
m.mld_melding_key)
, 'dd-mm-yyyy')
actiedatum,
FLX.getflex (
'MLD',
COALESCE (
(SELECT mld_kenmerk_key
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 301
AND mld_kenmerk_code =
COALESCE (kmb.mld_kenmerk_code,
'BLOK_ONBEKEND')
|| '_ACTIEGEVRAAGD'
AND mld_kenmerk_verwijder IS NULL
AND mld_stdmelding_key = m.mld_stdmelding_key),
-1),
m.mld_melding_key)
actiegevraagd,
FLX.getflex (
'MLD',
COALESCE (
(SELECT mld_kenmerk_key
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 165
AND mld_kenmerk_code =
COALESCE (kmb.mld_kenmerk_code,
'BLOK_ONBEKEND')
|| '_VRIJETEKST'
AND mld_kenmerk_verwijder IS NULL
AND mld_stdmelding_key = m.mld_stdmelding_key),
-1),
m.mld_melding_key)
vrijetekst
FROM mld_melding m,
mld_stdmelding sm,
mld_kenmerkblokmelding mb,
mld_kenmerk kmb,
mld_discipline d,
prs_perslid p
WHERE m.mld_melding_key = mb.mld_melding_key
AND mb.ins_discipline_key = d.ins_discipline_key
AND mb.mld_kenmerk_key = kmb.mld_kenmerk_key
AND mb.prs_perslid_key = p.prs_perslid_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key;
-------------------------------
--- NOTI-JOBS ---------------
-------------------------------