ARBO#56645 -- Aanpassen personenkoppeling ivm uitbreiding richting Human Capital Care
svn path=/Customer/trunk/; revision=45312
This commit is contained in:
160
ARBO/arbo.sql
160
ARBO/arbo.sql
@@ -1644,6 +1644,21 @@ IS
|
||||
prs_kenmerk5,
|
||||
prs_kenmerk6;
|
||||
|
||||
CURSOR c_upd IS
|
||||
SELECT i.prs_perslid_key, prs_kenmerk10 alt_email
|
||||
FROM fac_imp_perslid i, prs_perslid p
|
||||
WHERE i.prs_perslid_key = p.prs_perslid_key
|
||||
AND prs_kenmerk10 IS NOT NULL;
|
||||
|
||||
CURSOR c_del IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, p.prs_perslid_oslogin
|
||||
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||||
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
||||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_perslid_nr IS NOT NULL
|
||||
AND i.prs_perslid_nr IS NULL
|
||||
AND p.prs_perslid_verwijder IS NULL;
|
||||
|
||||
v_bedrijf_key NUMBER (10);
|
||||
v_afdeling_key1 NUMBER (10);
|
||||
v_afdeling_key2 NUMBER (10);
|
||||
@@ -1654,6 +1669,7 @@ IS
|
||||
v_aanduiding VARCHAR2 (100);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_count NUMBER;
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
@@ -1788,6 +1804,7 @@ BEGIN
|
||||
AND prs_afdeling_verwijder IS NULL
|
||||
AND a.niveau = 3
|
||||
AND a.prs_afdeling_parentkey = v_afdeling_key2;
|
||||
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
@@ -1826,6 +1843,12 @@ BEGIN
|
||||
AND prs_afdeling_verwijder IS NULL
|
||||
AND a.niveau = 4
|
||||
AND a.prs_afdeling_parentkey = v_afdeling_key3;
|
||||
|
||||
UPDATE prs_afdeling a
|
||||
SET a.prs_afdeling_omschrijving = rec.afdeling_oms3,
|
||||
a.prs_kostenplaats_key = v_kostenplaats_key
|
||||
WHERE a.prs_afdeling_key = v_afdeling_key4;
|
||||
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
@@ -1855,9 +1878,7 @@ BEGIN
|
||||
rec.afdeling_naam
|
||||
|| '-'
|
||||
|| rec.kostenplaats_id,
|
||||
rec.kostenplaats_nr
|
||||
|| '/'
|
||||
|| rec.afdeling_oms3,
|
||||
rec.afdeling_oms3,
|
||||
v_kostenplaats_key,
|
||||
v_afdeling_key3);
|
||||
END;
|
||||
@@ -1879,8 +1900,41 @@ BEGIN
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
SELECT COUNT(*)
|
||||
INTO v_count
|
||||
FROM fac_imp_perslid;
|
||||
|
||||
IF v_count > 500
|
||||
THEN
|
||||
-- Voordat we gaan importeren gaan we op zoek of we nog mensen moeten verwijderen die niet in de import voorkomen.
|
||||
-- Nu komt het ook regelmatig voor dat mensen een ander personeelsnummer krijgen terwijl ze de login behouden. Deze
|
||||
-- mensen proberen we om te hangen en het personeelsnummer aan te passen.
|
||||
|
||||
FOR rec IN c_del LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Verwijderen persoon: ' || rec.prs_perslid_key || '-' || rec.prs_perslid_nr || '-' || rec.prs_perslid_oslogin;
|
||||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||||
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;
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||||
|
||||
v_errorhint := 'Update personen';
|
||||
FOR rec IN c_upd LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Update persoon: ' || rec.prs_perslid_key || '-' || rec.alt_email;
|
||||
PRS.upsertkenmerk (1020, rec.prs_perslid_key, rec.alt_email);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
-- Nu gaan we proberen de afdelingen op te ruimen
|
||||
BEGIN
|
||||
v_errorhint := 'Opschonen afdeling niveau 4';
|
||||
@@ -1889,18 +1943,23 @@ BEGIN
|
||||
SET prs_afdeling_verwijder = SYSDATE
|
||||
WHERE prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom a
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = 4
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
a.prs_afdeling_key)
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
a.prs_afdeling_key)
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key)
|
||||
AND prs_afdeling_verwijder IS NULL);
|
||||
|
||||
v_errorhint := 'Opschonen afdeling niveau 3';
|
||||
@@ -1908,70 +1967,75 @@ BEGIN
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE
|
||||
WHERE prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key3
|
||||
FROM ( SELECT prs_afdeling_key3, COUNT (*) aantal
|
||||
FROM prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b,
|
||||
prs_afdeling a4
|
||||
WHERE ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND ab.prs_afdeling_key4 =
|
||||
a4.prs_afdeling_key
|
||||
AND b.prs_bedrijf_naam <> 'Extern'
|
||||
AND a4.prs_afdeling_verwijder IS NULL
|
||||
GROUP BY prs_afdeling_key3)
|
||||
WHERE aantal = 1 AND prs_afdeling_verwijder IS NULL);
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = 3
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key)
|
||||
AND prs_afdeling_verwijder IS NULL);
|
||||
|
||||
v_errorhint := 'Opschonen afdeling niveau 2';
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE
|
||||
WHERE prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key2
|
||||
FROM ( SELECT prs_afdeling_key2, COUNT (*) aantal
|
||||
FROM prs_v_aanwezigafdeling_boom ab,
|
||||
prs_bedrijf b
|
||||
WHERE ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_naam <> 'Extern'
|
||||
GROUP BY prs_afdeling_key2)
|
||||
WHERE aantal = 1
|
||||
AND prs_afdeling_verwijder IS NULL
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = 2
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
prs_afdeling_key2)
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
prs_afdeling_key2
|
||||
AND prs_perslid_verwijder IS NULL));
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key)
|
||||
AND prs_afdeling_verwijder IS NULL);
|
||||
|
||||
v_errorhint := 'Opschonen afdeling niveau 1';
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE
|
||||
WHERE prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key1
|
||||
FROM ( SELECT prs_afdeling_key1, COUNT (*) aantal
|
||||
FROM prs_v_aanwezigafdeling_boom ab,
|
||||
prs_bedrijf b
|
||||
WHERE ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_naam <> 'Extern'
|
||||
GROUP BY prs_afdeling_key1)
|
||||
WHERE aantal = 1
|
||||
AND prs_afdeling_verwijder IS NULL
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = 1
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
prs_afdeling_key1)
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
prs_afdeling_key1
|
||||
AND prs_perslid_verwijder IS NULL));
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key)
|
||||
AND prs_afdeling_verwijder IS NULL);
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
|
||||
Reference in New Issue
Block a user