HERO#86913 -- Implementatie Personen import vanuit AFAS
svn path=/Customer/trunk/; revision=68524
This commit is contained in:
339
HERO/HERO.sql
339
HERO/HERO.sql
@@ -1368,12 +1368,257 @@ BEGIN
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
-- EIND MJOB Taken
|
||||
-- EIND MJOB Taken
|
||||
-- Einde MJOB import op basis van OPrognose
|
||||
|
||||
-- Import AFAS personen
|
||||
|
||||
--"Roepnaam";"Voorletters";"Voorvoegsel";"Achternaam";"Persnr.";"Afdnr.";"Functie";"Email";"Mobile";"Telefoon";"Loginnaam";"KP";"Kostenplaats";"CL";"Cluster";"OE";"OE omschrijving"
|
||||
|
||||
CREATE OR REPLACE PROCEDURE HERO_IMPORT_AFAS_PERSONEN(p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR c1 IS
|
||||
SELECT fac_imp_csv_col01 prs_voornaam,
|
||||
fac_imp_csv_col02 prs_voorletters,
|
||||
fac_imp_csv_col03 prs_tussenvoegsel,
|
||||
fac_imp_csv_col04 prs_achternaam,
|
||||
fac_imp_csv_col05 prs_perslid_nr,
|
||||
fac_imp_csv_col06 prs_afdl_naam,
|
||||
fac_imp_csv_col07 prs_functie,
|
||||
fac_imp_csv_col08 prs_email,
|
||||
fac_imp_csv_col09 prs_telefoon,
|
||||
fac_imp_csv_col10 prs_loginnaam,
|
||||
fac_imp_csv_col11 prs_kostenplaats_code,
|
||||
fac_imp_csv_col12 prs_kostenplaats_omsc,
|
||||
fac_imp_csv_col13 prs_cluster_code,
|
||||
fac_imp_csv_col14 prs_cluster_naam,
|
||||
fac_imp_csv_col15 prs_OE_code,
|
||||
fac_imp_csv_col16 prs_OE_omsch
|
||||
FROM fac_imp_csv
|
||||
WHERE fac_import_key=p_import_key
|
||||
ORDER BY fac_imp_csv_key;
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_aanduiding VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count NUMBER;
|
||||
|
||||
v_afdelingnaam VARCHAR2(20);
|
||||
v_afd_count NUMBER;
|
||||
v_srtperslid_omschrijving VARCHAR2(60);
|
||||
|
||||
v_cluster_code_key NUMBER;
|
||||
v_cluster_omsch_key NUMBER;
|
||||
v_OE_Code_key NUMBER;
|
||||
v_OE_omsch_key NUMBER;
|
||||
|
||||
BEGIN
|
||||
v_count:=0;
|
||||
|
||||
DELETE FROM fac_imp_perslid;
|
||||
|
||||
BEGIN
|
||||
SELECT prs_kenmerk_key
|
||||
INTO v_cluster_code_key
|
||||
FROM prs_kenmerk
|
||||
WHERE prs_kenmerk_code='CLUSTER_CODE'
|
||||
AND prs_kenmerk_niveau='P'
|
||||
AND prs_kenmerk_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_cluster_code_key:=NULL;
|
||||
END;
|
||||
BEGIN
|
||||
SELECT prs_kenmerk_key
|
||||
INTO v_cluster_omsch_key
|
||||
FROM prs_kenmerk
|
||||
WHERE prs_kenmerk_code='CLUSTER_OMSCH'
|
||||
AND prs_kenmerk_niveau='P'
|
||||
AND prs_kenmerk_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_cluster_omsch_key:=NULL;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
SELECT prs_kenmerk_key
|
||||
INTO v_OE_Code_key
|
||||
FROM prs_kenmerk
|
||||
WHERE prs_kenmerk_code='OE_CODE'
|
||||
AND prs_kenmerk_niveau='P'
|
||||
AND prs_kenmerk_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_OE_code_key:=NULL;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
SELECT prs_kenmerk_key
|
||||
INTO v_OE_Omsch_key
|
||||
FROM prs_kenmerk
|
||||
WHERE prs_kenmerk_code='OE_OMSCH'
|
||||
AND prs_kenmerk_niveau='P'
|
||||
AND prs_kenmerk_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_OE_Omsch_key:=NULL;
|
||||
END;
|
||||
|
||||
FOR rec IN c1
|
||||
LOOP
|
||||
IF v_count>0 THEN
|
||||
-- ALs een per op niveau 9 zit heeft de
|
||||
|
||||
|
||||
-- controleren of de afdeling wel beschikbaar is anders onder Onbekend zetten
|
||||
SELECT COUNT(*)
|
||||
INTO v_afd_count
|
||||
FROM prs_afdeling
|
||||
WHERE UPPER(prs_afdeling_naam)=UPPER(rec.prs_afdl_naam)
|
||||
AND prs_afdeling_verwijder IS NULL;
|
||||
|
||||
IF v_afd_count=0 THEN
|
||||
v_afdelingnaam :='Onbekend';
|
||||
ELSE
|
||||
v_afdelingnaam := rec.prs_afdl_naam;
|
||||
END IF;
|
||||
|
||||
IF rec.prs_functie IS NULL
|
||||
THEN
|
||||
v_srtperslid_omschrijving:='Onbekend';
|
||||
ELSE
|
||||
v_srtperslid_omschrijving:= rec.prs_functie;
|
||||
END IF;
|
||||
|
||||
|
||||
INSERT INTO fac_imp_perslid(fac_import_key,
|
||||
prs_afdeling_naam,
|
||||
prs_perslid_voornaam,
|
||||
prs_perslid_voorletters,
|
||||
prs_perslid_tussenvoegsel,
|
||||
prs_perslid_naam,
|
||||
prs_perslid_email,
|
||||
prs_perslid_telefoonnr,
|
||||
prs_srtperslid_omschrijving,
|
||||
prs_perslid_oslogin,
|
||||
prs_perslid_nr,
|
||||
prs_kenmerk1,
|
||||
prs_kenmerk2,
|
||||
prs_kenmerk3,
|
||||
prs_kenmerk4)
|
||||
VALUES(p_import_key,
|
||||
v_afdelingnaam,
|
||||
rec.prs_voornaam,
|
||||
rec.prs_voorletters,
|
||||
rec.prs_tussenvoegsel,
|
||||
rec.prs_achternaam,
|
||||
rec.prs_email,
|
||||
rec.prs_telefoon,
|
||||
v_srtperslid_omschrijving,
|
||||
rec.prs_email,
|
||||
rec.prs_perslid_nr,
|
||||
DECODE(v_cluster_code_key, NULL, rec.prs_cluster_code, TO_CHAR(v_cluster_code_key) || '=' || SUBSTR(rec.prs_cluster_code, 1, 3980)),
|
||||
DECODE(v_cluster_omsch_key, NULL, rec.prs_cluster_naam, TO_CHAR(v_cluster_omsch_key) || '=' || SUBSTR(rec.prs_cluster_naam, 1, 3980)),
|
||||
DECODE(v_OE_code_key, NULL, rec.prs_OE_code, TO_CHAR(v_OE_code_key) || '=' || SUBSTR(rec.prs_OE_code, 1, 3980)),
|
||||
DECODE(v_OE_omsch_key, NULL, rec.prs_OE_omsch, TO_CHAR(v_OE_omsch_key) || '=' || SUBSTR(rec.prs_OE_omsch, 1, 3980))
|
||||
);
|
||||
|
||||
END IF;
|
||||
v_count:=v_count+1;
|
||||
END LOOP;
|
||||
DELETE FROM fac_imp_csv where fac_import_key=p_import_key;
|
||||
EXCEPTION
|
||||
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||||
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;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE HERO_UPDATE_AFAS_PERSONEN(p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR p_del
|
||||
IS
|
||||
SELECT p.prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND SUBSTR(p.prs_perslid_oslogin,0,1)<>'_'
|
||||
AND p.prs_perslid_nr NOT IN (SELECT prs_perslid_nr
|
||||
FROM fac_imp_perslid);
|
||||
|
||||
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_aanduiding VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
|
||||
v_date DATE;
|
||||
v_defaultgroep NUMBER:=1;
|
||||
v_count NUMBER;
|
||||
v_aanwezig NUMBER;
|
||||
BEGIN
|
||||
|
||||
-- Hebben we wel een gevuld bestand binnen gekregen
|
||||
SELECT COUNT(*)
|
||||
INTO v_count
|
||||
FROM fac_imp_perslid;
|
||||
|
||||
SELECT COUNT(*)+1 -- Zodat v_aanwezig nooit 0 kan zijn, 1 extra is voor de gebruik niet erg
|
||||
INTO v_aanwezig
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_nr IS NOT NULL
|
||||
AND p.prs_perslid_verwijder IS NULL;
|
||||
|
||||
|
||||
IF (v_count/v_aanwezig) > 0.85 -- we gaan uit van minimaal 85% aanwezig in import file
|
||||
THEN
|
||||
v_errormsg := 'Fout bij update van personen.';
|
||||
prs.update_perslid (p_import_key, 'NR', 'A', 1);
|
||||
|
||||
|
||||
v_errormsg := 'Fout bij verwijderen van personen.';
|
||||
FOR rec IN p_del
|
||||
LOOP
|
||||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||||
END LOOP;
|
||||
|
||||
|
||||
|
||||
COMMIT;
|
||||
|
||||
END IF;
|
||||
EXCEPTION
|
||||
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||||
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;
|
||||
/
|
||||
|
||||
--Eeinde Import Afas personen
|
||||
|
||||
|
||||
|
||||
-- EINDE IMPORT MJOB OPrognose Elementen
|
||||
--- EINDE IMPORTS -------
|
||||
|
||||
|
||||
@@ -1389,29 +1634,28 @@ CREATE OR REPLACE VIEW hero_v_personenlijst_loc
|
||||
)
|
||||
AS
|
||||
SELECT
|
||||
p.prs_perslid_key,
|
||||
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
||||
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
END
|
||||
naam,
|
||||
p.prs_perslid_nr,
|
||||
p.prs_perslid_email,
|
||||
p.prs_perslid_verwijder
|
||||
FROM
|
||||
prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_v_afdeling a,
|
||||
prs_bedrijf b
|
||||
WHERE
|
||||
p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_key = 41 -- bedrijfs_key HERO
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND sp.prs_srtperslid_key IN (81) --- CLUSTERMANAGER (key 61)
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
ORDER BY sp.prs_srtperslid_omschrijving, p.prs_perslid_voornaam, p.prs_perslid_naam
|
||||
;
|
||||
p.prs_perslid_key,
|
||||
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
||||
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
END
|
||||
naam,
|
||||
p.prs_perslid_nr,
|
||||
p.prs_perslid_email,
|
||||
p.prs_perslid_verwijder
|
||||
FROM prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_v_afdeling a,
|
||||
prs_bedrijf b
|
||||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_key = 61 -- bedrijfs_key HERO
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND sp.prs_srtperslid_key= 41 --- CLUSTERMANAGER (key A=81, P=41)
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
ORDER BY sp.prs_srtperslid_omschrijving,
|
||||
p.prs_perslid_voornaam,
|
||||
p.prs_perslid_naam;
|
||||
|
||||
-- Lijst van Regiomanagers (tbv domeinview)
|
||||
CREATE OR REPLACE VIEW HERO_V_REGIOMANAGERS
|
||||
@@ -1424,29 +1668,28 @@ CREATE OR REPLACE VIEW HERO_V_REGIOMANAGERS
|
||||
)
|
||||
AS
|
||||
SELECT
|
||||
p.prs_perslid_key,
|
||||
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
||||
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
END
|
||||
p.prs_perslid_key,
|
||||
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
||||
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
END
|
||||
naam,
|
||||
p.prs_perslid_nr,
|
||||
p.prs_perslid_email,
|
||||
p.prs_perslid_verwijder
|
||||
FROM
|
||||
prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_v_afdeling a,
|
||||
prs_bedrijf b
|
||||
WHERE
|
||||
p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_key = 41 -- bedrijfs_key HERO
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND sp.prs_srtperslid_key IN (83) --- REGIOMANAGER (key 63)
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
ORDER BY sp.prs_srtperslid_omschrijving, p.prs_perslid_voornaam, p.prs_perslid_naam
|
||||
;
|
||||
p.prs_perslid_nr,
|
||||
p.prs_perslid_email,
|
||||
p.prs_perslid_verwijder
|
||||
FROM prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_v_afdeling a,
|
||||
prs_bedrijf b
|
||||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_key = 61 -- bedrijfs_key HERO
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND sp.prs_srtperslid_key = 161 --- REGIOMANAGER (A=key 63 P=161)
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
ORDER BY sp.prs_srtperslid_omschrijving,
|
||||
p.prs_perslid_voornaam,
|
||||
p.prs_perslid_naam;
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
Reference in New Issue
Block a user