HMOD#88835 -- AFAS-koppeling versie 1 + Zaken t.a.v Contractbeheer + Facilitorrollen-verhaal
svn path=/Customer/trunk/; revision=69853
This commit is contained in:
838
HMOD/hmod.sql
838
HMOD/hmod.sql
@@ -22,6 +22,784 @@ SET DEFINE OFF
|
|||||||
|
|
||||||
------ payload begin ------
|
------ payload begin ------
|
||||||
|
|
||||||
|
--------------------------------------------------
|
||||||
|
--- HIERONDER NIEUWE AFAS IMPORT (2025-JULI) ----
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
CREATE OR REPLACE PROCEDURE hmod_import_afasonline_h (p_import_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
oracle_err_num NUMBER;
|
||||||
|
oracle_err_mes VARCHAR2 (200);
|
||||||
|
v_errormsg VARCHAR2 (400);
|
||||||
|
v_errorhint VARCHAR2 (400);
|
||||||
|
v_aantal_in_fclt NUMBER;
|
||||||
|
v_seq_of_columns VARCHAR (255);
|
||||||
|
v_seq_of_header VARCHAR (1000);
|
||||||
|
|
||||||
|
-- overige variabelen
|
||||||
|
v_prs_afdeling_key NUMBER (10);
|
||||||
|
c_prs_bedrijf_key_hmod NUMBER (10) := 41;
|
||||||
|
v_prs_perslid_rol_key NUMBER (10);
|
||||||
|
|
||||||
|
CURSOR c_afd
|
||||||
|
IS
|
||||||
|
SELECT fac_imp_file_index,
|
||||||
|
prs_afdeling_naam, -- Afdelingscode
|
||||||
|
prs_kenmerk5 -- Afdeling omschrijving
|
||||||
|
FROM fac_imp_perslid
|
||||||
|
WHERE fac_import_key = p_import_key
|
||||||
|
ORDER BY fac_imp_file_index;
|
||||||
|
|
||||||
|
CURSOR c_afd_log
|
||||||
|
IS
|
||||||
|
SELECT prs_kenmerk20 -- Nieuwe afdeling aanmaken - vullen we in dit kenmerk20
|
||||||
|
FROM fac_imp_perslid
|
||||||
|
WHERE fac_import_key = p_import_key
|
||||||
|
AND prs_kenmerk20 IS NOT NULL
|
||||||
|
GROUP BY prs_kenmerk20;
|
||||||
|
|
||||||
|
-- Op basis van de functie gaan we de facilitor-rol bepalen
|
||||||
|
---- via deze rol gaan tijdens verwerkingsactie mensen juiste rechten geven
|
||||||
|
CURSOR c_rol
|
||||||
|
IS
|
||||||
|
SELECT fac_imp_file_index, prs_kenmerk6, prs_kenmerk7
|
||||||
|
FROM fac_imp_perslid
|
||||||
|
WHERE fac_import_key = p_import_key
|
||||||
|
ORDER BY fac_imp_file_index ;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
-- Het aangeleverde bestand heeft de gegevens komma gescheiden ipv ;
|
||||||
|
v_errorhint := 'Delimiter goed zetten';
|
||||||
|
|
||||||
|
-- UPDATE fac_imp_file
|
||||||
|
-- SET fac_imp_file_line = REPLACE (fac_imp_file_line, ',', ';')
|
||||||
|
-- WHERE fac_import_key = p_import_key;
|
||||||
|
|
||||||
|
-- Het aangeleverde bestand heeft aanhalingstekens om de invoervelden..
|
||||||
|
UPDATE fac_imp_file
|
||||||
|
SET fac_imp_file_line = REPLACE (fac_imp_file_line, '"', '')
|
||||||
|
WHERE fac_import_key = p_import_key;
|
||||||
|
|
||||||
|
v_errorhint := 'Generieke update';
|
||||||
|
-- Import AFAS_ONLINE -- csv formaat via stylesheet afas2fclt.xsl bepaald
|
||||||
|
-- EVT NOG AANVULLING VAN CLAUDIA OP:
|
||||||
|
---- DOEL: MET FORMATIEPLAATSCODE_WIJZIGINGSDATUM of AFDELINGSCODE_WIJZIGINGSDATUM DE TRIGGER MUTATIE-KOFFERSYSTEEM TE ZETTEN
|
||||||
|
v_seq_of_header := 'Personeelsnummer;Roepnaam;Voorletters;Voorvoegsel;Achternaam;Geslacht;Zakelijk mailadres;Dienstverb.;Begindatum functieregel;Einddatum functieregel;Afdelingscode;Afdeling omschrijving;Functiecode;Functieomschrijving;Formatieplaatscode;Formatieplaats omschrijving;Uren/wk;Leidinggevende persnr.;Naam Leidinggevende;Kofferletter';
|
||||||
|
-- 1. Personeelsnummer
|
||||||
|
-- 2. Roepnaam
|
||||||
|
-- 3. Voorletters
|
||||||
|
-- 4. Voorvoegsel
|
||||||
|
-- 5. Achternaam
|
||||||
|
-- 6. Geslacht
|
||||||
|
-- 7. Zakelijk mailadres
|
||||||
|
-- 8. Dienstverb.
|
||||||
|
-- 9. Begindatum functieregel
|
||||||
|
-- 10. Einddatum functieregel
|
||||||
|
-- 11. Afdelingscode
|
||||||
|
-- 12. Afdeling omschrijving
|
||||||
|
-- 13. Functiecode
|
||||||
|
-- 14. Functieomschrijving
|
||||||
|
-- 15. Formatieplaatscode
|
||||||
|
-- 16. Formatieplaats omschrijving
|
||||||
|
-- 17. Uren/wk
|
||||||
|
-- 18. Leidinggevende persnr.
|
||||||
|
-- 19. Naam Leidinggevende
|
||||||
|
-- 20. Kofferletter
|
||||||
|
|
||||||
|
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
|
||||||
|
v_seq_of_columns := '0;0;0;0;0;0;11;5;4;2;'
|
||||||
|
-- v_alg_locatie_code 1
|
||||||
|
-- v_alg_gebouw_code 2
|
||||||
|
-- v_alg_verdieping_volgnr 3
|
||||||
|
-- v_alg_ruimte_nr 4
|
||||||
|
-- v_prs_werkplek_volgnr 5
|
||||||
|
-- v_prs_werkplek_omschrijving 6
|
||||||
|
-- v_prs_afdeling_naam 7 -- VERPLICHT BIJ IMPORT
|
||||||
|
-- v_prs_perslid_naam 8 -- VERPLICHT BIJ IMPORT
|
||||||
|
-- v_prs_perslid_tussenvoegsel 9
|
||||||
|
-- v_prs_perslid_voornaam 10
|
||||||
|
|| '3;0;0;0;6;0;0;7;0;1;'
|
||||||
|
-- v_prs_perslid_voorletters 11
|
||||||
|
-- v_prs_perslid_partner_naam 12
|
||||||
|
-- v_prs_perslid_partner_tussenv 13
|
||||||
|
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
||||||
|
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
||||||
|
-- 2 personen die de geboortenaam van de partner willen gebruiken
|
||||||
|
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
||||||
|
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
|
||||||
|
-- v_prs_perslid_telefoonnr 16
|
||||||
|
-- v_prs_perslid_mobiel 17
|
||||||
|
-- v_prs_perslid_email 18
|
||||||
|
-- v_prs_perslid_dienstverband 19
|
||||||
|
-- v_prs_perslid_nr 20
|
||||||
|
|| '14;0;0;0;0;0;8;9;10;11;'
|
||||||
|
-- v_prs_srtperslid_omschrijving 21 -- VERPLICHT BIJ IMPORT
|
||||||
|
-- v_prs_perslid_oslogin 22
|
||||||
|
-- v_prs_perslid_wachtwoord 23
|
||||||
|
-- v_prs_perslid_titel 24
|
||||||
|
-- v_prs_perslid_apikey 25
|
||||||
|
-- v_dummy 26
|
||||||
|
-- v_prs_kenmerk1 27
|
||||||
|
-- v_prs_kenmerk2 28
|
||||||
|
-- v_prs_kenmerk3 29
|
||||||
|
-- v_prs_kenmerk4 30
|
||||||
|
|| '12;13;14;15;16;17;18;19;20;0;'
|
||||||
|
-- v_prs_kenmerk5 31
|
||||||
|
-- .t/m kenmerk15 40
|
||||||
|
|| '0;0;0;0;0;0';
|
||||||
|
-- v_prs_kenmerk16 41
|
||||||
|
-- ..t/m kenmerk20 45
|
||||||
|
|
||||||
|
|
||||||
|
v_errorhint := 'Generieke update';
|
||||||
|
-- csv verwerken naar de fac_imp_perslid-tabel
|
||||||
|
prs.import_perslid(p_import_key, v_seq_of_columns, v_seq_of_header);
|
||||||
|
|
||||||
|
v_errorhint := 'Login afleiden van emailadres';
|
||||||
|
-- Loginnaam afleiden van emailadres
|
||||||
|
UPDATE fac_imp_perslid
|
||||||
|
SET prs_perslid_oslogin =
|
||||||
|
UPPER (
|
||||||
|
(SUBSTR (prs_perslid_email,
|
||||||
|
0,
|
||||||
|
INSTR (prs_perslid_email, '@') - 1)))
|
||||||
|
WHERE prs_perslid_email IS NOT NULL ;
|
||||||
|
|
||||||
|
v_errorhint := 'Uitfilteren records'; -- in afasonline-bestand zitten wellicht aantal zaken die niet mee hoeven naar Facilitor
|
||||||
|
-- moeten we uit afasbestand nog medewerkers verwijderen voordat we vervolg import/update-acties gaan doen? Vooralsnog niet...
|
||||||
|
NULL;
|
||||||
|
|
||||||
|
v_errorhint := 'Bewerken records'; -- in afasonline-bestand zitten wellicht aantal zaken die we voor import naar Facilitor willen bewerken
|
||||||
|
-- Functie in Facilitor moet worden: functiecode - functieomschrijving
|
||||||
|
UPDATE fac_imp_perslid
|
||||||
|
SET prs_srtperslid_omschrijving = prs_kenmerk6 || ' - ' || prs_kenmerk7 ;
|
||||||
|
|
||||||
|
-- Afdeling bepalen waar persoon onder komt te vallen.
|
||||||
|
---- Deze wordt voor HUMOD direct uit AFAS gevuld.
|
||||||
|
---- In Facilitor kiezen we er voor dat alle afdelingen op niveau 1 aangemaakt worden onder bedrijf_key c_prs_bedrijf_key_hmod
|
||||||
|
---- Indien afdeling niet gevonden dan gaan we deze aanmaken onder bedrijf Humanitas Onder Dak
|
||||||
|
FOR rec IN c_afd
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_errorhint := 'Afdeling van Persoon - bestaand of nieuw?';
|
||||||
|
|
||||||
|
-- Afdeling op niveau 1 zoeken
|
||||||
|
SELECT MIN (a.prs_afdeling_key)
|
||||||
|
INTO v_prs_afdeling_key
|
||||||
|
FROM prs_v_afdeling a
|
||||||
|
WHERE a.prs_afdeling_upper = UPPER (rec.prs_afdeling_naam)
|
||||||
|
AND a.prs_afdeling_verwijder IS NULL
|
||||||
|
AND a.niveau = 1 -- kijken alleen naar afdelingen op niveau 1
|
||||||
|
AND a.prs_bedrijf_key = c_prs_bedrijf_key_hmod ;
|
||||||
|
|
||||||
|
-- Als afdeling uit AFAS NIET bekend is in Facilitor dan maken we deze straks bij uitvoer/update aan - Bij deze import alvast de info-logging doen
|
||||||
|
IF v_prs_afdeling_key IS NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
UPDATE fac_imp_perslid
|
||||||
|
SET prs_kenmerk20 = 'Nieuwe afdeling - ' || rec.prs_afdeling_naam
|
||||||
|
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
FOR rec IN c_afd_log
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_errorhint := 'Nieuwe afdelingen aanmaken - ter info';
|
||||||
|
|
||||||
|
|
||||||
|
fac.imp_writelog (p_import_key,
|
||||||
|
'I',
|
||||||
|
rec.prs_kenmerk20,
|
||||||
|
v_errorhint);
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
FOR rec IN c_rol
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_errorhint := 'Facilitor-rollen bepalen- ter info';
|
||||||
|
-- Op zoek naar de Facilitor-rol voor deze medewerkers op basis van functie_code en functie_omschrijving
|
||||||
|
-- Onderhouden in eigentabellen functie_rol1 en functie_rol2 (key 901 en key 903)
|
||||||
|
|
||||||
|
SELECT MAX((SELECT rol.fac_usrdata_code FROM fac_usrdata rol WHERE rol.fac_usrdata_key = ud.fac_usrdata_parentkey AND rol.fac_usrtab_key = 921))
|
||||||
|
facilitor_rol
|
||||||
|
INTO v_prs_perslid_rol_key
|
||||||
|
FROM fac_usrtab ut, fac_usrdata ud
|
||||||
|
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||||
|
AND ut.fac_usrtab_key = 901
|
||||||
|
AND ud.fac_usrdata_verwijder IS NULL
|
||||||
|
AND UPPER(ud.fac_usrdata_code) = UPPER(rec.prs_kenmerk6) -- functiecode
|
||||||
|
AND UPPER(ud.fac_usrdata_omschr) = UPPER(rec.prs_kenmerk7) -- functieomschrijving
|
||||||
|
;
|
||||||
|
|
||||||
|
IF v_prs_perslid_rol_key IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
UPDATE fac_imp_perslid
|
||||||
|
SET prs_kenmerk19 = v_prs_perslid_rol_key
|
||||||
|
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||||
|
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||||
|
fac.imp_writelog (p_import_key,
|
||||||
|
'E',
|
||||||
|
v_errormsg,
|
||||||
|
v_errorhint);
|
||||||
|
END hmod_import_afasonline_h;
|
||||||
|
/
|
||||||
|
|
||||||
|
CREATE OR REPLACE PROCEDURE hmod_update_afasonline_h (p_import_key IN NUMBER)
|
||||||
|
IS
|
||||||
|
-- AFAS in sync met Facilitor bedrijf c_prs_bedrijf_key_hmod
|
||||||
|
--- Alle personen verwijderen die niet meer in het import bestand voorkomen.
|
||||||
|
--- Match bij HUMOD loopt via Personeelsnummer
|
||||||
|
|
||||||
|
-- Afdeling AFAS leading
|
||||||
|
--- Op niveau 1 gaan we de afdeling van HMOD aanmaken.
|
||||||
|
--- Indien onbekende afdelingscode dan gaan we die eerst aanmaken (in immport-deel vullen we daarvoor alvast prs_kenmerk20)
|
||||||
|
|
||||||
|
-- Leidinggevende - verantwoordelijke
|
||||||
|
--- In de personenkaart van Facilitor wordt officiele leidinggevende uit afas gevuld
|
||||||
|
--- En op basis functie een automatische toewijzing aan juiste autorisatiegroepen van managers en teamleiders
|
||||||
|
|
||||||
|
-- Facilitor-rollen bepalen en op basis van deze rollen autorisaties uitreiken
|
||||||
|
--- Op basis functie/code zijn er 3 rollen te onderscheiden voor hmod in Facilitor: Teamleider locatie, Regiomanager, Manager algemeen
|
||||||
|
|
||||||
|
-- HR-mutaties in Facilitor
|
||||||
|
--- Bij mutaties in AFAS moeten in Facilitor voor desbetreffende persoon ook zaken geregeld worden. Hiervoor zetten we kenmerk/trigger 'mutatie-koffersysteem'
|
||||||
|
|
||||||
|
v_count NUMBER;
|
||||||
|
oracle_err_num NUMBER;
|
||||||
|
oracle_err_mes VARCHAR2 (200);
|
||||||
|
v_errormsg VARCHAR2 (400);
|
||||||
|
v_errorhint VARCHAR2 (400);
|
||||||
|
|
||||||
|
-- overige variabelen
|
||||||
|
v_fac_gebruikersgroep_key NUMBER(10);
|
||||||
|
v_prs_perslid_key_verantw NUMBER(10);
|
||||||
|
v_prs_afdeling_key NUMBER (10);
|
||||||
|
c_prs_bedrijf_key_hmod NUMBER (10) := 41;
|
||||||
|
c_rol_key_teamleider NUMBER (10) := 1280;
|
||||||
|
c_rol_key_regiomanager NUMBER (10) := 1740;
|
||||||
|
c_rol_key_manager NUMBER (10) := 1320;
|
||||||
|
|
||||||
|
CURSOR c_afd
|
||||||
|
IS
|
||||||
|
SELECT i.prs_kenmerk20, i.prs_kenmerk4, i.prs_kenmerk5
|
||||||
|
FROM fac_imp_perslid i
|
||||||
|
WHERE i.prs_kenmerk20 IS NOT NULL
|
||||||
|
GROUP BY i.prs_kenmerk20, i.prs_kenmerk4, i.prs_kenmerk5 ;
|
||||||
|
|
||||||
|
CURSOR c_del
|
||||||
|
IS
|
||||||
|
SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_email, p.prs_perslid_nr, sp.prs_srtperslid_omschrijving, a.prs_afdeling_omschrijving, b.prs_bedrijf_naam
|
||||||
|
FROM prs_perslid p, fac_imp_perslid i, prs_srtperslid sp, prs_v_afdeling a, prs_bedrijf b
|
||||||
|
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
||||||
|
AND p.prs_perslid_verwijder IS NULL
|
||||||
|
AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
||||||
|
AND b.prs_bedrijf_key = c_prs_bedrijf_key_hmod
|
||||||
|
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 p.prs_perslid_nr IS NOT NULL
|
||||||
|
AND UPPER (p.prs_perslid_email) LIKE '%HUMOD.NL'
|
||||||
|
ORDER BY 1 ;
|
||||||
|
|
||||||
|
CURSOR c_flex -- Voor updaten van de algemene flex-kenmerkvelden op actuele medewerkers in blok AFAS_ONLINE op personenkaart
|
||||||
|
IS
|
||||||
|
SELECT p.prs_perslid_key, i.prs_perslid_nr, i.prs_perslid_naam, i.prs_perslid_email,
|
||||||
|
i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, 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;
|
||||||
|
|
||||||
|
CURSOR c_verantw
|
||||||
|
IS
|
||||||
|
SELECT p.prs_perslid_key,
|
||||||
|
p.prs_perslid_email,
|
||||||
|
p.prs_perslid_nr,
|
||||||
|
p.prs_perslid_oslogin,
|
||||||
|
CASE WHEN p.prs_perslid_key_verantw IS NOT NULL
|
||||||
|
THEN (SELECT prs_perslid_nr FROM prs_perslid WHERE prs_perslid_key = p.prs_perslid_key_verantw)
|
||||||
|
ELSE NULL
|
||||||
|
END
|
||||||
|
prs_perslid_verantw_nr,
|
||||||
|
p.prs_perslid_verantw_nr_afas
|
||||||
|
FROM fac_imp_perslid i,
|
||||||
|
(SELECT p.prs_perslid_key,
|
||||||
|
p.prs_perslid_email,
|
||||||
|
p.prs_perslid_nr,
|
||||||
|
p.prs_perslid_oslogin,
|
||||||
|
p.prs_perslid_key_verantw,
|
||||||
|
(SELECT kw.prs_kenmerklink_waarde
|
||||||
|
FROM prs_kenmerklink kw
|
||||||
|
WHERE kw.prs_kenmerk_key = 1643
|
||||||
|
AND kw.prs_kenmerklink_niveau = 'P'
|
||||||
|
AND kw.prs_link_key = p.prs_perslid_key)
|
||||||
|
prs_perslid_verantw_nr_afas
|
||||||
|
FROM prs_perslid p) p
|
||||||
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
||||||
|
ORDER BY 1 ;
|
||||||
|
|
||||||
|
-- cursor ROLLEN inlezen in de rol-kenmerkvelden op personenkaart
|
||||||
|
----- en Autorisatie goed inregelen per rol --- DIT NOG APART GOED INREGELEN
|
||||||
|
CURSOR c_rol
|
||||||
|
IS
|
||||||
|
SELECT p.prs_perslid_key,
|
||||||
|
i.prs_kenmerk19, -- rol_key uit afas en eigen-tabel met de facilitor-rollen die bij functie_code en functie_omschrijving horen (tabel key 901 en key 903)
|
||||||
|
p.prs_perslid_teamleider,
|
||||||
|
p.prs_perslid_regiomanager,
|
||||||
|
p.prs_perslid_manager_algemeen
|
||||||
|
FROM fac_imp_perslid i,
|
||||||
|
(SELECT p.prs_perslid_key,
|
||||||
|
p.prs_perslid_email,
|
||||||
|
p.prs_perslid_nr,
|
||||||
|
p.prs_perslid_oslogin,
|
||||||
|
p.prs_perslid_key_verantw,
|
||||||
|
(SELECT kw.prs_kenmerklink_waarde
|
||||||
|
FROM prs_kenmerklink kw
|
||||||
|
WHERE kw.prs_kenmerk_key = c_rol_key_teamleider
|
||||||
|
AND kw.prs_kenmerklink_niveau = 'P'
|
||||||
|
AND kw.prs_link_key = p.prs_perslid_key)
|
||||||
|
prs_perslid_teamleider,
|
||||||
|
(SELECT kw.prs_kenmerklink_waarde
|
||||||
|
FROM prs_kenmerklink kw
|
||||||
|
WHERE kw.prs_kenmerk_key = c_rol_key_regiomanager
|
||||||
|
AND kw.prs_kenmerklink_niveau = 'P'
|
||||||
|
AND kw.prs_link_key = p.prs_perslid_key)
|
||||||
|
prs_perslid_regiomanager,
|
||||||
|
(SELECT kw.prs_kenmerklink_waarde
|
||||||
|
FROM prs_kenmerklink kw
|
||||||
|
WHERE kw.prs_kenmerk_key = c_rol_key_manager
|
||||||
|
AND kw.prs_kenmerklink_niveau = 'P'
|
||||||
|
AND kw.prs_link_key = p.prs_perslid_key)
|
||||||
|
prs_perslid_manager_algemeen
|
||||||
|
FROM prs_perslid p) p
|
||||||
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
||||||
|
ORDER BY 1 ;
|
||||||
|
|
||||||
|
-- HR-koffersysteem mutatie op functie en/of afdeling (=formatieplaats-wijziging) - NOG HELEMAAL GOED UITWERKEN!!!
|
||||||
|
CURSOR c_mut
|
||||||
|
IS
|
||||||
|
SELECT p.prs_perslid_key -- NOG UITWERKEN
|
||||||
|
FROM fac_imp_perslid i,
|
||||||
|
(SELECT p.prs_perslid_key,
|
||||||
|
p.prs_perslid_email,
|
||||||
|
p.prs_perslid_nr,
|
||||||
|
p.prs_perslid_oslogin,
|
||||||
|
p.prs_perslid_key_verantw,
|
||||||
|
(SELECT kw.prs_kenmerklink_waarde
|
||||||
|
FROM prs_kenmerklink kw
|
||||||
|
WHERE kw.prs_kenmerk_key = 1082
|
||||||
|
AND kw.prs_kenmerklink_niveau = 'P'
|
||||||
|
AND kw.prs_link_key = p.prs_perslid_key)
|
||||||
|
prs_perslid_verantw_nr_afas
|
||||||
|
FROM prs_perslid p) p
|
||||||
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
||||||
|
ORDER BY 1 ;
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
v_errormsg := 'Update afasonline';
|
||||||
|
v_errorhint := 'Niet genoeg personen in bestand, import afgebroken';
|
||||||
|
|
||||||
|
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
|
||||||
|
|
||||||
|
IF v_count >= 100
|
||||||
|
THEN
|
||||||
|
-- Geldig importbestand wat betreft aantal personen
|
||||||
|
|
||||||
|
-- Gaan we eerst de afdelingsstructuur bijwerken
|
||||||
|
FOR rec IN c_afd
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_errorhint:='Fout aanvullen afdelingstructuur: ' || rec.prs_kenmerk4 || ' - ' || rec.prs_kenmerk5 ;
|
||||||
|
|
||||||
|
INSERT INTO prs_afdeling (
|
||||||
|
prs_bedrijf_key,
|
||||||
|
prs_afdeling_naam,
|
||||||
|
prs_afdeling_omschrijving,
|
||||||
|
prs_kostenplaats_key,
|
||||||
|
prs_perslid_key_verantw,
|
||||||
|
mld_adres_key)
|
||||||
|
VALUES (
|
||||||
|
c_prs_bedrijf_key_hmod,
|
||||||
|
rec.prs_kenmerk4,
|
||||||
|
rec.prs_kenmerk5,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL) ;
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
-- En dan kunnen we de generieke import draaien
|
||||||
|
v_errorhint := 'Verwerken persoonsgegevens';
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- generic update
|
||||||
|
-- 'EMAIL' betekent dat op basis van Email wordt gematched.
|
||||||
|
-- 'NR' betekent op basis Personeelsnummer
|
||||||
|
-- 'NULL' betekent altijd geen werkplekken verwijderen
|
||||||
|
prs.update_perslid (p_import_key, 'NR', NULL);
|
||||||
|
|
||||||
|
-- Verwijder personen die niet meer in de import voorkomen.
|
||||||
|
FOR rec IN c_del
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_errorhint := 'Verwijderen persoonsgegevens';
|
||||||
|
|
||||||
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
-- Op de personenkaart de actuele humod-mederwerkers de afas-velden uit de koppeling vullen - ter informatie
|
||||||
|
FOR rec IN c_flex
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- standaardvelden:
|
||||||
|
v_errorhint:='Fout bijwerken - Naam';
|
||||||
|
PRS.upsertkenmerk (1602, rec.prs_perslid_key, rec.prs_perslid_naam);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken - Personeelsnummer';
|
||||||
|
PRS.upsertkenmerk (1604, rec.prs_perslid_key, rec.prs_perslid_nr);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken - Zakelijk emailadres';
|
||||||
|
PRS.upsertkenmerk (1605, rec.prs_perslid_key, rec.prs_perslid_email);
|
||||||
|
|
||||||
|
-- overige uit de import-kenmerkvelden:
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld1 - Dienstverb.';
|
||||||
|
PRS.upsertkenmerk (1660, rec.prs_perslid_key, rec.prs_kenmerk1);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld2 - Begindatum functieregel';
|
||||||
|
PRS.upsertkenmerk (1644, rec.prs_perslid_key, rec.prs_kenmerk2);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld3 - Einddatum functieregel';
|
||||||
|
PRS.upsertkenmerk (1645, rec.prs_perslid_key, rec.prs_kenmerk3);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld4 - Afdelingscode';
|
||||||
|
PRS.upsertkenmerk (1608, rec.prs_perslid_key, rec.prs_kenmerk4);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld5 - Afdeling omschrijving';
|
||||||
|
PRS.upsertkenmerk (1609, rec.prs_perslid_key, rec.prs_kenmerk5);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld6 - Functiecode';
|
||||||
|
PRS.upsertkenmerk (1610, rec.prs_perslid_key, rec.prs_kenmerk6);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld7 - Functieomschrijving';
|
||||||
|
PRS.upsertkenmerk (1611, rec.prs_perslid_key, rec.prs_kenmerk7);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld8 - Formatieplaatscode';
|
||||||
|
PRS.upsertkenmerk (1606, rec.prs_perslid_key, rec.prs_kenmerk8);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld9 - Formatieplaats omschrijving';
|
||||||
|
PRS.upsertkenmerk (1607, rec.prs_perslid_key, rec.prs_kenmerk9);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld10 - Uren/wk';
|
||||||
|
PRS.upsertkenmerk (1640, rec.prs_perslid_key, rec.prs_kenmerk10);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld11 - Leidinggevende persnr';
|
||||||
|
PRS.upsertkenmerk (1643, rec.prs_perslid_key, rec.prs_kenmerk11);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld12 - Naam Leidinggevende';
|
||||||
|
PRS.upsertkenmerk (1642, rec.prs_perslid_key, rec.prs_kenmerk12);
|
||||||
|
|
||||||
|
v_errorhint:='Fout bijwerken kenmerkveld13 - Kofferletter';
|
||||||
|
PRS.upsertkenmerk (1641, rec.prs_perslid_key, rec.prs_kenmerk13);
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
-- En de verantwoordelijk manager updaten in de personenkaart indien nodig
|
||||||
|
FOR rec IN c_verantw
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_errorhint:='Fout bijwerken verantwoordelijke';
|
||||||
|
|
||||||
|
-- als de aangeboden waarde uit afas anders is dan de huidige verantwoordelijke in de personenkaart dan gaan we personenkaart updaten
|
||||||
|
IF COALESCE(rec.prs_perslid_verantw_nr_afas, '<leeg>') <> COALESCE(rec.prs_perslid_verantw_nr, '<leeg>')
|
||||||
|
THEN
|
||||||
|
|
||||||
|
-- geen gevonden facilitor-manager dan gevulde verantwoordelijke verwijderen
|
||||||
|
IF rec.prs_perslid_verantw_nr_afas IS NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
UPDATE prs_perslid
|
||||||
|
SET prs_perslid_key_verantw = ''
|
||||||
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- wel gevonden facilitor-manager dan bijbehorende verantwoordelijke_key in personenkaart vullen
|
||||||
|
IF rec.prs_perslid_verantw_nr_afas IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
SELECT MIN(prs_perslid_key)
|
||||||
|
INTO v_prs_perslid_key_verantw
|
||||||
|
FROM prs_perslid
|
||||||
|
WHERE prs_perslid_nr = rec.prs_perslid_verantw_nr_afas ;
|
||||||
|
|
||||||
|
IF v_prs_perslid_key_verantw IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
UPDATE prs_perslid
|
||||||
|
SET prs_perslid_key_verantw = v_prs_perslid_key_verantw
|
||||||
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
|
||||||
|
UPDATE prs_perslid
|
||||||
|
SET prs_perslid_key_verantw = ''
|
||||||
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
FOR rec IN c_rol
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_errorhint:='Fout bijwerken facilitor-rollen';
|
||||||
|
|
||||||
|
-- 1. als prs_kenmerk19 leeg is dan ook alle vinkjes leegmaken...
|
||||||
|
IF rec.prs_kenmerk19 IS NULL AND (rec.prs_perslid_teamleider IS NOT NULL OR rec.prs_perslid_regiomanager IS NOT NULL OR rec.prs_perslid_manager_algemeen IS NOT NULL)
|
||||||
|
THEN
|
||||||
|
|
||||||
|
IF rec.prs_perslid_teamleider IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_teamleider AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Teamleider: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF rec.prs_perslid_regiomanager IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_regiomanager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Regiomanager: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF rec.prs_perslid_manager_algemeen IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_manager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- 2. als prs_kenmerk19 gevuld is dan checken of juiste rol-vinkje gezet is, zo niet, doen..
|
||||||
|
-- 2.1. voor c_rol_key_teamleider
|
||||||
|
IF rec.prs_kenmerk19 IS NOT NULL AND fac.safe_to_number(rec.prs_kenmerk19) = c_rol_key_teamleider
|
||||||
|
THEN
|
||||||
|
|
||||||
|
-- toevoegen
|
||||||
|
IF rec.prs_perslid_teamleider IS NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
INSERT INTO prs_kenmerklink(prs_link_key,prs_kenmerk_key,prs_kenmerklink_waarde,prs_kenmerklink_niveau)
|
||||||
|
VALUES (rec.prs_perslid_key, c_rol_key_teamleider, '1', 'P') ;
|
||||||
|
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Teamleider: (leeg) --> 1 (vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- en de andere rollen deleten als ze nog aangevinkt zijn (kan maar 1 rol krijgen)
|
||||||
|
IF rec.prs_perslid_regiomanager IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_regiomanager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Regiomanager: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF rec.prs_perslid_manager_algemeen IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_manager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- 2.2. c_rol_key_regiomanager
|
||||||
|
IF rec.prs_kenmerk19 IS NOT NULL AND fac.safe_to_number(rec.prs_kenmerk19) = c_rol_key_regiomanager
|
||||||
|
THEN
|
||||||
|
|
||||||
|
-- toevoegen
|
||||||
|
IF rec.prs_perslid_regiomanager IS NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
INSERT INTO prs_kenmerklink(prs_link_key,prs_kenmerk_key,prs_kenmerklink_waarde,prs_kenmerklink_niveau)
|
||||||
|
VALUES (rec.prs_perslid_key, c_rol_key_regiomanager, '1', 'P') ;
|
||||||
|
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Regiomanager: (leeg) --> 1 (vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- en de andere rollen deleten als ze nog aangevinkt zijn (kan maar 1 rol krijgen)
|
||||||
|
IF rec.prs_perslid_teamleider IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_teamleider AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Teamleider: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF rec.prs_perslid_manager_algemeen IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_manager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- 2.3. c_rol_key_manager
|
||||||
|
IF rec.prs_kenmerk19 IS NOT NULL AND fac.safe_to_number(rec.prs_kenmerk19) = c_rol_key_manager
|
||||||
|
THEN
|
||||||
|
|
||||||
|
-- toevoegen
|
||||||
|
IF rec.prs_perslid_manager_algemeen IS NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
INSERT INTO prs_kenmerklink(prs_link_key,prs_kenmerk_key,prs_kenmerklink_waarde,prs_kenmerklink_niveau)
|
||||||
|
VALUES (rec.prs_perslid_key, c_rol_key_manager, '1', 'P') ;
|
||||||
|
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: (leeg) --> 1 (vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- en de andere rollen deleten als ze nog aangevinkt zijn (kan maar 1 rol krijgen)
|
||||||
|
IF rec.prs_perslid_teamleider IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_teamleider AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Teamleider: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF rec.prs_perslid_manager_algemeen IS NOT NULL
|
||||||
|
THEN
|
||||||
|
|
||||||
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_manager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
||||||
|
|
||||||
|
-- tracking doen op personenkaart
|
||||||
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
/*
|
||||||
|
FOR rec IN c_aut
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
-- Alle locatiemanagers toevoegen aan eigen autorisatiegroep'
|
||||||
|
v_errorhint:='Fout bijwerken locatiemanagers in eigen autorisatiegroep';
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
SELECT fac_gebruikersgroep_key
|
||||||
|
INTO v_fac_gebruikersgroep_key
|
||||||
|
FROM fac_gebruikersgroep
|
||||||
|
WHERE fac_groep_key = 22 -- Groep 'Locatie- en Regiomanagers'
|
||||||
|
AND prs_perslid_key = rec.prs_perslid_key ;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND
|
||||||
|
THEN
|
||||||
|
|
||||||
|
INSERT INTO fac_gebruikersgroep (fac_groep_key,
|
||||||
|
prs_perslid_key)
|
||||||
|
VALUES (22, rec.prs_perslid_key);
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
fac.imp_writelog (p_import_key,
|
||||||
|
'E',
|
||||||
|
v_errormsg,
|
||||||
|
v_errorhint);
|
||||||
|
COMMIT;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||||
|
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||||
|
fac.imp_writelog (p_import_key,
|
||||||
|
'E',
|
||||||
|
v_errormsg,
|
||||||
|
v_errorhint);
|
||||||
|
END hmod_update_afasonline_h;
|
||||||
|
/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
--- HIERONDER OUDE IMPORT ADP en KOFFERSYSTEEM NOG HELEMAAL OPSCHONEN! ----
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE PROCEDURE hmod_import_koffer (p_import_key IN NUMBER)
|
CREATE OR REPLACE PROCEDURE hmod_import_koffer (p_import_key IN NUMBER)
|
||||||
AS
|
AS
|
||||||
@@ -414,8 +1192,9 @@ CREATE OR REPLACE VIEW hmod_v_personenlijst
|
|||||||
NAAM,
|
NAAM,
|
||||||
PERSONEELSNUMMER,
|
PERSONEELSNUMMER,
|
||||||
NAAM_TOT,
|
NAAM_TOT,
|
||||||
TEAMLEIDER_MT,
|
TEAMLEIDER_LOC,
|
||||||
HR_FUNCTIONARIS,
|
MANAGER_ALGEMEEN,
|
||||||
|
REGIOMANAGER,
|
||||||
BEDRIJF,
|
BEDRIJF,
|
||||||
DATUM_UITDIENST
|
DATUM_UITDIENST
|
||||||
)
|
)
|
||||||
@@ -425,13 +1204,14 @@ AS
|
|||||||
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
||||||
naam,
|
naam,
|
||||||
p.prs_perslid_nr,
|
p.prs_perslid_nr,
|
||||||
CASE WHEN v.teamleider_mt = 'ja' AND v.hr_functionaris = 'nee' THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ') - teamleider'
|
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ')' ||
|
||||||
WHEN v.teamleider_mt = 'nee' AND v.hr_functionaris = 'ja' THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ') - hr-functionaris'
|
DECODE(v.teamleider_loc, 'ja', ' - teamleider loc',
|
||||||
WHEN v.teamleider_mt = 'nee' AND v.hr_functionaris = 'ja' THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ') - teamleider / hr-functionaris'
|
DECODE(v.regiomanager, 'ja', ' - regiomanager',
|
||||||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ')'
|
DECODE(v.manager_algemeen, 'ja', '- manager algemeen',
|
||||||
END naam_tot,
|
NULL))) naam_tot,
|
||||||
v.teamleider_mt,
|
v.teamleider_loc,
|
||||||
v.hr_functionaris,
|
v.manager_algemeen,
|
||||||
|
v.regiomanager,
|
||||||
b.prs_bedrijf_naam,
|
b.prs_bedrijf_naam,
|
||||||
v.datum_uitdienst
|
v.datum_uitdienst
|
||||||
FROM
|
FROM
|
||||||
@@ -441,11 +1221,14 @@ AS
|
|||||||
(
|
(
|
||||||
SELECT prs_perslid_key,
|
SELECT prs_perslid_key,
|
||||||
(select CASE WHEN max(k.prs_kenmerklink_waarde) IS NULL THEN 'nee' ELSE 'ja' END teamleider_mt
|
(select CASE WHEN max(k.prs_kenmerklink_waarde) IS NULL THEN 'nee' ELSE 'ja' END teamleider_mt
|
||||||
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1280) -- tl_mt
|
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1280) -- tl
|
||||||
teamleider_mt,
|
teamleider_loc,
|
||||||
(select CASE WHEN max(k.prs_kenmerklink_waarde) IS NULL THEN 'nee' ELSE 'ja' END hr_functionaris
|
(select CASE WHEN max(k.prs_kenmerklink_waarde) IS NULL THEN 'nee' ELSE 'ja' END hr_functionaris
|
||||||
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1320) -- hr_functionaris
|
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1320) -- manager algemeen
|
||||||
hr_functionaris,
|
manager_algemeen,
|
||||||
|
(select CASE WHEN max(k.prs_kenmerklink_waarde) IS NULL THEN 'nee' ELSE 'ja' END regiomanager
|
||||||
|
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1740) -- regiomanager
|
||||||
|
regiomanager,
|
||||||
(select TO_DATE(max(k.prs_kenmerklink_waarde),'DD-MM-YYYY')
|
(select TO_DATE(max(k.prs_kenmerklink_waarde),'DD-MM-YYYY')
|
||||||
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1100) -- datum_uitdienst
|
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1100) -- datum_uitdienst
|
||||||
datum_uitdienst
|
datum_uitdienst
|
||||||
@@ -456,7 +1239,7 @@ AS
|
|||||||
AND p.prs_perslid_key = v.prs_perslid_key
|
AND p.prs_perslid_key = v.prs_perslid_key
|
||||||
AND p.prs_perslid_verwijder IS NULL
|
AND p.prs_perslid_verwijder IS NULL
|
||||||
AND p.prs_perslid_nr IS NOT NULL
|
AND p.prs_perslid_nr IS NOT NULL
|
||||||
AND b.prs_bedrijf_key = 41
|
AND b.prs_bedrijf_key IN (41, 8101) -- HMOD en HMOD-interne-emailadressen
|
||||||
AND TRUNC(SYSDATE) < COALESCE(TRUNC(v.datum_uitdienst),TO_DATE('31-12-2099','DD-MM-YYYY'))
|
AND TRUNC(SYSDATE) < COALESCE(TRUNC(v.datum_uitdienst),TO_DATE('31-12-2099','DD-MM-YYYY'))
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -465,17 +1248,31 @@ AS
|
|||||||
SELECT *
|
SELECT *
|
||||||
FROM hmod_v_personenlijst
|
FROM hmod_v_personenlijst
|
||||||
WHERE
|
WHERE
|
||||||
teamleider_mt = 'ja'
|
teamleider_loc = 'ja'
|
||||||
;
|
;
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW hmod_v_personenlijst_hr
|
CREATE OR REPLACE VIEW hmod_v_personenlijst_man
|
||||||
AS
|
AS
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM hmod_v_personenlijst
|
FROM hmod_v_personenlijst
|
||||||
WHERE
|
WHERE
|
||||||
hr_functionaris = 'ja'
|
manager_algemeen = 'ja'
|
||||||
;
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW hmod_v_personenlijst_rm -- Regiomanager
|
||||||
|
AS
|
||||||
|
SELECT *
|
||||||
|
FROM hmod_v_personenlijst
|
||||||
|
WHERE
|
||||||
|
regiomanager = 'ja'
|
||||||
|
;
|
||||||
|
|
||||||
|
-- HR is geen officiele Facilitor-rol meer en view kan tzt weg/gedropt worden
|
||||||
|
CREATE OR REPLACE VIEW hmod_v_personenlijst_hr
|
||||||
|
AS
|
||||||
|
SELECT *
|
||||||
|
FROM hmod_v_personenlijst ;
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW hmod_v_koffersysteem_actueel
|
CREATE OR REPLACE VIEW hmod_v_koffersysteem_actueel
|
||||||
AS
|
AS
|
||||||
@@ -1522,6 +2319,8 @@ AS
|
|||||||
cnt_contract_status,
|
cnt_contract_status,
|
||||||
CASE WHEN cnt_contract_verlenging = 2 THEN 'nee' ELSE 'ja' END
|
CASE WHEN cnt_contract_verlenging = 2 THEN 'nee' ELSE 'ja' END
|
||||||
automatisch_verlengen,
|
automatisch_verlengen,
|
||||||
|
CASE WHEN cnt_contract_inactiveren = 1 THEN 'ja' ELSE 'nee' END
|
||||||
|
automatisch_beeindigen,
|
||||||
(SELECT kc.cnt_kenmerkcontract_waarde
|
(SELECT kc.cnt_kenmerkcontract_waarde
|
||||||
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
||||||
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
|
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
|
||||||
@@ -1610,6 +2409,7 @@ AS -- Op rappel-datum naar de Beheerder/Administrateur sturen
|
|||||||
AND c.prs_perslid_key_beh <> c.prs_perslid_key_eig -- als administrateur gelijk aan 1e aanspreekpunt dan dan sturen we de info-mail niet uit
|
AND c.prs_perslid_key_beh <> c.prs_perslid_key_eig -- als administrateur gelijk aan 1e aanspreekpunt dan dan sturen we de info-mail niet uit
|
||||||
AND v.contract_opgezegd IS NULL
|
AND v.contract_opgezegd IS NULL
|
||||||
AND v.automatisch_verlengen = 'nee'
|
AND v.automatisch_verlengen = 'nee'
|
||||||
|
AND v.automatisch_beeindigen = 'nee'
|
||||||
UNION ALL -- Op rappel-datum ACTIE-mail naar het 1e aanspreekpunt sturen (contractverantwoordelijke)
|
UNION ALL -- Op rappel-datum ACTIE-mail naar het 1e aanspreekpunt sturen (contractverantwoordelijke)
|
||||||
SELECT 'CUST02',
|
SELECT 'CUST02',
|
||||||
NULL,
|
NULL,
|
||||||
@@ -1632,6 +2432,7 @@ AS -- Op rappel-datum naar de Beheerder/Administrateur sturen
|
|||||||
AND c.prs_perslid_key_eig IS NOT NULL
|
AND c.prs_perslid_key_eig IS NOT NULL
|
||||||
AND v.contract_opgezegd IS NULL
|
AND v.contract_opgezegd IS NULL
|
||||||
AND v.automatisch_verlengen = 'nee'
|
AND v.automatisch_verlengen = 'nee'
|
||||||
|
AND v.automatisch_beeindigen = 'nee'
|
||||||
UNION ALL -- Op rappel-datum ACTIE-mail naar het 'RAPPEL-ANDERS-emailadres'
|
UNION ALL -- Op rappel-datum ACTIE-mail naar het 'RAPPEL-ANDERS-emailadres'
|
||||||
SELECT 'CUST03',
|
SELECT 'CUST03',
|
||||||
NULL,
|
NULL,
|
||||||
@@ -1652,7 +2453,8 @@ AS -- Op rappel-datum naar de Beheerder/Administrateur sturen
|
|||||||
AND c.cnt_contract_status = 0
|
AND c.cnt_contract_status = 0
|
||||||
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
||||||
AND v.contract_opgezegd IS NULL
|
AND v.contract_opgezegd IS NULL
|
||||||
AND v.automatisch_verlengen = 'nee' ;
|
AND v.automatisch_verlengen = 'nee'
|
||||||
|
AND v.automatisch_beeindigen = 'nee' ;
|
||||||
|
|
||||||
-- domeinview Contracten
|
-- domeinview Contracten
|
||||||
CREATE OR REPLACE VIEW hmod_v_contracten
|
CREATE OR REPLACE VIEW hmod_v_contracten
|
||||||
|
|||||||
Reference in New Issue
Block a user