GOKO#76448 -- Kantoorpersoneel inpassen in beaufort-koppeling - Emailadressen en juiste afdeling laten landen
svn path=/Customer/trunk/; revision=59703
This commit is contained in:
690
GOKO/goko.sql
690
GOKO/goko.sql
@@ -489,363 +489,423 @@ AS
|
||||
|
||||
CREATE OR REPLACE PROCEDURE goko_import_perslid (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;
|
||||
|
||||
-- overige variabelen
|
||||
v_prs_afdeling_key NUMBER(10);
|
||||
c_prs_afdeling_key NUMBER(10) := 22 ; -- Fallback-afdeling 'OVERIG'
|
||||
c_prs_afdeling_key_leid NUMBER(10) := 21 ; -- Afdeling OPVANG bestemd voor de Locatieleiders
|
||||
v_prs_kostenplaats_key NUMBER(10);
|
||||
v_prs_afdeling_upper VARCHAR2(10);
|
||||
|
||||
v_alg_locatie_key NUMBER(10);
|
||||
v_alg_locatie_code VARCHAR2(10);
|
||||
v_alg_gebouw_key NUMBER(10);
|
||||
v_alg_gebouw_code VARCHAR2(12);
|
||||
v_alg_verdieping_key NUMBER(10);
|
||||
v_alg_verdieping_volgnr NUMBER(3);
|
||||
v_alg_ruimte_key NUMBER(10);
|
||||
v_alg_ruimte_nr VARCHAR2(20);
|
||||
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (400);
|
||||
v_errorhint VARCHAR2 (400);
|
||||
v_aantal_in_fclt NUMBER;
|
||||
|
||||
CURSOR c_email
|
||||
IS
|
||||
SELECT fac_imp_file_index, p.prs_perslid_key, p.prs_perslid_email
|
||||
FROM fac_imp_perslid i, prs_perslid p
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND i.prs_perslid_nr = p.prs_perslid_nr AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_email IS NOT NULL
|
||||
ORDER BY 1 ;
|
||||
-- overige variabelen
|
||||
v_prs_afdeling_key NUMBER (10);
|
||||
c_prs_afdeling_key NUMBER (10) := 22; -- Fallback-afdeling 'OVERIG'
|
||||
c_prs_afdeling_key_leid NUMBER (10) := 21; -- Afdeling OPVANG bestemd voor de Locatieleiders
|
||||
v_prs_kostenplaats_key NUMBER (10);
|
||||
v_prs_afdeling_upper VARCHAR2 (10);
|
||||
|
||||
-- Facilitor is leading qua Functies - Voor alle bestaande werknemers de facilitor-functie overnemen en voor nieuwe medewerkers de functie uit beaufort initieel pakken..
|
||||
CURSOR c_functie
|
||||
IS
|
||||
SELECT fac_imp_file_index, p.prs_perslid_key, sp.prs_srtperslid_omschrijving
|
||||
FROM fac_imp_perslid i, prs_perslid p, prs_srtperslid sp
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND i.prs_perslid_nr = p.prs_perslid_nr AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND p.prs_srtperslid_key IS NOT NULL
|
||||
UNION ALL
|
||||
SELECT fac_imp_file_index, -1 prs_perslid_key, COALESCE(i.prs_kenmerk1,'Onbekend') prs_srtperslid_omschrijving
|
||||
FROM fac_imp_perslid i
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND NOT EXISTS (SELECT 1 FROM prs_perslid p WHERE p.prs_perslid_nr = i.prs_perslid_nr AND p.prs_perslid_verwijder IS NULL) ;
|
||||
v_alg_locatie_key NUMBER (10);
|
||||
v_alg_locatie_code VARCHAR2 (10);
|
||||
v_alg_gebouw_key NUMBER (10);
|
||||
v_alg_gebouw_code VARCHAR2 (12);
|
||||
v_alg_verdieping_key NUMBER (10);
|
||||
v_alg_verdieping_volgnr NUMBER (3);
|
||||
v_alg_ruimte_key NUMBER (10);
|
||||
v_alg_ruimte_nr VARCHAR2 (20);
|
||||
|
||||
CURSOR c_login
|
||||
IS
|
||||
SELECT fac_imp_file_index, p.prs_perslid_key, p.prs_perslid_oslogin
|
||||
FROM fac_imp_perslid i, prs_perslid p
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND i.prs_perslid_nr = p.prs_perslid_nr AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_oslogin IS NOT NULL
|
||||
ORDER BY 1 ;
|
||||
-- emailadres facilitor is leading - indien leeg in facilitor en gevuld in beaufort dan nemen we wel beaufort emailadres over
|
||||
CURSOR c_email
|
||||
IS
|
||||
SELECT fac_imp_file_index,
|
||||
p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
i.prs_kenmerk7,
|
||||
p.prs_perslid_oslogin,
|
||||
CASE
|
||||
WHEN p.prs_perslid_email <>
|
||||
COALESCE (i.prs_kenmerk7, 'onbekend')
|
||||
THEN
|
||||
'facilitor leading: emailadres facilitor ongelijk met beaufort'
|
||||
WHEN p.prs_perslid_email = i.prs_kenmerk7
|
||||
THEN
|
||||
'facilitor leading: emailadres facilitor en beaufort gelijk'
|
||||
ELSE
|
||||
'facilitor leading: ??'
|
||||
END
|
||||
check_email
|
||||
FROM fac_imp_perslid i, prs_perslid p
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND i.prs_perslid_nr = p.prs_perslid_nr
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_email IS NOT NULL
|
||||
UNION
|
||||
SELECT fac_imp_file_index,
|
||||
p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
i.prs_kenmerk7,
|
||||
p.prs_perslid_oslogin,
|
||||
'emailadres facilitor leeg en beaufort gevuld' check_email
|
||||
FROM fac_imp_perslid i, prs_perslid p
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND i.prs_perslid_nr = p.prs_perslid_nr
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_email IS NULL
|
||||
AND i.prs_kenmerk7 IS NOT NULL
|
||||
ORDER BY 1;
|
||||
|
||||
CURSOR c_afd
|
||||
IS
|
||||
SELECT fac_imp_file_index, prs_afdeling_naam, prs_kenmerk5, prs_srtperslid_omschrijving
|
||||
FROM fac_imp_perslid
|
||||
WHERE fac_import_key = p_import_key ;
|
||||
-- Facilitor is leading qua Functies - Voor alle bestaande werknemers de facilitor-functie overnemen en voor nieuwe medewerkers de functie uit beaufort initieel pakken..
|
||||
CURSOR c_functie
|
||||
IS
|
||||
SELECT fac_imp_file_index,
|
||||
p.prs_perslid_key,
|
||||
sp.prs_srtperslid_omschrijving
|
||||
FROM fac_imp_perslid i, prs_perslid p, prs_srtperslid sp
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND i.prs_perslid_nr = p.prs_perslid_nr
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND p.prs_srtperslid_key IS NOT NULL
|
||||
UNION ALL
|
||||
SELECT fac_imp_file_index,
|
||||
-1
|
||||
prs_perslid_key,
|
||||
COALESCE (i.prs_kenmerk1, 'Onbekend')
|
||||
prs_srtperslid_omschrijving
|
||||
FROM fac_imp_perslid i
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_nr = i.prs_perslid_nr
|
||||
AND p.prs_perslid_verwijder IS NULL);
|
||||
|
||||
CURSOR c_loc
|
||||
IS
|
||||
SELECT fac_imp_file_index, prs_kenmerk5
|
||||
FROM fac_imp_perslid
|
||||
WHERE fac_import_key = p_import_key ;
|
||||
|
||||
CURSOR c_login
|
||||
IS
|
||||
SELECT fac_imp_file_index, p.prs_perslid_key, p.prs_perslid_oslogin
|
||||
FROM fac_imp_perslid i, prs_perslid p
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND i.prs_perslid_nr = p.prs_perslid_nr
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_oslogin IS NOT NULL
|
||||
ORDER BY 1;
|
||||
|
||||
CURSOR c_afd
|
||||
IS
|
||||
SELECT fac_imp_file_index,
|
||||
prs_afdeling_naam,
|
||||
prs_kenmerk5,
|
||||
prs_srtperslid_omschrijving
|
||||
FROM fac_imp_perslid
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
CURSOR c_loc
|
||||
IS
|
||||
SELECT fac_imp_file_index, prs_kenmerk5
|
||||
FROM fac_imp_perslid
|
||||
WHERE fac_import_key = p_import_key;
|
||||
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 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;
|
||||
-- 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';
|
||||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
|
||||
-- Voor GOKO geldt: functie in Facilitor gaan we leading maken. bij import-inleesactie vullen met personeelsnr en daarna overschrijven met het de functie uit Facilitor of bij nieuwe medewerker met <onbekend>
|
||||
---
|
||||
prs.import_perslid (
|
||||
p_import_key,
|
||||
'0;0;0;0;0;0;5;8;7;6;'
|
||||
|| '0;0;0;0;0;0;0;0;0;5;'
|
||||
|| '5;0;0;0;0;0;9;1;2;3;'
|
||||
|| '4;10;11;0;0;0;0;0;0;0;'
|
||||
|| '0;0;0;0;0;0',
|
||||
'Regio;Locatie;Inzet werksoort;Kostenplaats loonverd;Persoonsnr;Roepnaam;Voorvoeg;Persoonsnaam;Oms functie;Uitdienst dat;Email werk%');
|
||||
-- 1 2 3 4 5 6 7 8 9 10 11
|
||||
-- DEF. BESTAND BIJ GOKO: Regio;Locatie;Inzet werksoort;Kostenplaats loonverd.;Persoonsnr.;Roepnaam;Voorvoeg.;Persoonsnaam;Oms functie;Uitdienst dat.;Email werk
|
||||
v_errorhint := 'Generieke update';
|
||||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
|
||||
-- Voor GOKO geldt: functie in Facilitor gaan we leading maken. bij import-inleesactie vullen met personeelsnr en daarna overschrijven met het de functie uit Facilitor of bij nieuwe medewerker met <onbekend>
|
||||
---
|
||||
prs.import_perslid (
|
||||
p_import_key,
|
||||
'0;0;0;0;0;0;5;8;7;6;'
|
||||
|| '0;0;0;0;0;0;0;0;0;5;'
|
||||
|| '5;0;0;0;0;0;9;1;2;3;'
|
||||
|| '4;10;11;0;0;0;0;0;0;0;'
|
||||
|| '0;0;0;0;0;0',
|
||||
'Regio;Locatie;Inzet werksoort;Kostenplaats loonverd;Persoonsnr;Roepnaam;Voorvoeg;Persoonsnaam;Oms functie;Uitdienst dat;Email werk%');
|
||||
-- 1 2 3 4 5 6 7 8 9 10 11
|
||||
-- DEF. BESTAND BIJ GOKO: Regio;Locatie;Inzet werksoort;Kostenplaats loonverd.;Persoonsnr.;Roepnaam;Voorvoeg.;Persoonsnaam;Oms functie;Uitdienst dat.;Email werk
|
||||
|
||||
v_errorhint := 'Uit dienst datum goed vullen';
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk6 = DECODE (fac.safe_to_date(prs_kenmerk6,'dd-mm-yyyy'), NULL, NULL, fac.safe_to_date(prs_kenmerk6,'dd-mm-yyyy')) WHERE prs_kenmerk6 IS NOT NULL;
|
||||
v_errorhint := 'Uit dienst datum goed vullen';
|
||||
|
||||
v_errorhint := 'De FUNCTIE uit Facilitor is leading';
|
||||
FOR rec IN c_functie
|
||||
LOOP
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk6 =
|
||||
DECODE (fac.safe_to_date (prs_kenmerk6, 'dd-mm-yyyy'),
|
||||
NULL, NULL,
|
||||
fac.safe_to_date (prs_kenmerk6, 'dd-mm-yyyy'))
|
||||
WHERE prs_kenmerk6 IS NOT NULL;
|
||||
|
||||
v_errorhint := 'De FUNCTIE uit Facilitor is leading';
|
||||
|
||||
FOR rec IN c_functie
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_srtperslid_omschrijving = rec.prs_srtperslid_omschrijving
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_srtperslid_omschrijving =
|
||||
rec.prs_srtperslid_omschrijving
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
END;
|
||||
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
|
||||
v_errorhint := 'Het EMAIL-adres uit Facilitor is leading';
|
||||
-- Facilitor is leading qua emailadressen.
|
||||
FOR rec IN c_email
|
||||
LOOP
|
||||
v_errorhint := 'Emailadres Go-Kinderopvang vullen';
|
||||
|
||||
-- De prive-adressen die uit Beaufort meekomen verwijderen - alleen de zakelijke emailadressen nemen we over naar kenmerkveld Email (werk)
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk7 = NULL
|
||||
WHERE prs_kenmerk7 IS NOT NULL
|
||||
AND INSTR (UPPER (prs_kenmerk7), '@GO-KINDEROPVANG.NL') = 0;
|
||||
|
||||
v_errorhint := 'Het EMAIL-adres uit Facilitor is leading';
|
||||
|
||||
-- Facilitor is leading qua emailadressen.
|
||||
FOR rec IN c_email
|
||||
LOOP
|
||||
BEGIN
|
||||
IF INSTR (rec.check_email, 'facilitor leading') > 0
|
||||
THEN
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_email = rec.prs_perslid_email
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
END IF;
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_email = rec.prs_perslid_email
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
IF rec.check_email =
|
||||
'emailadres facilitor leeg en beaufort gevuld'
|
||||
THEN
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_email = rec.prs_kenmerk7
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
|
||||
v_errorhint := 'Emailadres Go-Kinderopvang vullen';
|
||||
-- De prive-adressen die uit Beaufort meekomen verwijderen - alleen de zakelijke emailadressen nemen we over naar kenmerkveld Email (werk)
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk7 = NULL
|
||||
WHERE prs_kenmerk7 IS NOT NULL AND INSTR(UPPER(prs_kenmerk7),'@GO-KINDEROPVANG.NL')=0 ;
|
||||
|
||||
|
||||
FOR rec IN c_login
|
||||
LOOP
|
||||
FOR rec IN c_login
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Bestaande OSLOGIN uit Facilitor handhaven';
|
||||
|
||||
v_errorhint := 'Bestaande OSLOGIN uit Facilitor handhaven';
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_oslogin = rec.prs_perslid_oslogin
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_oslogin = rec.prs_perslid_oslogin
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
END;
|
||||
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
|
||||
v_errorhint := 'Login afleiden van emailadres (voor locatieleiders)';
|
||||
-- Voor de locatieleiders de oslogin vullen in geval nog niet gevuld in Facilitor (vanuit vorige cursor)
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_oslogin =
|
||||
UPPER((SUBSTR (prs_perslid_email,
|
||||
0,
|
||||
INSTR (prs_perslid_email, '@') - 1)))
|
||||
WHERE
|
||||
UPPER (prs_perslid_email) LIKE '%GO-KINDEROPVANG.NL'
|
||||
AND prs_perslid_email IS NOT NULL
|
||||
AND UPPER(prs_srtperslid_omschrijving) = 'LOCATIELEIDER'
|
||||
AND prs_perslid_oslogin IS NULL
|
||||
AND LENGTH((SUBSTR (prs_perslid_email,
|
||||
0,
|
||||
INSTR (prs_perslid_email, '@') - 1))) <=30 ;
|
||||
-- ACTIE KANTOORPERSONEEL: Ook voor die groep oslogin vullen...
|
||||
v_errorhint := 'Login afleiden van emailadres (voor locatieleiders)';
|
||||
|
||||
v_errorhint := 'Afdeling bepalen en vullen';
|
||||
-- Afdeling bepalen waar persoon onder komt te vallen. LET OP - Deze is voor GOKO niet altijd gevuld!? Oplossen door eerst te vullen met PERSONEELSNR en in Kenmerk5 de kostenplaats/afdeling
|
||||
-- Voor locatieleiders geldt dat deze altijd op organisatie 'OPVANG' moeten komen (onder dit organisatieonderdeel zitten op niveau 2 de team/afdelingen/kostenplaatsen)
|
||||
-- Voor de locatieleiders de oslogin vullen in geval nog niet gevuld in Facilitor (vanuit vorige cursor)
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_oslogin =
|
||||
UPPER (
|
||||
(SUBSTR (prs_perslid_email,
|
||||
0,
|
||||
INSTR (prs_perslid_email, '@') - 1)))
|
||||
WHERE UPPER (prs_perslid_email) LIKE '%GO-KINDEROPVANG.NL'
|
||||
AND prs_perslid_email IS NOT NULL
|
||||
AND UPPER (prs_srtperslid_omschrijving) = 'LOCATIELEIDER'
|
||||
AND prs_perslid_oslogin IS NULL
|
||||
AND LENGTH (
|
||||
(SUBSTR (prs_perslid_email,
|
||||
0,
|
||||
INSTR (prs_perslid_email, '@') - 1))) <=
|
||||
30;
|
||||
|
||||
v_errorhint := 'Afdeling bepalen en vullen';
|
||||
|
||||
-- Afdeling bepalen waar persoon onder komt te vallen. LET OP - Deze is voor GOKO niet altijd gevuld!? Oplossen door eerst te vullen met PERSONEELSNR en in Kenmerk5 de kostenplaats/afdeling
|
||||
-- Voor locatieleiders geldt dat deze altijd op organisatie 'OPVANG' moeten komen (onder dit organisatieonderdeel zitten op niveau 2 de team/afdelingen/kostenplaatsen)
|
||||
FOR rec IN c_afd
|
||||
LOOP
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Persoon aan Afdeling koppelen';
|
||||
|
||||
v_errorhint := 'Persoon aan Afdeling koppelen';
|
||||
|
||||
-- Als locatieleider dan afdeling altijd OPVANG (c_prs_afdeling_key_leid)
|
||||
IF UPPER(rec.prs_srtperslid_omschrijving) = 'LOCATIELEIDER'
|
||||
THEN
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam = (SELECT prs_afdeling_upper FROM prs_afdeling WHERE prs_afdeling_key = c_prs_afdeling_key_leid)
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
ELSE
|
||||
IF rec.prs_kenmerk5 IS NULL
|
||||
THEN
|
||||
|
||||
v_prs_afdeling_key := NULL ;
|
||||
|
||||
ELSE
|
||||
SELECT min(prs_afdeling_key)
|
||||
INTO v_prs_afdeling_key
|
||||
FROM prs_v_afdeling
|
||||
WHERE prs_afdeling_upper = UPPER(rec.prs_kenmerk5)
|
||||
AND prs_bedrijf_key = 21 -- bedrijf GOKO
|
||||
AND prs_afdeling_verwijder IS NULL ;
|
||||
|
||||
END IF;
|
||||
|
||||
-- Als afdeling uit beaufort (nog) niet bekend is in Facilitor dan op afdeling OVERIG zetten (c_prs_afdeling_key)
|
||||
IF v_prs_afdeling_key IS NULL THEN
|
||||
|
||||
-- Als locatieleider dan afdeling altijd OPVANG (c_prs_afdeling_key_leid)
|
||||
IF UPPER (rec.prs_srtperslid_omschrijving) = 'LOCATIELEIDER'
|
||||
THEN
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam = (SELECT prs_afdeling_upper FROM prs_afdeling WHERE prs_afdeling_key = c_prs_afdeling_key)
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
ELSE
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam = rec.prs_kenmerk5
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
v_errorhint := 'Locatie bepalen en vullen';
|
||||
-- Op basis van kostenplaats gaan we kijken of we de locatie en werkplekkoppeling kunnen maken
|
||||
FOR rec IN c_loc
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
v_errorhint := 'Persoon aan Locatie-Ruimte koppelen adhv de kostenplaats - ' || TO_CHAR(rec.fac_imp_file_index) ;
|
||||
v_alg_locatie_key := NULL;
|
||||
v_prs_kostenplaats_key := NULL;
|
||||
v_prs_afdeling_upper := NULL;
|
||||
v_alg_gebouw_key := NULL;
|
||||
v_alg_verdieping_key := NULL;
|
||||
v_alg_ruimte_key := NULL;
|
||||
|
||||
IF rec.prs_kenmerk5 IS NULL
|
||||
THEN
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk20 = 'Geen werkplekkoppeling'
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
ELSE
|
||||
|
||||
SELECT MAX(l.alg_locatie_key), MAX(kp.prs_kostenplaats_key)
|
||||
INTO v_alg_locatie_key, v_prs_kostenplaats_key
|
||||
FROM alg_locatie l,
|
||||
alg_onrgoedkenmerk kk,
|
||||
alg_kenmerk k,
|
||||
prs_kostenplaats kp,
|
||||
prs_afdeling a
|
||||
WHERE l.alg_locatie_key = kk.alg_onrgoed_key
|
||||
AND kk.alg_onrgoed_niveau = 'L'
|
||||
AND kk.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_key IN (1010, 1012, 1014, 1016, 1017) -- kenmerk_keys voor de kostenplaatsen KDV, BSO, PSZ, TSO en PSZ-2e
|
||||
AND fac.safe_to_number (kk.alg_onrgoedkenmerk_waarde) = kp.prs_kostenplaats_key
|
||||
AND kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||||
AND kp.prs_kostenplaats_verwijder IS NULL AND a.prs_afdeling_verwijder IS NULL
|
||||
AND kp.prs_kostenplaats_upper = UPPER(rec.prs_kenmerk5) ;
|
||||
|
||||
END IF;
|
||||
|
||||
IF v_alg_locatie_key IS NOT NULL THEN
|
||||
|
||||
-- Locatie_code ophalen
|
||||
SELECT alg_locatie_code
|
||||
INTO v_alg_locatie_code
|
||||
FROM alg_locatie
|
||||
WHERE alg_locatie_key = v_alg_locatie_key ;
|
||||
|
||||
-- Gebouw_key ophalen
|
||||
SELECT min(alg_gebouw_key)
|
||||
INTO v_alg_gebouw_key
|
||||
FROM alg_gebouw
|
||||
WHERE alg_locatie_key = v_alg_locatie_key
|
||||
AND alg_gebouw_verwijder IS NULL
|
||||
AND (TRUNC(alg_gebouw_vervaldatum) > TRUNC(sysdate) OR alg_gebouw_vervaldatum IS NULL ) ;
|
||||
|
||||
-- Om bij update dit kenmerkveld weg te kunnen schrijven naar kenmerkveld 'Default standplaats'
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk20 = (SELECT UPPER(alg_locatie_code) || ' - ' || alg_locatie_omschrijving FROM alg_locatie WHERE alg_locatie_key = v_alg_locatie_key)
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
IF v_alg_gebouw_key IS NOT NULL THEN
|
||||
|
||||
-- Gebouw_code ophalen
|
||||
SELECT alg_gebouw_code
|
||||
INTO v_alg_gebouw_code
|
||||
FROM alg_gebouw
|
||||
WHERE alg_gebouw_key = v_alg_gebouw_key ;
|
||||
|
||||
-- Verdiepings_key ophalen
|
||||
SELECT min(alg_verdieping_key)
|
||||
INTO v_alg_verdieping_key
|
||||
FROM alg_verdieping
|
||||
WHERE alg_gebouw_key = v_alg_gebouw_key
|
||||
AND alg_verdieping_verwijder IS NULL ;
|
||||
|
||||
END IF;
|
||||
|
||||
IF v_alg_verdieping_key IS NOT NULL THEN
|
||||
|
||||
-- Verdieping_volgnr ophalen
|
||||
SELECT alg_verdieping_volgnr
|
||||
INTO v_alg_verdieping_volgnr
|
||||
FROM alg_verdieping
|
||||
WHERE alg_verdieping_key = v_alg_verdieping_key ;
|
||||
|
||||
-- Ruimte_key ophalen
|
||||
SELECT min(alg_ruimte_key)
|
||||
INTO v_alg_ruimte_key
|
||||
FROM alg_ruimte
|
||||
WHERE alg_verdieping_key = v_alg_verdieping_key
|
||||
AND alg_ruimte_verwijder IS NULL ;
|
||||
|
||||
SET prs_afdeling_naam =
|
||||
(SELECT prs_afdeling_upper
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_key = c_prs_afdeling_key_leid)
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
ELSE
|
||||
IF rec.prs_kenmerk5 IS NULL
|
||||
THEN
|
||||
v_prs_afdeling_key := NULL;
|
||||
ELSE
|
||||
SELECT MIN (prs_afdeling_key)
|
||||
INTO v_prs_afdeling_key
|
||||
FROM prs_v_afdeling
|
||||
WHERE prs_afdeling_upper = UPPER (rec.prs_kenmerk5)
|
||||
AND prs_bedrijf_key = 21 -- bedrijf GOKO
|
||||
AND prs_afdeling_verwijder IS NULL;
|
||||
END IF;
|
||||
|
||||
IF v_alg_ruimte_key IS NOT NULL THEN
|
||||
-- Als afdeling uit beaufort (nog) niet bekend is in Facilitor dan op afdeling OVERIG zetten (c_prs_afdeling_key)
|
||||
IF v_prs_afdeling_key IS NULL
|
||||
THEN
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam =
|
||||
(SELECT prs_afdeling_upper
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_key = c_prs_afdeling_key)
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
ELSE
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam = rec.prs_kenmerk5
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
v_errorhint := 'Locatie bepalen en vullen';
|
||||
|
||||
-- Op basis van kostenplaats gaan we kijken of we de locatie en werkplekkoppeling kunnen maken
|
||||
FOR rec IN c_loc
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint :=
|
||||
'Persoon aan Locatie-Ruimte koppelen adhv de kostenplaats - '
|
||||
|| TO_CHAR (rec.fac_imp_file_index);
|
||||
v_alg_locatie_key := NULL;
|
||||
v_prs_kostenplaats_key := NULL;
|
||||
v_prs_afdeling_upper := NULL;
|
||||
v_alg_gebouw_key := NULL;
|
||||
v_alg_verdieping_key := NULL;
|
||||
v_alg_ruimte_key := NULL;
|
||||
|
||||
IF rec.prs_kenmerk5 IS NULL
|
||||
THEN
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk20 = 'Geen werkplekkoppeling'
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
ELSE
|
||||
SELECT MAX (l.alg_locatie_key), MAX (kp.prs_kostenplaats_key)
|
||||
INTO v_alg_locatie_key, v_prs_kostenplaats_key
|
||||
FROM alg_locatie l,
|
||||
alg_onrgoedkenmerk kk,
|
||||
alg_kenmerk k,
|
||||
prs_kostenplaats kp,
|
||||
prs_afdeling a
|
||||
WHERE l.alg_locatie_key = kk.alg_onrgoed_key
|
||||
AND kk.alg_onrgoed_niveau = 'L'
|
||||
AND kk.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_key IN (1010,
|
||||
1012,
|
||||
1014,
|
||||
1016,
|
||||
1017) -- kenmerk_keys voor de kostenplaatsen KDV, BSO, PSZ, TSO en PSZ-2e
|
||||
AND fac.safe_to_number (kk.alg_onrgoedkenmerk_waarde) =
|
||||
kp.prs_kostenplaats_key
|
||||
AND kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||||
AND kp.prs_kostenplaats_verwijder IS NULL
|
||||
AND a.prs_afdeling_verwijder IS NULL
|
||||
AND kp.prs_kostenplaats_upper =
|
||||
UPPER (rec.prs_kenmerk5);
|
||||
END IF;
|
||||
|
||||
IF v_alg_locatie_key IS NOT NULL
|
||||
THEN
|
||||
-- Locatie_code ophalen
|
||||
SELECT alg_locatie_code
|
||||
INTO v_alg_locatie_code
|
||||
FROM alg_locatie
|
||||
WHERE alg_locatie_key = v_alg_locatie_key;
|
||||
|
||||
-- Gebouw_key ophalen
|
||||
SELECT MIN (alg_gebouw_key)
|
||||
INTO v_alg_gebouw_key
|
||||
FROM alg_gebouw
|
||||
WHERE alg_locatie_key = v_alg_locatie_key
|
||||
AND alg_gebouw_verwijder IS NULL
|
||||
AND ( TRUNC (alg_gebouw_vervaldatum) >
|
||||
TRUNC (SYSDATE)
|
||||
OR alg_gebouw_vervaldatum IS NULL);
|
||||
|
||||
-- Om bij update dit kenmerkveld weg te kunnen schrijven naar kenmerkveld 'Default standplaats'
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk20 =
|
||||
(SELECT UPPER (alg_locatie_code)
|
||||
|| ' - '
|
||||
|| alg_locatie_omschrijving
|
||||
FROM alg_locatie
|
||||
WHERE alg_locatie_key = v_alg_locatie_key)
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
|
||||
IF v_alg_gebouw_key IS NOT NULL
|
||||
THEN
|
||||
-- Gebouw_code ophalen
|
||||
SELECT alg_gebouw_code
|
||||
INTO v_alg_gebouw_code
|
||||
FROM alg_gebouw
|
||||
WHERE alg_gebouw_key = v_alg_gebouw_key;
|
||||
|
||||
-- Verdiepings_key ophalen
|
||||
SELECT MIN (alg_verdieping_key)
|
||||
INTO v_alg_verdieping_key
|
||||
FROM alg_verdieping
|
||||
WHERE alg_gebouw_key = v_alg_gebouw_key
|
||||
AND alg_verdieping_verwijder IS NULL;
|
||||
END IF;
|
||||
|
||||
IF v_alg_verdieping_key IS NOT NULL
|
||||
THEN
|
||||
-- Verdieping_volgnr ophalen
|
||||
SELECT alg_verdieping_volgnr
|
||||
INTO v_alg_verdieping_volgnr
|
||||
FROM alg_verdieping
|
||||
WHERE alg_verdieping_key = v_alg_verdieping_key;
|
||||
|
||||
-- Ruimte_key ophalen
|
||||
SELECT MIN (alg_ruimte_key)
|
||||
INTO v_alg_ruimte_key
|
||||
FROM alg_ruimte
|
||||
WHERE alg_verdieping_key = v_alg_verdieping_key
|
||||
AND alg_ruimte_verwijder IS NULL;
|
||||
END IF;
|
||||
|
||||
IF v_alg_ruimte_key IS NOT NULL
|
||||
THEN
|
||||
-- Ruimte_nr ophalen
|
||||
SELECT alg_ruimte_nr
|
||||
INTO v_alg_ruimte_nr
|
||||
FROM alg_ruimte
|
||||
WHERE alg_ruimte_key = v_alg_ruimte_key ;
|
||||
|
||||
FROM alg_ruimte
|
||||
WHERE alg_ruimte_key = v_alg_ruimte_key;
|
||||
|
||||
-- Vullen vastgoed-keten in import-tabel
|
||||
UPDATE fac_imp_perslid
|
||||
SET alg_locatie_code = v_alg_locatie_code,
|
||||
SET alg_locatie_code = v_alg_locatie_code,
|
||||
alg_gebouw_code = v_alg_gebouw_code,
|
||||
alg_verdieping_volgnr = v_alg_verdieping_volgnr,
|
||||
alg_ruimte_nr = v_alg_ruimte_nr
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
END IF;
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
END IF;
|
||||
ELSE
|
||||
-- Geen Locatie/Vastgoedketen kunnen vinden
|
||||
|
||||
ELSE
|
||||
-- Geen Locatie/Vastgoedketen kunnen vinden
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk20 = 'Geen werkplekkoppeling'
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
END IF;
|
||||
|
||||
END;
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk20 = 'Geen werkplekkoppeling'
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
COMMIT;
|
||||
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);
|
||||
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 goko_import_perslid;
|
||||
/
|
||||
|
||||
@@ -856,6 +916,10 @@ IS
|
||||
-- Match bij GO KINDEROPVANG is Personeelsnummer.
|
||||
-- Geen acties tenzij het aantal records in de importtabel meer dan 100 medewerkers betreft.
|
||||
|
||||
|
||||
-- ACTIE KANTOORPERSONEEL - Al deze mensen moeten in de goede autorisatiegroep landen... INREGELEN
|
||||
---- cursor c_kantoor...
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user