HPJI#36139 script import persoonsgegevens: vertraging en mobiele nummer toevoegen
svn path=/Customer/trunk/; revision=29401
This commit is contained in:
162
HPJI/hpji.sql
162
HPJI/hpji.sql
@@ -249,6 +249,7 @@ IS
|
||||
v_alg_locatie_oms VARCHAR2 (256); -- A30
|
||||
v_alg_ruimte_nr VARCHAR2 (256); -- A10
|
||||
v_prs_perslid_telefoonnr VARCHAR2 (256);
|
||||
v_prs_perslid_mobiel VARCHAR2 (256);
|
||||
v_prs_perslid_email VARCHAR2 (256);
|
||||
v_prs_perslid_ingangsdatum VARCHAR2 (256);
|
||||
v_prs_perslid_einddatum VARCHAR2 (256);
|
||||
@@ -279,60 +280,43 @@ BEGIN
|
||||
v_ongeldig := 0;
|
||||
-- Lees alle veldwaarden
|
||||
-- 01
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_prs_perslid_oslogin);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
||||
-- 02
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
||||
-- 03
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_prs_perslid_tussenvoegsel);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
|
||||
-- 04
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_prs_perslid_voorletters);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voorletters);
|
||||
-- 05
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_prs_perslid_voornaam);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam);
|
||||
-- 06
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
|
||||
-- 07
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
||||
-- 08
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_prs_srtperslid_omschrijving);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
|
||||
-- 09
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_oms);
|
||||
-- 10
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_ruimte_nr);
|
||||
-- 11
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_prs_perslid_telefoonnr);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
|
||||
-- 12
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
|
||||
-- 13
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_prs_perslid_ingangsdatum);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
||||
-- 14
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_prs_perslid_einddatum);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_ingangsdatum);
|
||||
-- 15
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_domain);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_einddatum);
|
||||
-- 16
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_domain);
|
||||
--
|
||||
v_aanduiding := '[' || v_prs_perslid_oslogin
|
||||
|| '|' || v_prs_perslid_naam
|
||||
|| '|' || v_prs_perslid_tussenvoegsel
|
||||
|| '|' || v_prs_perslid_voornaam
|
||||
|| '|' || v_prs_perslid_nr
|
||||
|| '|' || v_domain
|
||||
|| '] ';
|
||||
|
||||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||||
@@ -353,6 +337,7 @@ BEGIN
|
||||
AND UPPER (v_alg_locatie_oms) = 'LOCATIE'
|
||||
AND UPPER (v_alg_ruimte_nr) = 'RUIMTE'
|
||||
AND UPPER (v_prs_perslid_telefoonnr) = 'TELEFOON'
|
||||
AND UPPER (v_prs_perslid_mobiel) = 'MOBIEL'
|
||||
AND UPPER (v_prs_perslid_email) = 'EMAIL'
|
||||
AND UPPER (v_prs_perslid_ingangsdatum) = 'DATUM IN DIENST'
|
||||
AND UPPER (v_prs_perslid_einddatum) = 'DATUM UIT DIENST'
|
||||
@@ -366,6 +351,26 @@ BEGIN
|
||||
THEN
|
||||
v_count_tot := v_count_tot + 1;
|
||||
-- Controleer alle veldwaarden
|
||||
|
||||
-- HPJI#36139: de domain-kolom is tijdelijk gebruikt toen voor Poortje en Elker
|
||||
-- aparte importbestanden werden aangeleverd. Nu staat daarin altijd 'JHNN' en is
|
||||
-- niet meer te herleiden naar een prs_bedrijf. We checken er nog op om te
|
||||
-- voorkomen dat een importbestand 'oude stijl' wordt ingelezen, maar we
|
||||
-- importeren het niet meer.
|
||||
v_errorhint := 'Ongeldig domain';
|
||||
v_domain := UPPER( SUBSTR( TRIM(v_domain), 1, 30) );
|
||||
|
||||
IF ('x'||v_domain != 'xJHNN')
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || 'ongeldig domain ['||v_domain||']',
|
||||
'Regel wordt overgeslagen!');
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige loginnaam';
|
||||
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
|
||||
|
||||
@@ -613,6 +618,25 @@ BEGIN
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldig mobiel nummer';
|
||||
v_prs_perslid_mobiel := TRIM (v_prs_perslid_mobiel);
|
||||
|
||||
IF LENGTH (v_prs_perslid_mobiel) > 15
|
||||
THEN
|
||||
v_prs_perslid_mobiel :=
|
||||
SUBSTR (v_prs_perslid_mobiel, 1, 15);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Mobiel nummer te lang',
|
||||
'Mobiel nummer wordt afgebroken tot ['
|
||||
|| v_prs_perslid_mobiel
|
||||
|| ']'
|
||||
);
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldig e-mailadres';
|
||||
v_prs_perslid_email := TRIM (v_prs_perslid_email);
|
||||
@@ -694,21 +718,6 @@ BEGIN
|
||||
ELSE
|
||||
v_prs_perslid_eind_date := NULL;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldig domain';
|
||||
v_domain := UPPER( SUBSTR( TRIM(v_domain), 1, 30) );
|
||||
|
||||
IF ( 'x'||v_domain != 'xELKER'
|
||||
AND 'x'||v_domain != 'xPOORTJE')
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || 'ongeldig domain',
|
||||
'Regel wordt overgeslagen!');
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
@@ -729,10 +738,10 @@ BEGIN
|
||||
alg_locatie,
|
||||
alg_ruimte_nr,
|
||||
prs_perslid_telefoonnr,
|
||||
prs_perslid_mobiel,
|
||||
prs_perslid_email,
|
||||
prs_perslid_ingangsdatum,
|
||||
prs_perslid_einddatum,
|
||||
prs_bedrijf_key)
|
||||
prs_perslid_einddatum)
|
||||
VALUES (SYSDATE,
|
||||
v_prs_perslid_oslogin,
|
||||
v_prs_perslid_naam,
|
||||
@@ -745,12 +754,10 @@ BEGIN
|
||||
v_alg_locatie_oms,
|
||||
v_alg_ruimte_nr,
|
||||
v_prs_perslid_telefoonnr,
|
||||
v_prs_perslid_mobiel,
|
||||
v_prs_perslid_email,
|
||||
v_prs_perslid_ingangs_date,
|
||||
v_prs_perslid_eind_date,
|
||||
DECODE(v_domain,
|
||||
'POORTJE', 21,
|
||||
'ELKER', 28580) );
|
||||
v_prs_perslid_eind_date);
|
||||
|
||||
COMMIT;
|
||||
v_count_import := v_count_import + 1;
|
||||
@@ -854,28 +861,16 @@ IS
|
||||
|
||||
-- Let op! Personen die niet meer in dienst zijn -> niet in hpji_imp_prs!
|
||||
-- Dubbele oslogins? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
|
||||
-- HPJI#32107: Voor Poortje en Elker worden voortaan aparte bestanden aangeleverd.
|
||||
-- Je wilt geen Poortje-mensen verwijderen met een Elker-importbestand. Daarom alleen
|
||||
-- mensen beschouwen binnen het bedrijf (domain, laatste kolom in import) dat in het
|
||||
-- importbestand voorkomt. Daarbij meteen zorgen dat we ook importbestanden met beide
|
||||
-- domains ondersteunen (mochten ze er ooit <20><>n bestand van maken)
|
||||
CURSOR cdelprs
|
||||
IS
|
||||
SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_oslogin,
|
||||
p.prs_perslid_naam,
|
||||
p.prs_perslid_voornaam,
|
||||
ab.prs_bedrijf_key,
|
||||
b.prs_bedrijf_naam
|
||||
FROM prs_v_aanwezigperslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b
|
||||
p.prs_perslid_voornaam
|
||||
FROM prs_v_aanwezigperslid p
|
||||
WHERE (p.prs_perslid_oslogin IS NULL
|
||||
OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\')
|
||||
AND p.prs_perslid_oslogin2 IS NULL
|
||||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND b.prs_bedrijf_key = ab.prs_bedrijf_key
|
||||
AND ab.prs_bedrijf_key IN (SELECT DISTINCT prs_bedrijf_key FROM hpji_imp_prs)
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM hpji_imp_prs ip
|
||||
@@ -884,17 +879,10 @@ IS
|
||||
SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_oslogin,
|
||||
p.prs_perslid_naam,
|
||||
p.prs_perslid_voornaam,
|
||||
ab.prs_bedrijf_key,
|
||||
b.prs_bedrijf_naam
|
||||
FROM prs_v_aanwezigperslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b
|
||||
p.prs_perslid_voornaam
|
||||
FROM prs_v_aanwezigperslid p
|
||||
WHERE p.prs_perslid_oslogin IS NULL
|
||||
AND p.prs_perslid_naam LIKE 'INACTIEF:%'
|
||||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND b.prs_bedrijf_key = ab.prs_bedrijf_key
|
||||
AND ab.prs_bedrijf_key IN (SELECT DISTINCT prs_bedrijf_key FROM hpji_imp_prs)
|
||||
AND NOT EXISTS (SELECT 1
|
||||
FROM prs_v_verplichting_keys pv
|
||||
WHERE p.prs_perslid_key = pv.prs_perslid_key);
|
||||
@@ -913,10 +901,8 @@ IS
|
||||
-- Dubbele oslogins? Dan wordt slechts 1 set persoongegevens toegevoegd!
|
||||
CURSOR cperslid
|
||||
IS
|
||||
SELECT ip.*, prs_bedrijf_naam
|
||||
FROM hpji_imp_prs ip,
|
||||
prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_key IN (SELECT DISTINCT prs_bedrijf_key FROM hpji_imp_prs);
|
||||
SELECT *
|
||||
FROM hpji_imp_prs;
|
||||
|
||||
-- Let op! Personen die niet meer in dienst zijn -> niet in hpji_imp_prs!
|
||||
-- Dubbele oslogins? Dan krijgt iemand mogelijk de verkeerde plaats!
|
||||
@@ -969,22 +955,16 @@ BEGIN
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count_prs_import
|
||||
FROM prs_v_aanwezigperslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
hpji_imp_prs ip
|
||||
WHERE p.prs_perslid_oslogin IS NOT NULL
|
||||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ip.prs_bedrijf_key = ab.prs_bedrijf_key
|
||||
AND UPPER (p.prs_perslid_oslogin) = UPPER (ip.prs_perslid_oslogin)
|
||||
AND (ip.imp_datum + 0.01) > SYSDATE;
|
||||
|
||||
-- Bepaal huidig aantal actieve personen in Facilitor.
|
||||
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
||||
INTO v_count_prs_actual
|
||||
FROM prs_v_aanwezigperslid p,
|
||||
prs_v_afdeling_boom ab
|
||||
WHERE prs_perslid_oslogin IS NOT NULL
|
||||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key IN (SELECT DISTINCT prs_bedrijf_key FROM hpji_imp_prs);
|
||||
FROM prs_v_aanwezigperslid p
|
||||
WHERE prs_perslid_oslogin IS NOT NULL;
|
||||
|
||||
IF ( (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
|
||||
(100 - c_max_delta_percentage)))
|
||||
@@ -1015,8 +995,7 @@ BEGIN
|
||||
v_aanduiding := recdelprs.prs_perslid_oslogin
|
||||
|| '|' || recdelprs.prs_perslid_naam
|
||||
|| '|' || recdelprs.prs_perslid_voornaam
|
||||
|| '(' || recdelprs.prs_bedrijf_naam
|
||||
|| ') - ';
|
||||
|| ' - ';
|
||||
v_errorhint := 'Fout bij bepalen verplichtingen';
|
||||
|
||||
-- Heeft persoon actuele/toekomstige verplichtingen?
|
||||
@@ -1198,8 +1177,7 @@ BEGIN
|
||||
v_aanduiding := recperslid.prs_perslid_oslogin
|
||||
|| '|' || recperslid.prs_perslid_naam
|
||||
|| '|' || recperslid.prs_perslid_voornaam
|
||||
|| '(' || recperslid.prs_bedrijf_naam
|
||||
|| ') - ';
|
||||
|| ' - ';
|
||||
v_errorhint :=
|
||||
'Fout bij bepalen functie ['
|
||||
|| recperslid.prs_srtperslid_omschrijving
|
||||
@@ -1235,7 +1213,7 @@ BEGIN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errorhint,
|
||||
'Kan persoon niet 1-duidig bepalen!');
|
||||
'Kan persoon niet eenduidig bepalen!');
|
||||
COMMIT;
|
||||
ELSE
|
||||
IF v_count = 0
|
||||
@@ -1406,7 +1384,7 @@ BEGIN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
v_aanduiding || v_errorhint,
|
||||
'Kan ruimte niet 1-duidig bepalen!');
|
||||
'Kan ruimte niet eenduidig bepalen!');
|
||||
COMMIT;
|
||||
ELSE
|
||||
IF v_count = 1
|
||||
@@ -3267,7 +3245,7 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
BEGIN fac.registercustversion('HPJI', 11); END;
|
||||
BEGIN fac.registercustversion('HPJI', 12); END;
|
||||
/
|
||||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user