From 2b295e0b4d8eb9bb2e8844b88d75f52424db3977 Mon Sep 17 00:00:00 2001 From: Arthur Egberink Date: Tue, 24 Mar 2020 08:44:46 +0000 Subject: [PATCH] PCHX#61916 -- Bedrijven zonder technisch adres ook synchroniseren en logging toevoegen svn path=/Customer/trunk/; revision=46345 --- PCHX/pchx.sql | 103 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 61 insertions(+), 42 deletions(-) diff --git a/PCHX/pchx.sql b/PCHX/pchx.sql index b4320ebbd..a0933fc08 100644 --- a/PCHX/pchx.sql +++ b/PCHX/pchx.sql @@ -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