PCHX#61916 -- Bedrijven zonder technisch adres ook synchroniseren en logging toevoegen

svn path=/Customer/trunk/; revision=46345
This commit is contained in:
Arthur Egberink
2020-03-24 08:44:46 +00:00
parent 655caef14c
commit 2b295e0b4d

View File

@@ -3832,7 +3832,8 @@ AS
prs_bedrijfadres_locksecret,
prs_bedrijfadres_lockexpire
FROM pchx_imp_bedrijf_gegevens
WHERE prs_bedrijf_key = c_bedrijf_key;
WHERE prs_bedrijf_key = c_bedrijf_key
AND prs_bedrijfadres_type IS NOT NULL;
v_leverancier_nr prs_bedrijf.prs_leverancier_nr%TYPE;
@@ -4163,50 +4164,69 @@ BEGIN
FOR rec IN c_det(rec1.prs_bedrijf_key)
LOOP
BEGIN
v_errorhint := 'Zoek contactpersoon';
SELECT prs_contactpersoon_key
INTO v_contactpersoon_key
FROM prs_contactpersoon
WHERE prs_bedrijf_key = rec1.prs_bedrijf_key
AND prs_contactpersoon_naam = rec.prs_contactpersoon_naam
AND COALESCE(prs_contactpersoon_voornaam, 'Onbekend') = COALESCE(rec.prs_contactpersoon_voornaam, 'Onbekend');
BEGIN
v_errorhint := 'Zoek contactpersoon';
SELECT prs_contactpersoon_key
INTO v_contactpersoon_key
FROM prs_contactpersoon
WHERE prs_bedrijf_key = rec1.prs_bedrijf_key
AND prs_contactpersoon_naam = rec.prs_contactpersoon_naam
AND COALESCE(prs_contactpersoon_voornaam, 'Onbekend') = COALESCE(rec.prs_contactpersoon_voornaam, 'Onbekend');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint := 'Voeg contactpersoon toe';
INSERT INTO prs_contactpersoon (prs_contactpersoon_naam, prs_contactpersoon_voornaam, prs_bedrijf_key)
VALUES (rec.prs_contactpersoon_naam, rec.prs_contactpersoon_voornaam, rec.prs_bedrijf_key)
RETURNING prs_contactpersoon_key
INTO v_contactpersoon_key;
END;
v_errorhint := 'Pas contactpersoon aan';
UPDATE prs_contactpersoon
SET prs_contactpersoon_tussenv = rec.prs_contactpersoon_tussenv,
prs_contactpersoon_voorletters = rec.prs_contactpersoon_voorletters,
prs_contactpersoon_aanhef = rec.prs_contactpersoon_aanhef,
prs_contactpersoon_titel = rec.prs_contactpersoon_titel,
prs_contactpersoon_telefoon_1 = rec.prs_contactpersoon_telefoon_1,
prs_contactpersoon_telefoon_2 = rec.prs_contactpersoon_telefoon_2,
prs_contactpersoon_fax = rec.prs_contactpersoon_fax,
prs_contactpersoon_email = rec.prs_contactpersoon_email,
prs_contactpersoon_functie = rec.prs_contactpersoon_functie,
prs_contactpersoon_opmerking = rec.prs_contactpersoon_opmerking
WHERE prs_contactpersoon_key = v_contactpersoon_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint := 'Voeg contactpersoon toe';
INSERT INTO prs_contactpersoon (prs_contactpersoon_naam, prs_contactpersoon_voornaam, prs_bedrijf_key)
VALUES (rec.prs_contactpersoon_naam, rec.prs_contactpersoon_voornaam, rec.prs_bedrijf_key)
RETURNING prs_contactpersoon_key
INTO v_contactpersoon_key;
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',
rec.prs_bedrijf_naam || ' - ' || rec.prs_contactpersoon_naam || ', ' || rec.prs_contactpersoon_voornaam || ' - ' ||
SUBSTR (v_errormsg, 1, 1000),
v_errorhint);
END;
v_errorhint := 'Pas contactpersoon aan';
UPDATE prs_contactpersoon
SET prs_contactpersoon_tussenv = rec.prs_contactpersoon_tussenv,
prs_contactpersoon_voorletters = rec.prs_contactpersoon_voorletters,
prs_contactpersoon_aanhef = rec.prs_contactpersoon_aanhef,
prs_contactpersoon_titel = rec.prs_contactpersoon_titel,
prs_contactpersoon_telefoon_1 = rec.prs_contactpersoon_telefoon_1,
prs_contactpersoon_telefoon_2 = rec.prs_contactpersoon_telefoon_2,
prs_contactpersoon_fax = rec.prs_contactpersoon_fax,
prs_contactpersoon_email = rec.prs_contactpersoon_email,
prs_contactpersoon_functie = rec.prs_contactpersoon_functie,
prs_contactpersoon_opmerking = rec.prs_contactpersoon_opmerking
WHERE prs_contactpersoon_key = v_contactpersoon_key;
END LOOP;
END LOOP;
v_errorhint := 'Verwijder contactpersonen';
UPDATE prs_contactpersoon cp
SET cp.prs_contactpersoon_verwijder = SYSDATE
WHERE cp.prs_bedrijf_key = rec1.prs_bedrijf_key
AND NOT EXISTS (SELECT prs_contactpersoon_key
FROM pchx_imp_contactpersoon cp2
WHERE cp2.prs_bedrijf_key = cp.prs_bedrijf_key
AND cp2.prs_contactpersoon_naam = cp.prs_contactpersoon_naam
AND COALESCE(cp2.prs_contactpersoon_voornaam, 'Onbekend') = COALESCE(cp.prs_contactpersoon_voornaam, 'Onbekend'));
END;
END LOOP;
v_errorhint := 'Verwijder contactpersonen';
UPDATE prs_contactpersoon cp
SET cp.prs_contactpersoon_verwijder = SYSDATE
WHERE cp.prs_bedrijf_key = rec1.prs_bedrijf_key
AND NOT EXISTS (SELECT prs_contactpersoon_key
FROM pchx_imp_contactpersoon cp2
WHERE cp2.prs_bedrijf_key = cp.prs_bedrijf_key
AND cp2.prs_contactpersoon_naam = cp.prs_contactpersoon_naam
AND COALESCE(cp2.prs_contactpersoon_voornaam, 'Onbekend') = COALESCE(cp.prs_contactpersoon_voornaam, 'Onbekend'));
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
@@ -4226,7 +4246,6 @@ END;
/
------ payload end ------
SET DEFINE OFF