PCHD#41923 -- Crediteurgegevens overnemen uit de PCHD omgeving

svn path=/Customer/trunk/; revision=45475
This commit is contained in:
Arthur Egberink
2020-01-17 12:14:17 +00:00
parent 83ebe94067
commit 88b44eb096

View File

@@ -3354,6 +3354,7 @@ AS
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
v_ongeldig NUMBER (1);
v_header_is_valid NUMBER (1) := 0;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
@@ -3366,6 +3367,7 @@ BEGIN
LOOP
BEGIN
v_newline := rec.fac_imp_file_line;
v_ongeldig := 0;
IF v_header_is_valid = 1
THEN
@@ -3553,146 +3555,167 @@ BEGIN
WHERE UPPER (rt.prs_relatietype_omschrijving) =
UPPER (v_relatietype_omschrijving);
IF v_relatietype_omschrijving IS NOT NULL AND v_relatietype_key IS NULL
THEN
fac.imp_writelog (p_import_key, 'E', 'Relateietype niet gevonden: ' || v_relatietype_omschrijving, '');
v_ongeldig := 1;
END IF;
SELECT MAX (mld_typeopdr_key)
INTO v_typeopdr_key
FROM mld_typeopdr ot
WHERE UPPER (ot.mld_typeopdr_omschrijving) =
UPPER (v_typeopdr_omschrijving);
IF v_typeopdr_omschrijving IS NOT NULL AND v_typeopdr_key IS NULL
THEN
fac.imp_writelog (p_import_key, 'E', 'Opdrachttype niet gevonden: ' || v_typeopdr_omschrijving, '');
v_ongeldig := 1;
END IF;
SELECT MAX (prs_perslid_key)
INTO v_bedrijfadres_lockuser_key
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) =
UPPER (v_bedrijfadres_lockuser_naam);
INSERT INTO pchx_imp_bedrijf_gegevens (
prs_bedrijf_key,
prs_bedrijf_naam,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_post_land,
prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_land,
prs_bedrijf_telefoon,
prs_bedrijf_fax,
prs_bedrijf_telefoon2,
prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax,
prs_bedrijf_opmerking,
prs_bedrijf_opmerking2,
prs_bedrijf_uurloon,
prs_leverancier_nr,
prs_overeenkomst_nr,
prs_overeenkomst_datum,
prs_bedrijf_email,
prs_bedrijf_order_confirm,
prs_bedrijf_image_loc,
prs_bedrijf_details_loc,
prs_bedrijf_xmldetails_loc,
prs_bedrijf_xmlcatalogus_loc,
prs_bedrijf_bes_limiet,
prs_bedrijf_bes_kosten,
prs_bedrijf_aanmaak,
prs_bedrijf_verwijder,
prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende,
prs_bedrijf_contract,
prs_bedrijf_intern,
prs_bedrijf_huurder,
prs_bedrijf_bezoeker,
prs_bedrijf_ingids,
prs_bedrijf_bes_factor,
prs_relatietype_key,
prs_bedrijfadres_key,
prs_bedrijfadres_type,
mld_typeopdr_key,
prs_bedrijfadres_url,
prs_bedrijfadres_ordermode,
prs_bedrijfadres_certificate,
prs_bedrijfadres_xsl,
prs_bedrijfadres_ext,
prs_bedrijfadres_username,
prs_bedrijfadres_password,
prs_bedrijfadres_attachfile,
prs_bedrijfadres_flexfiles,
prs_bedrijfadres_encoding,
prs_bedrijfadres_authmethod,
prs_bedrijfadres_soapversion,
prs_bedrijfadres_soapaction,
prs_bedrijfadres_lockuser_key,
prs_bedrijfadres_locksecret,
prs_bedrijfadres_lockexpire)
VALUES (
v_bedrijf_key,
v_bedrijf_naam,
v_bedrijf_post_adres,
v_bedrijf_post_postcode,
v_bedrijf_post_plaats,
v_bedrijf_post_land,
v_bedrijf_bezoek_adres,
v_bedrijf_bezoek_postcode,
v_bedrijf_bezoek_plaats,
v_bedrijf_bezoek_land,
v_bedrijf_telefoon,
v_bedrijf_fax,
v_bedrijf_telefoon2,
v_bedrijf_contact_persoon,
v_bedrijf_contact_telefoon,
v_bedrijf_contact_fax,
v_bedrijf_opmerking,
v_bedrijf_opmerking2,
FAC.safe_to_number(REPLACE(v_bedrijf_uurloon, ',', '.')),
v_leverancier_nr,
v_overeenkomst_nr,
FAC.safe_to_date (
v_overeenkomst_datum,
'yyyy-mm-dd hh24:mi:ss'),
v_bedrijf_email,
v_bedrijf_order_confirm,
v_bedrijf_image_loc,
v_bedrijf_details_loc,
v_bedrijf_xmldetails_loc,
v_bedrijf_xmlcatalogus_loc,
FAC.safe_to_number(REPLACE(v_bedrijf_bes_limiet, ',', '.')),
FAC.safe_to_number(REPLACE(v_bedrijf_bes_kosten, ',', '.')),
FAC.safe_to_date (
v_bedrijf_aanmaak,
'yyyy-mm-dd hh24:mi:ss'),
FAC.safe_to_date (
v_bedrijf_verwijder,
'yyyy-mm-dd hh24:mi:ss'),
v_bedrijf_leverancier,
v_bedrijf_uitvoerende,
v_bedrijf_contract,
v_bedrijf_intern,
v_bedrijf_huurder,
v_bedrijf_bezoeker,
v_bedrijf_ingids,
FAC.safe_to_number(REPLACE(v_bedrijf_bes_factor, ',', '.')),
v_relatietype_key,
v_bedrijfadres_key,
v_bedrijfadres_type,
v_typeopdr_key,
v_bedrijfadres_url,
v_bedrijfadres_ordermode,
v_bedrijfadres_certificate,
v_bedrijfadres_xsl,
v_bedrijfadres_ext,
v_bedrijfadres_username,
v_bedrijfadres_password,
v_bedrijfadres_attachfile,
v_bedrijfadres_flexfiles,
v_bedrijfadres_encoding,
v_bedrijfadres_authmethod,
v_bedrijfadres_soapversion,
v_bedrijfadres_soapaction,
v_bedrijfadres_lockuser_key,
v_bedrijfadres_locksecret,
v_bedrijfadres_lockexpire);
IF v_bedrijfadres_lockuser_naam IS NOT NULL AND v_bedrijfadres_lockuser_key IS NULL
THEN
fac.imp_writelog (p_import_key, 'E', 'Lockuser niet gevonden: ' || v_bedrijfadres_lockuser_naam, '');
v_ongeldig := 1;
END IF;
IF v_ongeldig = 0
THEN
INSERT INTO pchx_imp_bedrijf_gegevens (
prs_bedrijf_key,
prs_bedrijf_naam,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_post_land,
prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_land,
prs_bedrijf_telefoon,
prs_bedrijf_fax,
prs_bedrijf_telefoon2,
prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax,
prs_bedrijf_opmerking,
prs_bedrijf_opmerking2,
prs_bedrijf_uurloon,
prs_leverancier_nr,
prs_overeenkomst_nr,
prs_overeenkomst_datum,
prs_bedrijf_email,
prs_bedrijf_order_confirm,
prs_bedrijf_image_loc,
prs_bedrijf_details_loc,
prs_bedrijf_xmldetails_loc,
prs_bedrijf_xmlcatalogus_loc,
prs_bedrijf_bes_limiet,
prs_bedrijf_bes_kosten,
prs_bedrijf_aanmaak,
prs_bedrijf_verwijder,
prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende,
prs_bedrijf_contract,
prs_bedrijf_intern,
prs_bedrijf_huurder,
prs_bedrijf_bezoeker,
prs_bedrijf_ingids,
prs_bedrijf_bes_factor,
prs_relatietype_key,
prs_bedrijfadres_key,
prs_bedrijfadres_type,
mld_typeopdr_key,
prs_bedrijfadres_url,
prs_bedrijfadres_ordermode,
prs_bedrijfadres_certificate,
prs_bedrijfadres_xsl,
prs_bedrijfadres_ext,
prs_bedrijfadres_username,
prs_bedrijfadres_password,
prs_bedrijfadres_attachfile,
prs_bedrijfadres_flexfiles,
prs_bedrijfadres_encoding,
prs_bedrijfadres_authmethod,
prs_bedrijfadres_soapversion,
prs_bedrijfadres_soapaction,
prs_bedrijfadres_lockuser_key,
prs_bedrijfadres_locksecret,
prs_bedrijfadres_lockexpire)
VALUES (
v_bedrijf_key,
v_bedrijf_naam,
v_bedrijf_post_adres,
v_bedrijf_post_postcode,
v_bedrijf_post_plaats,
v_bedrijf_post_land,
v_bedrijf_bezoek_adres,
v_bedrijf_bezoek_postcode,
v_bedrijf_bezoek_plaats,
v_bedrijf_bezoek_land,
v_bedrijf_telefoon,
v_bedrijf_fax,
v_bedrijf_telefoon2,
v_bedrijf_contact_persoon,
v_bedrijf_contact_telefoon,
v_bedrijf_contact_fax,
v_bedrijf_opmerking,
v_bedrijf_opmerking2,
FAC.safe_to_number(REPLACE(v_bedrijf_uurloon, ',', '.')),
v_leverancier_nr,
v_overeenkomst_nr,
FAC.safe_to_date (
v_overeenkomst_datum,
'yyyy-mm-dd hh24:mi:ss'),
v_bedrijf_email,
v_bedrijf_order_confirm,
v_bedrijf_image_loc,
v_bedrijf_details_loc,
v_bedrijf_xmldetails_loc,
v_bedrijf_xmlcatalogus_loc,
FAC.safe_to_number(REPLACE(v_bedrijf_bes_limiet, ',', '.')),
FAC.safe_to_number(REPLACE(v_bedrijf_bes_kosten, ',', '.')),
FAC.safe_to_date (
v_bedrijf_aanmaak,
'yyyy-mm-dd hh24:mi:ss'),
FAC.safe_to_date (
v_bedrijf_verwijder,
'yyyy-mm-dd hh24:mi:ss'),
v_bedrijf_leverancier,
v_bedrijf_uitvoerende,
v_bedrijf_contract,
v_bedrijf_intern,
v_bedrijf_huurder,
v_bedrijf_bezoeker,
v_bedrijf_ingids,
FAC.safe_to_number(REPLACE(v_bedrijf_bes_factor, ',', '.')),
v_relatietype_key,
v_bedrijfadres_key,
v_bedrijfadres_type,
v_typeopdr_key,
v_bedrijfadres_url,
v_bedrijfadres_ordermode,
v_bedrijfadres_certificate,
v_bedrijfadres_xsl,
v_bedrijfadres_ext,
v_bedrijfadres_username,
v_bedrijfadres_password,
v_bedrijfadres_attachfile,
v_bedrijfadres_flexfiles,
v_bedrijfadres_encoding,
v_bedrijfadres_authmethod,
v_bedrijfadres_soapversion,
v_bedrijfadres_soapaction,
v_bedrijfadres_lockuser_key,
v_bedrijfadres_locksecret,
v_bedrijfadres_lockexpire);
END IF;
ELSE
IF LOWER (v_newline) LIKE
'prs_bedrijf_key;prs_bedrijf_naam;prs_bedrijf_post_adres;prs_bedrijf_post_postcode;prs_bedrijf_post_plaats;prs_bedrijf_post_land;prs_bedrijf_bezoek_adres;prs_bedrijf_bezoek_postcode;prs_bedrijf_bezoek_plaats;prs_bedrijf_bezoek_land;prs_bedrijf_telefoon;prs_bedrijf_fax;prs_bedrijf_telefoon2;prs_bedrijf_contact_persoon;prs_bedrijf_contact_telefoon;prs_bedrijf_contact_fax;prs_bedrijf_opmerking;prs_bedrijf_opmerking2;prs_bedrijf_uurloon;prs_leverancier_nr;prs_overeenkomst_nr;prs_overeenkomst_datum;prs_bedrijf_email;prs_bedrijf_order_confirm;prs_bedrijf_image_loc;prs_bedrijf_details_loc;prs_bedrijf_xmldetails_loc;prs_bedrijf_xmlcatalogus_loc;prs_bedrijf_bes_limiet;prs_bedrijf_bes_kosten;prs_bedrijf_aanmaak;prs_bedrijf_verwijder;prs_bedrijf_leverancier;prs_bedrijf_uitvoerende;prs_bedrijf_contract;prs_bedrijf_intern;prs_bedrijf_huurder;prs_bedrijf_bezoeker;prs_bedrijf_ingids;prs_bedrijf_bes_factor;prs_relatietype_omschrijving;prs_bedrijfadres_key;prs_bedrijfadres_type;mld_typeopdr_omschrijving;prs_bedrijfadres_url;prs_bedrijfadres_ordermode;prs_bedrijfadres_certificate;prs_bedrijfadres_xsl;prs_bedrijfadres_ext;prs_bedrijfadres_username;prs_bedrijfadres_password;prs_bedrijfadres_attachfile;prs_bedrijfadres_flexfiles;prs_bedrijfadres_encoding;prs_bedrijfadres_authmethod;prs_bedrijfadres_soapversion;prs_bedrijfadres_soapaction;bedrijfadres_lockuser_naam;prs_bedrijfadres_locksecret;prs_bedrijfadres_lockexpire%'
@@ -3720,12 +3743,11 @@ EXCEPTION
END;
/
/*
CREATE OR REPLACE PROCEDURE pchx_update_bedrijf_gegevens (
p_import_key NUMBER)
p_import_key NUMBER)
AS
CURSOR c
IS
CURSOR c IS
SELECT DISTINCT prs_bedrijf_key,
prs_bedrijf_naam,
prs_bedrijf_post_adres,
@@ -3769,7 +3791,7 @@ AS
prs_relatietype_key
FROM pchx_imp_bedrijf_gegevens;
CURSOR c_addr(c_bedrijf_key NUMBER)
CURSOR c_addr (c_bedrijf_key NUMBER)
IS
SELECT DISTINCT prs_bedrijfadres_type,
mld_typeopdr_key,
@@ -3793,14 +3815,15 @@ AS
WHERE prs_bedrijf_key = c_bedrijf_key;
v_leverancier_nr prs_bedrijf.prs_leverancier_nr%TYPE;
v_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE;
v_bedrijf_key_pchd prs_bedrijf.prs_bedrijf_key%TYPE;
v_leverancier_nr prs_bedrijf.prs_leverancier_nr%TYPE;
v_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE;
v_bedrijf_key_pchd prs_bedrijf.prs_bedrijf_key%TYPE;
v_bedrijfadres_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE;
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
FOR rec IN c
LOOP
@@ -3816,94 +3839,237 @@ BEGIN
THEN
INSERT INTO prs_bedrijf (prs_bedrijf_naam)
VALUES (rec.prs_bedrijf_naam)
RETURNING prs_bedrijf_key INTO v_bedrijf_key;
RETURNING prs_bedrijf_key
INTO v_bedrijf_key;
END;
UPDATE prs_bedrijf b
SET prs_bedrijf_naam = rec.prs_bedrijf_naam,
prs_bedrijf_post_adres = rec.prs_bedrijf_post_adres,
prs_bedrijf_post_postcode = rec.prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats = rec.prs_bedrijf_post_plaats,
prs_bedrijf_post_land = rec.prs_bedrijf_post_land,
prs_bedrijf_bezoek_adres = rec.prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode = rec.prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_plaats = rec.prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_land = rec.prs_bedrijf_bezoek_land,
prs_bedrijf_telefoon = rec.prs_bedrijf_telefoon,
prs_bedrijf_fax = rec.prs_bedrijf_fax,
prs_bedrijf_telefoon2 = rec.prs_bedrijf_telefoon2,
prs_bedrijf_contact_persoon = rec.prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon = rec.prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax = rec.prs_bedrijf_contact_fax,
prs_bedrijf_opmerking = rec.prs_bedrijf_opmerking,
prs_bedrijf_opmerking2 = rec.prs_bedrijf_opmerking2,
prs_bedrijf_uurloon = rec.prs_bedrijf_uurloon,
prs_leverancier_nr = rec.prs_leverancier_nr,
prs_overeenkomst_nr = rec.prs_overeenkomst_nr,
prs_overeenkomst_datum = rec.prs_overeenkomst_datum,
prs_bedrijf_email = rec.prs_bedrijf_email,
prs_bedrijf_order_confirm = rec.prs_bedrijf_order_confirm,
prs_bedrijf_image_loc = rec.prs_bedrijf_image_loc,
prs_bedrijf_details_loc = rec.prs_bedrijf_details_loc,
prs_bedrijf_xmldetails_loc = rec.prs_bedrijf_xmldetails_loc,
prs_bedrijf_xmlcatalogus_loc = rec.prs_bedrijf_xmlcatalogus_loc,
prs_bedrijf_bes_limiet = rec.prs_bedrijf_bes_limiet,
prs_bedrijf_bes_kosten = rec.prs_bedrijf_bes_kosten,
prs_bedrijf_aanmaak = rec.prs_bedrijf_aanmaak,
prs_bedrijf_verwijder = rec.prs_bedrijf_verwijder,
prs_bedrijf_leverancier = rec.prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende = rec.prs_bedrijf_uitvoerende,
prs_bedrijf_contract = rec.prs_bedrijf_contract,
prs_bedrijf_intern = rec.prs_bedrijf_intern,
prs_bedrijf_huurder = rec.prs_bedrijf_huurder,
prs_bedrijf_bezoeker = rec.prs_bedrijf_bezoeker,
prs_bedrijf_ingids = rec.prs_bedrijf_ingids,
prs_bedrijf_bes_factor = rec.prs_bedrijf_bes_factor,
prs_relatietype_key = rec.prs_relatietype_key
WHERE b.prs_bedrijf_key = v_bedrijf_key;
FOR rec1 IN c_addr (v_bedrijf_key_pchd)
LOOP
BEGIN
SELECT prs_bedrijfadres_key
INTO v_bedrijfadres_key
FROM prs_bedrijfadres
WHERE prs_bedrijf_key = v_bedrijf_key
AND COALESCE (mld_typeopdr_key, -1) = COALESCE (rec1.mld_typeopdr_key, -1)
AND prs_bedrijfadres_type = rec1.prs_bedrijfadres_type;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO prs_bedrijfadres (prs_bedrijf_key,
mld_typeopdr_key,
prs_bedrijfadres_type)
VALUES (v_bedrijf_key,
rec1.mld_typeopdr_key,
rec1.prs_bedrijfadres_type)
RETURNING prs_bedrijfadres_key
INTO v_bedrijfadres_key;
END;
UPDATE prs_bedrijf b SET (prs_bedrijf_naam = rec.prs_bedrijf_naam,
prs_bedrijf_post_adres = rec.prs_bedrijf_post_adres,
prs_bedrijf_post_postcode = rec.prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats = rec.prs_bedrijf_post_plaats,
prs_bedrijf_post_land = rec.prs_bedrijf_post_land,
prs_bedrijf_bezoek_adres = rec.prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode = rec.prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_plaats = rec.prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_land = rec.prs_bedrijf_bezoek_land,
prs_bedrijf_telefoon = rec.prs_bedrijf_telefoon,
prs_bedrijf_fax = rec.prs_bedrijf_fax,
prs_bedrijf_telefoon2 = rec.prs_bedrijf_telefoon2,
prs_bedrijf_contact_persoon = rec.prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon = rec.prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax = rec.prs_bedrijf_contact_fax,
prs_bedrijf_opmerking = rec.prs_bedrijf_opmerking,
prs_bedrijf_opmerking2 = rec.prs_bedrijf_opmerking2,
prs_bedrijf_uurloon = rec.prs_bedrijf_uurloon,
prs_leverancier_nr = rec.prs_leverancier_nr,
prs_overeenkomst_nr = rec.prs_overeenkomst_nr,
prs_overeenkomst_datum = rec.prs_overeenkomst_datum,
prs_bedrijf_email = rec.prs_bedrijf_email,
prs_bedrijf_order_confirm = rec.prs_bedrijf_order_confirm,
prs_bedrijf_image_loc = rec.prs_bedrijf_image_loc,
prs_bedrijf_details_loc = rec.prs_bedrijf_details_loc,
prs_bedrijf_xmldetails_loc = rec.prs_bedrijf_xmldetails_loc,
prs_bedrijf_xmlcatalogus_loc = rec.prs_bedrijf_xmlcatalogus_loc,
prs_bedrijf_bes_limiet = rec.prs_bedrijf_bes_limiet,
prs_bedrijf_bes_kosten = rec.prs_bedrijf_bes_kosten,
prs_bedrijf_aanmaak = rec.prs_bedrijf_aanmaak,
prs_bedrijf_verwijder = rec.prs_bedrijf_verwijder,
prs_bedrijf_leverancier = rec.prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende = rec.prs_bedrijf_uitvoerende,
prs_bedrijf_contract = rec.prs_bedrijf_contract,
prs_bedrijf_intern = rec.prs_bedrijf_intern,
prs_bedrijf_huurder = rec.prs_bedrijf_huurder,
prs_bedrijf_bezoeker = rec.prs_bedrijf_bezoeker,
prs_bedrijf_ingids = rec.prs_bedrijf_ingids,
prs_bedrijf_bes_factor = rec.prs_bedrijf_bes_factor,
prs_relatietype_key = rec.prs_relatietype_key)
WHERE b.prs_bedrijf_key = v_bedrijf_key;
UPDATE prs_bedrijfadres
SET prs_bedrijfadres_url = rec1.prs_bedrijfadres_url,
prs_bedrijfadres_ordermode = rec1.prs_bedrijfadres_ordermode,
prs_bedrijfadres_certificate = rec1.prs_bedrijfadres_certificate,
prs_bedrijfadres_xsl = DECODE (UPPER (rec1.prs_bedrijfadres_xsl),
'XSL/PCHD.XSL', 'xsl/' || SUBSTR (USER, 1, 4) || '.xsl',
rec1.prs_bedrijfadres_xsl),
prs_bedrijfadres_ext = rec1.prs_bedrijfadres_ext,
prs_bedrijfadres_username = rec1.prs_bedrijfadres_username,
prs_bedrijfadres_password = rec1.prs_bedrijfadres_password,
prs_bedrijfadres_attachfile = 'Alg. inkoopvoorwaarden PCH IFMS.pdf',
prs_bedrijfadres_flexfiles = rec1.prs_bedrijfadres_flexfiles,
prs_bedrijfadres_encoding = rec1.prs_bedrijfadres_encoding,
prs_bedrijfadres_authmethod = rec1.prs_bedrijfadres_authmethod,
prs_bedrijfadres_soapversion = rec1.prs_bedrijfadres_soapversion,
prs_bedrijfadres_soapaction = rec1.prs_bedrijfadres_soapaction,
prs_bedrijfadres_lockuser_key = rec1.prs_bedrijfadres_lockuser_key,
prs_bedrijfadres_locksecret = rec1.prs_bedrijfadres_locksecret,
prs_bedrijfadres_lockexpire = rec1.prs_bedrijfadres_lockexpire
WHERE prs_bedrijfadres_key = v_bedrijfadres_key;
FOR rec1 IN c_addr(v_bedrijf_key_pchd)
LOOP
INSERT INTO prs_bedrijfadres (prs_bedrijf_key,
prs_bedrijfadres_type,
mld_typeopdr_key,
prs_bedrijfadres_url,
prs_bedrijfadres_ordermode,
prs_bedrijfadres_certificate,
prs_bedrijfadres_xsl,
prs_bedrijfadres_ext,
prs_bedrijfadres_username,
prs_bedrijfadres_password,
prs_bedrijfadres_attachfile,
prs_bedrijfadres_flexfiles,
prs_bedrijfadres_encoding,
prs_bedrijfadres_authmethod,
prs_bedrijfadres_soapversion,
prs_bedrijfadres_soapaction,
prs_bedrijfadres_lockuser_key,
prs_bedrijfadres_locksecret,
prs_bedrijfadres_lockexpire)
VALUES (v_bedrijf_key,
rec1.prs_bedrijfadres_type,
rec1.mld_typeopdr_key,
rec1.prs_bedrijfadres_url,
rec1.prs_bedrijfadres_ordermode,
rec1.prs_bedrijfadres_certificate,
rec1.prs_bedrijfadres_xsl,
rec1.prs_bedrijfadres_ext,
rec1.prs_bedrijfadres_username,
rec1.prs_bedrijfadres_password,
rec1.prs_bedrijfadres_attachfile,
rec1.prs_bedrijfadres_flexfiles,
rec1.prs_bedrijfadres_encoding,
rec1.prs_bedrijfadres_authmethod,
rec1.prs_bedrijfadres_soapversion,
rec1.prs_bedrijfadres_soapaction,
rec1.prs_bedrijfadres_lockuser_key,
rec1.prs_bedrijfadres_locksecret,
rec1.prs_bedrijfadres_lockexpire);
END LOOP;
END LOOP;
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',
SUBSTR (v_errormsg, 1, 1000),
'');
END;
/
END LOOP;
-- Koppeling om contactpersonen vanuit PCHD te verspreiden over de andere PCH omgevingen.
CREATE OR REPLACE PROCEDURE pchx_import_contactpersoon (
p_import_key NUMBER)
AS
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
v_contactpersoon_key VARCHAR2 (1000);
v_contactpersoon_naam VARCHAR2 (1000);
v_contactpersoon_tussenv VARCHAR2 (1000);
v_contactpersoon_voorletters VARCHAR2 (1000);
v_contactpersoon_voornaam VARCHAR2 (1000);
v_contactpersoon_aanhef VARCHAR2 (1000);
v_contactpersoon_titel VARCHAR2 (1000);
v_contactpersoon_telefoon_1 VARCHAR2 (1000);
v_contactpersoon_telefoon_2 VARCHAR2 (1000);
v_contactpersoon_fax VARCHAR2 (1000);
v_contactpersoon_email VARCHAR2 (1000);
v_contactpersoon_functie VARCHAR2 (1000);
v_contactpersoon_opmerking VARCHAR2 (1000);
v_bedrijf_key VARCHAR2 (1000);
v_bedrijf_naam VARCHAR2 (1000);
v_newline VARCHAR2 (4000); -- Import line
v_field VARCHAR2 (1000); -- Import field
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
v_ongeldig NUMBER (1);
v_header_is_valid NUMBER (1) := 0;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_fielddelimitor := ';';
DELETE pchx_imp_contactpersoon;
FOR rec IN c
LOOP
BEGIN
v_newline := rec.fac_imp_file_line;
v_ongeldig := 0;
IF v_header_is_valid = 1
THEN
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_key);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_naam);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_tussenv);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_voorletters);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_voornaam);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_aanhef);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_titel);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_telefoon_1);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_telefoon_2);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_fax);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_email);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_functie);
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_opmerking);
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_key);
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_naam);
SELECT MAX (b.prs_bedrijf_key)
INTO v_bedrijf_key
FROM prs_bedrijf b, pchx_imp_bedrijf_gegevens i
WHERE v_bedrijf_key = i.prs_bedrijf_key
AND i.prs_leverancier_nr = b.prs_leverancier_nr
AND b.prs_bedrijf_verwijder IS NULL;
IF v_bedrijf_key IS NULL
THEN
fac.imp_writelog (p_import_key, 'E', 'Bedrijf niet gevonden: ' || v_bedrijf_naam, '');
v_ongeldig := 1;
END IF;
IF v_ongeldig = 0
THEN
INSERT INTO pchx_imp_contactpersoon (
prs_contactpersoon_key,
prs_contactpersoon_naam,
prs_contactpersoon_tussenv,
prs_contactpersoon_voorletters,
prs_contactpersoon_voornaam,
prs_contactpersoon_aanhef,
prs_contactpersoon_titel,
prs_contactpersoon_telefoon_1,
prs_contactpersoon_telefoon_2,
prs_contactpersoon_fax,
prs_contactpersoon_email,
prs_contactpersoon_functie,
prs_contactpersoon_opmerking,
prs_bedrijf_key,
prs_bedrijf_naam)
VALUES (
v_contactpersoon_key,
v_contactpersoon_naam,
v_contactpersoon_tussenv,
v_contactpersoon_voorletters,
v_contactpersoon_voornaam,
v_contactpersoon_aanhef,
v_contactpersoon_titel,
v_contactpersoon_telefoon_1,
v_contactpersoon_telefoon_2,
v_contactpersoon_fax,
v_contactpersoon_email,
v_contactpersoon_functie,
v_contactpersoon_opmerking,
v_bedrijf_key,
v_bedrijf_naam);
END IF;
ELSE
IF LOWER (v_newline) LIKE 'prs_contactpersoon_key;prs_contactpersoon_naam;prs_contactpersoon_tussenv;prs_contactpersoon_voorletters;prs_contactpersoon_voornaam;prs_contactpersoon_aanhef;prs_contactpersoon_titel;prs_contactpersoon_telefoon_1;prs_contactpersoon_telefoon_2;prs_contactpersoon_fax;prs_contactpersoon_email;prs_contactpersoon_functie;prs_contactpersoon_opmerking;prs_bedrijf_key;prs_bedrijf_naam%'
THEN
v_header_is_valid := 1;
END IF;
END IF;
END;
END LOOP;
EXCEPTION
@@ -3923,7 +4089,95 @@ EXCEPTION
'');
END;
/
*/
CREATE OR REPLACE PROCEDURE pchx_update_contactpersoon (
p_import_key NUMBER)
AS
CURSOR c IS
SELECT DISTINCT prs_bedrijf_key
FROM pchx_imp_contactpersoon;
CURSOR c_det (c_bedrijf_key NUMBER)
IS
SELECT *
FROM pchx_imp_contactpersoon
WHERE prs_bedrijf_key = c_bedrijf_key;
v_contactpersoon_key prs_contactpersoon.prs_contactpersoon_key%TYPE;
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
FOR rec1 IN c
LOOP
BEGIN
FOR rec IN c_det(rec1.prs_bedrijf_key)
LOOP
BEGIN
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
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;
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;
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
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',
SUBSTR (v_errormsg, 1, 1000),
'');
END;
/
------ payload end ------
SET DEFINE OFF