ARBO#56645 -- Aanpassen personenkoppeling ivm uitbreiding richting Human Capital Care

svn path=/Customer/trunk/; revision=45569
This commit is contained in:
Arthur Egberink
2020-01-24 14:04:23 +00:00
parent 9919b1b249
commit c80077e7f6

View File

@@ -1514,7 +1514,7 @@ AS
v_errorhint VARCHAR2 (200);
BEGIN
v_seq_of_columns := '0;0;0;0;0;0;5;11;0;10;'
v_seq_of_columns := '0;0;0;0;0;0;7;11;0;10;'
-- v_alg_locatie_code 1
-- v_alg_gebouw_code 2
-- v_alg_verdieping_volgnr 3
@@ -1593,21 +1593,20 @@ BEGIN
'TD');
UPDATE fac_imp_perslid
SET prs_afdeling_naam = prs_afdeling_naam || REPLACE(prs_kenmerk7, '-');
SET prs_afdeling_naam = prs_kenmerk7;
UPDATE fac_imp_perslid i
SET prs_perslid_email = COALESCE(i.prs_perslid_email, (SELECT prs_perslid_email
FROM prs_perslid p
WHERE i.prs_perslid_nr = p.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL));
AND p.prs_perslid_verwijder IS NULL))
WHERE i.prs_perslid_email IS NULL;
UPDATE fac_imp_perslid i
SET (prs_perslid_mobiel, prs_perslid_telefoonnr ) = (SELECT prs_perslid_mobiel, prs_perslid_telefoonnr
SET (prs_perslid_mobiel, prs_perslid_telefoonnr ) = (SELECT MAX(prs_perslid_mobiel), MAX(prs_perslid_telefoonnr)
FROM prs_perslid p
WHERE i.prs_perslid_nr = p.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL);
END;
/
@@ -1617,17 +1616,17 @@ IS
CURSOR c IS
SELECT DISTINCT prs_kenmerk1 bedrijf_naam,
prs_kenmerk2 afdeling_oms1,
prs_kenmerk4 afdeling_oms2,
prs_kenmerk5 afdeling_oms3,
prs_kenmerk6 kostenplaats_id,
prs_kenmerk9 afdeling_naam,
prs_kenmerk7 kostenplaats_nr
FROM fac_imp_perslid
prs_kenmerk7 kostenplaats_nr,
prs_kenmerk8 kostenplaats_oms,
(SELECT count(*)
FROM fac_imp_perslid i2
WHERE i2.prs_kenmerk2 = i.prs_kenmerk2
AND i2.prs_kenmerk7 = i.prs_kenmerk7) aantal
FROM fac_imp_perslid i
ORDER BY prs_kenmerk1,
prs_kenmerk2,
prs_kenmerk4,
prs_kenmerk5,
prs_kenmerk6;
prs_kenmerk7,
aantal desc,
prs_kenmerk2;
CURSOR c_upd IS
SELECT i.prs_perslid_key, prs_kenmerk10 alt_email
@@ -1650,9 +1649,8 @@ IS
v_bedrijf_key NUMBER (10);
v_afdeling_key1 NUMBER (10);
v_afdeling_key2 NUMBER (10);
v_afdeling_key3 NUMBER (10);
v_afdeling_key4 NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_kpn_nr_prev VARCHAR2 (20);
v_aanduiding VARCHAR2 (100);
v_errorhint VARCHAR2 (1000);
@@ -1663,6 +1661,7 @@ IS
BEGIN
v_aanduiding := '';
v_errorhint := 'Toevoegen kostenplaatsen';
v_kpn_nr_prev := 'QueQuLeQue';
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
@@ -1707,182 +1706,86 @@ BEGIN
FOR rec IN c
LOOP
v_aanduiding := rec.afdeling_naam;
BEGIN
v_errorhint := 'Zoek bedrijf';
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM prs_bedrijf b
WHERE rec.bedrijf_naam = b.prs_bedrijf_naam
AND prs_bedrijf_intern = 1
AND prs_bedrijf_verwijder IS NULL;
v_errorhint := 'Zoek kostenplaats';
SELECT prs_kostenplaats_key
INTO v_kostenplaats_key
FROM prs_kostenplaats k
WHERE rec.kostenplaats_nr = k.prs_kostenplaats_nr
AND k.prs_kostenplaats_verwijder IS NULL;
v_errorhint := 'Zoek afdeling1';
v_aanduiding := rec.bedrijf_naam || '-' || rec.afdeling_oms1 || '-' || rec.kostenplaats_nr;
IF v_kpn_nr_prev <> rec.kostenplaats_nr
THEN
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key1
FROM prs_v_afdeling a
WHERE a.prs_afdeling_omschrijving = rec.afdeling_oms1
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 1
AND a.prs_bedrijf_key = v_bedrijf_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
v_errorhint := 'Zoek bedrijf';
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM prs_bedrijf b
WHERE rec.bedrijf_naam = b.prs_bedrijf_naam
AND prs_bedrijf_intern = 1
AND prs_bedrijf_verwijder IS NULL;
v_errorhint := 'Zoek kostenplaats';
SELECT prs_kostenplaats_key
INTO v_kostenplaats_key
FROM prs_kostenplaats k
WHERE rec.kostenplaats_nr = k.prs_kostenplaats_nr
AND k.prs_kostenplaats_verwijder IS NULL;
v_errorhint := 'Zoek afdeling1';
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key1
FROM DUAL;
FROM prs_v_afdeling a
WHERE a.prs_afdeling_omschrijving = rec.afdeling_oms1
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 1
AND a.prs_bedrijf_key = v_bedrijf_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
INTO v_afdeling_key1
FROM DUAL;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_bedrijf_key)
VALUES (v_afdeling_key1,
v_afdeling_key1,
rec.afdeling_oms1,
v_bedrijf_key);
END;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_bedrijf_key)
VALUES (v_afdeling_key1,
v_afdeling_key1,
rec.afdeling_oms1,
v_bedrijf_key);
END;
v_errorhint := 'Zoek afdeling2';
v_errorhint := 'Zoek afdeling2';
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key2
FROM prs_v_afdeling a
WHERE a.prs_afdeling_omschrijving = rec.afdeling_oms2
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 2
AND a.prs_afdeling_parentkey = v_afdeling_key1;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key2
FROM DUAL;
FROM prs_v_afdeling a
WHERE a.prs_afdeling_upper = UPPER(rec.kostenplaats_nr)
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 2
AND a.prs_afdeling_parentkey = v_afdeling_key1;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
INTO v_afdeling_key2
FROM DUAL;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_afdeling_parentkey)
VALUES (v_afdeling_key2,
v_afdeling_key2,
rec.afdeling_oms2,
v_afdeling_key1);
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_afdeling_parentkey,
prs_kostenplaats_key)
VALUES (v_afdeling_key2,
UPPER(rec.kostenplaats_nr),
rec.kostenplaats_oms,
v_afdeling_key1,
v_kostenplaats_key);
END;
END;
v_errorhint := 'Zoek afdeling3';
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key3
FROM prs_v_afdeling a
WHERE a.prs_afdeling_upper = rec.afdeling_naam
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 3
AND a.prs_afdeling_parentkey = v_afdeling_key2;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
INTO v_afdeling_key3
FROM DUAL;
v_errorhint :=
'Voeg afdeling3 toe '
|| v_afdeling_key3
|| '-'
|| rec.afdeling_naam
|| '-'
|| rec.afdeling_oms3
|| '-'
|| v_afdeling_key2;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_afdeling_parentkey)
VALUES (v_afdeling_key3,
rec.afdeling_naam,
rec.afdeling_oms3,
v_afdeling_key2);
END;
v_errorhint := 'Zoek afdeling4';
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key4
FROM prs_v_afdeling a
WHERE a.prs_afdeling_upper =
rec.afdeling_naam || REPLACE(rec.kostenplaats_nr,'-')
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
SELECT prs_s_prs_afdeling_key.NEXTVAL
INTO v_afdeling_key4
FROM DUAL;
v_errorhint :=
'Voeg afdeling4 toe '
|| v_afdeling_key4
|| '-'
|| rec.afdeling_naam || REPLACE(rec.kostenplaats_nr,'-')
|| '-'
|| rec.afdeling_oms3
|| '-'
|| v_afdeling_key3;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_kostenplaats_key,
prs_afdeling_parentkey)
VALUES (
v_afdeling_key4,
rec.afdeling_naam
|| REPLACE(rec.kostenplaats_nr,'-'),
rec.afdeling_oms3,
v_kostenplaats_key,
v_afdeling_key3);
END;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
END;
v_kpn_nr_prev := rec.kostenplaats_nr;
END IF;
END LOOP;
SELECT COUNT(*)