diff --git a/UWVA/uwva_misc.sql b/UWVA/uwva_misc.sql index 2a21ed732..9ecce78eb 100644 --- a/UWVA/uwva_misc.sql +++ b/UWVA/uwva_misc.sql @@ -6717,1757 +6717,6 @@ AS ON a.prs_perslid_key = b.prs_link_key; --- UWVA#16353 - Klantspecifieke variant voor UWV van 'FIP Externe Bedrijven'! -/* Formatted on 25-11-2009 15:50:08 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE uwva_import_bedrijf (p_import_key IN NUMBER) -IS - c_delim VARCHAR2 (1) := ';'; - v_newline VARCHAR2 (1000); -- Input line - v_errormsg VARCHAR2 (1000); - v_errorhint VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - header_is_valid NUMBER; - v_count_tot NUMBER (10); - v_count_import NUMBER (10); - v_ongeldig NUMBER (1); - v_aanduiding VARCHAR (200); - -- De importvelden: - v_prs_bedrijf_naam VARCHAR2 (256); -- C60 - v_prs_leverancier_nr VARCHAR2 (256); -- C50 - v_prs_bedrijf_bezoek_adres VARCHAR2 (256); -- C35 - v_prs_bedrijf_bezoek_postcode VARCHAR2 (256); -- C12 - v_prs_bedrijf_bezoek_plaats VARCHAR2 (256); -- C30 - v_prs_bedrijf_bezoek_land VARCHAR2 (256); -- C30 - v_prs_bedrijf_telefoon VARCHAR2 (256); -- C20 - v_prs_bedrijf_fax VARCHAR2 (256); -- C20 - v_prs_bedrijf_post_adres VARCHAR2 (256); -- C35 - v_prs_bedrijf_post_postcode VARCHAR2 (256); -- C12 - v_prs_bedrijf_post_plaats VARCHAR2 (256); -- C30 - v_prs_bedrijf_post_land VARCHAR2 (256); -- C30 - v_prs_bedrijf_contact_persoon VARCHAR2 (256); -- C30 - v_prs_bedrijf_contact_telefoon VARCHAR2 (256); -- C20 - v_prs_bedrijf_contact_fax VARCHAR2 (256); -- C20 - v_prs_bedrijf_leverancier VARCHAR2 (256); -- N1 - v_prs_bedrijf_uitvoerende VARCHAR2 (256); -- N1 - v_prs_bedrijf_contract VARCHAR2 (256); -- N1 - v_prs_bedrijf_huurder VARCHAR2 (256); -- N1 - v_prs_bedrijf_ingids VARCHAR2 (256); -- N1 - v_prs_bedrijf_uurloon VARCHAR2 (256); -- N6,2 - v_prs_overeenkomst_nr VARCHAR2 (256); -- C20 - v_prs_overeenkomst_datum VARCHAR2 (256); -- DATE - v_prs_bedrijf_email VARCHAR2 (256); -- C100 - v_prs_bedrijf_opmerking VARCHAR2 (512); -- C320 - v_prs_bedrijf_mldorder_adres VARCHAR2 (256); -- C256 - v_bankrekeningnummer VARCHAR2 (256); -- C255 - v_btw_nummer VARCHAR2 (256); -- C255 - v_prs_dienst_omschrijving VARCHAR2 (256); -- C60 - v_alg_locatie_code VARCHAR2 (256); -- C10 - v_prs_contactpersoon_naam VARCHAR2 (256); -- C30 - v_prs_contactpersoon_tussenv VARCHAR2 (256); -- C15 - v_prs_contactpersoon_voorl VARCHAR2 (256); -- C10 - v_prs_contactpersoon_voornaam VARCHAR2 (256); -- C30 - v_prs_contactpersoon_tel_1 VARCHAR2 (256); -- C30 - v_prs_contactpersoon_fax VARCHAR2 (256); -- C30 - v_prs_contactpersoon_email VARCHAR2 (256); -- C50 - -- Overig: - v_prs_bedrijf_leverancier_n NUMBER (1); -- N1 - v_prs_bedrijf_uitvoerende_n NUMBER (1); -- N1 - v_prs_bedrijf_contract_n NUMBER (1); -- N1 - v_prs_bedrijf_huurder_n NUMBER (1); -- N1 - v_prs_bedrijf_ingids_n NUMBER (1); -- N1 - v_prs_bedrijf_uurloon_n NUMBER (6, 2); -- N6,2 - v_prs_overeenkomst_date DATE; -- DATE - - CURSOR c1 - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; -BEGIN - DELETE FROM uwva_imp_bedrijf; - - v_count_tot := 0; - v_count_import := 0; - header_is_valid := 0; - COMMIT; - - FOR rec1 IN c1 - LOOP - BEGIN - v_newline := rec1.fac_imp_file_line; - v_errormsg := 'Fout opvragen te importeren rij'; - v_aanduiding := ''; - v_ongeldig := 0; - -- Lees alle veldwaarden - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_naam); - fac.imp_getfield (v_newline, c_delim, v_prs_leverancier_nr); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_bezoek_adres); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_bezoek_postcode); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_bezoek_plaats); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_bezoek_land); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_post_adres); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_post_postcode); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_post_plaats); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_post_land); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_telefoon); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_fax); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_email); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_contact_persoon); - fac.imp_getfield (v_newline, - c_delim, - v_prs_bedrijf_contact_telefoon); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_contact_fax); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_leverancier); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_uitvoerende); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_contract); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_huurder); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_ingids); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_uurloon); - fac.imp_getfield (v_newline, c_delim, v_prs_overeenkomst_nr); - fac.imp_getfield (v_newline, c_delim, v_prs_overeenkomst_datum); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_opmerking); - fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_mldorder_adres); - fac.imp_getfield (v_newline, c_delim, v_bankrekeningnummer); - fac.imp_getfield (v_newline, c_delim, v_btw_nummer); - fac.imp_getfield (v_newline, c_delim, v_prs_dienst_omschrijving); - fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code); - fac.imp_getfield (v_newline, c_delim, v_prs_contactpersoon_naam); - fac.imp_getfield (v_newline, c_delim, v_prs_contactpersoon_tussenv); - fac.imp_getfield (v_newline, - c_delim, - v_prs_contactpersoon_voorl); - fac.imp_getfield (v_newline, c_delim, v_prs_contactpersoon_voornaam); - fac.imp_getfield (v_newline, - c_delim, - v_prs_contactpersoon_tel_1); - fac.imp_getfield (v_newline, c_delim, v_prs_contactpersoon_fax); - fac.imp_getfield (v_newline, c_delim, v_prs_contactpersoon_email); - v_aanduiding := '[' || v_prs_bedrijf_naam || '] '; - - -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen - -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! - -- Ik negeer alles totdat ik een geldige header ben gepasseerd. - IF (header_is_valid = 0) - THEN - IF UPPER (v_prs_bedrijf_naam) = 'BEDRIJFSNAAM' - AND UPPER (v_prs_leverancier_nr) = 'LEVERANCIERNUMMER' - AND UPPER (v_prs_bedrijf_bezoek_adres) = 'BEZOEK_ADRES' - AND UPPER (v_prs_bedrijf_bezoek_postcode) = 'BEZOEK_POSTCODE' - AND UPPER (v_prs_bedrijf_bezoek_plaats) = 'BEZOEK_PLAATS' - AND UPPER (v_prs_bedrijf_bezoek_land) = 'BEZOEK_LAND' - AND UPPER (v_prs_bedrijf_post_adres) = 'POST_ADRES' - AND UPPER (v_prs_bedrijf_post_postcode) = 'POST_POSTCODE' - AND UPPER (v_prs_bedrijf_post_plaats) = 'POST_PLAATS' - AND UPPER (v_prs_bedrijf_post_land) = 'POST_LAND' - AND UPPER (v_prs_bedrijf_telefoon) = 'BEDRIJF_TELEFOON' - AND UPPER (v_prs_bedrijf_fax) = 'BEDRIJF_FAX' - AND UPPER (v_prs_bedrijf_email) = 'BEDRIJF_EMAIL' - AND UPPER (v_prs_bedrijf_contact_persoon) = 'CONTACTPERSOON' - AND UPPER (v_prs_bedrijf_contact_telefoon) = - 'CONTACT_TELEFOON' - AND UPPER (v_prs_bedrijf_contact_fax) = 'CONTACT_FAX' - AND UPPER (v_prs_bedrijf_leverancier) = 'LEVERANCIER' - AND UPPER (v_prs_bedrijf_uitvoerende) = 'UITVOERENDE' - AND UPPER (v_prs_bedrijf_contract) = 'CONTRACTANT' - AND UPPER (v_prs_bedrijf_huurder) = 'HUURDER' - AND UPPER (v_prs_bedrijf_ingids) = 'TOONINGIDS' - AND UPPER (v_prs_bedrijf_uurloon) = 'UURLOON' - AND UPPER (v_prs_overeenkomst_nr) = 'OVEREENKOMSTNUMMER' - AND UPPER (v_prs_overeenkomst_datum) = 'OVEREENKOMSTDATUM' - AND UPPER (v_prs_bedrijf_opmerking) = 'OPMERKING' - AND UPPER (v_prs_bedrijf_mldorder_adres) = 'MLDORDER_ADRES' - AND UPPER (v_bankrekeningnummer) = 'BANKREKENINGNUMMER' - AND UPPER (v_btw_nummer) = 'BTW_NUMMER' - AND UPPER (v_prs_dienst_omschrijving) = 'DIENST' - AND UPPER (v_alg_locatie_code) = 'LOCATIECODE' - AND UPPER (v_prs_contactpersoon_naam) = 'CP_ACHTERNAAM' - AND UPPER (v_prs_contactpersoon_tussenv) = 'CP_TUSSENVOEGSEL' - AND UPPER (v_prs_contactpersoon_voorl) = 'CP_VOORLETTERS' - AND UPPER (v_prs_contactpersoon_voornaam) = 'CP_VOORNAAM' - AND UPPER (v_prs_contactpersoon_tel_1) = 'CP_TELEFOON' - AND UPPER (v_prs_contactpersoon_fax) = 'CP_FAX' - AND UPPER (v_prs_contactpersoon_email) = 'CP_EMAIL' - THEN - header_is_valid := 1; - END IF; - ELSE - v_count_tot := v_count_tot + 1; - -- Controleer alle veldwaarden - v_errorhint := 'Bedrijfsnaam te lang'; - v_prs_bedrijf_naam := TRIM (v_prs_bedrijf_naam); - - IF LENGTH (v_prs_bedrijf_naam) > 60 - THEN - v_prs_bedrijf_naam := SUBSTR (TRIM (v_prs_bedrijf_naam), 1, 60); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bedrijfsnaam wordt afgebroken tot [' - || v_prs_bedrijf_naam - || ']' - ); - END IF; - - -- - v_errorhint := 'Leveranciernummer te lang'; - v_prs_leverancier_nr := TRIM (v_prs_leverancier_nr); - - IF LENGTH (v_prs_leverancier_nr) > 50 - THEN - v_prs_leverancier_nr := - SUBSTR (TRIM (v_prs_leverancier_nr), 1, 50); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Leveranciernummer wordt afgebroken tot [' - || v_prs_leverancier_nr - || ']' - ); - END IF; - - -- - v_errorhint := 'Bezoek/adres te lang'; - v_prs_bedrijf_bezoek_adres := TRIM (v_prs_bedrijf_bezoek_adres); - - IF LENGTH (v_prs_bedrijf_bezoek_adres) > 35 - THEN - v_prs_bedrijf_bezoek_adres := - SUBSTR (TRIM (v_prs_bedrijf_bezoek_adres), 1, 35); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bezoek/adres wordt afgebroken tot [' - || v_prs_bedrijf_bezoek_adres - || ']' - ); - END IF; - - -- - v_errorhint := 'Bezoek/postcode te lang'; - v_prs_bedrijf_bezoek_postcode := - TRIM (v_prs_bedrijf_bezoek_postcode); - - IF LENGTH (v_prs_bedrijf_bezoek_postcode) > 12 - THEN - v_prs_bedrijf_bezoek_postcode := - SUBSTR (TRIM (v_prs_bedrijf_bezoek_postcode), 1, 12); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bezoek/postcode wordt afgebroken tot [' - || v_prs_bedrijf_bezoek_postcode - || ']' - ); - END IF; - - -- - v_errorhint := 'Bezoek/plaats te lang'; - v_prs_bedrijf_bezoek_plaats := TRIM (v_prs_bedrijf_bezoek_plaats); - - IF LENGTH (v_prs_bedrijf_bezoek_plaats) > 30 - THEN - v_prs_bedrijf_bezoek_plaats := - SUBSTR (TRIM (v_prs_bedrijf_bezoek_plaats), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bezoek/plaats wordt afgebroken tot [' - || v_prs_bedrijf_bezoek_plaats - || ']' - ); - END IF; - - -- - v_errorhint := 'Bezoek/land te lang'; - v_prs_bedrijf_bezoek_land := TRIM (v_prs_bedrijf_bezoek_land); - - IF LENGTH (v_prs_bedrijf_bezoek_land) > 30 - THEN - v_prs_bedrijf_bezoek_land := - SUBSTR (TRIM (v_prs_bedrijf_bezoek_land), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bezoek/land wordt afgebroken tot [' - || v_prs_bedrijf_bezoek_land - || ']' - ); - END IF; - - -- - v_errorhint := 'Post/adres te lang'; - v_prs_bedrijf_post_adres := TRIM (v_prs_bedrijf_post_adres); - - IF LENGTH (v_prs_bedrijf_post_adres) > 35 - THEN - v_prs_bedrijf_post_adres := - SUBSTR (TRIM (v_prs_bedrijf_post_adres), 1, 35); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Post/adres wordt afgebroken tot [' - || v_prs_bedrijf_post_adres - || ']' - ); - END IF; - - -- - v_errorhint := 'Post/postcode te lang'; - v_prs_bedrijf_post_postcode := TRIM (v_prs_bedrijf_post_postcode); - - IF LENGTH (v_prs_bedrijf_post_postcode) > 12 - THEN - v_prs_bedrijf_post_postcode := - SUBSTR (TRIM (v_prs_bedrijf_post_postcode), 1, 12); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Post/postcode wordt afgebroken tot [' - || v_prs_bedrijf_post_postcode - || ']' - ); - END IF; - - -- - v_errorhint := 'Post/plaats te lang'; - v_prs_bedrijf_post_plaats := TRIM (v_prs_bedrijf_post_plaats); - - IF LENGTH (v_prs_bedrijf_post_plaats) > 30 - THEN - v_prs_bedrijf_post_plaats := - SUBSTR (TRIM (v_prs_bedrijf_post_plaats), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Post/plaats wordt afgebroken tot [' - || v_prs_bedrijf_post_plaats - || ']' - ); - END IF; - - -- - v_errorhint := 'Post/land te lang'; - v_prs_bedrijf_post_land := TRIM (v_prs_bedrijf_post_land); - - IF LENGTH (v_prs_bedrijf_post_land) > 30 - THEN - v_prs_bedrijf_post_land := - SUBSTR (TRIM (v_prs_bedrijf_post_land), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Post/land wordt afgebroken tot [' - || v_prs_bedrijf_post_land - || ']' - ); - END IF; - - -- - v_errorhint := 'Bedrijf/telefoon te lang'; - v_prs_bedrijf_telefoon := TRIM (v_prs_bedrijf_telefoon); - - IF LENGTH (v_prs_bedrijf_telefoon) > 20 - THEN - v_prs_bedrijf_telefoon := - SUBSTR (TRIM (v_prs_bedrijf_telefoon), 1, 20); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bedrijf/telefoon wordt afgebroken tot [' - || v_prs_bedrijf_telefoon - || ']' - ); - END IF; - - -- - v_errorhint := 'Bedrijf/fax te lang'; - v_prs_bedrijf_fax := TRIM (v_prs_bedrijf_fax); - - IF LENGTH (v_prs_bedrijf_fax) > 20 - THEN - v_prs_bedrijf_fax := SUBSTR (TRIM (v_prs_bedrijf_fax), 1, 20); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bedrijf/fax wordt afgebroken tot [' - || v_prs_bedrijf_fax - || ']' - ); - END IF; - - -- - v_errorhint := 'Bedrijf/e-mail te lang'; - v_prs_bedrijf_email := TRIM (v_prs_bedrijf_email); - - IF LENGTH (v_prs_bedrijf_email) > 100 - THEN - v_prs_bedrijf_email := - SUBSTR (TRIM (v_prs_bedrijf_email), 1, 100); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bedrijf/e-mail wordt afgebroken tot [' - || v_prs_bedrijf_email - || ']' - ); - END IF; - - -- - v_errorhint := 'Contactpersoon te lang'; - v_prs_bedrijf_contact_persoon := - TRIM (v_prs_bedrijf_contact_persoon); - - IF LENGTH (v_prs_bedrijf_contact_persoon) > 30 - THEN - v_prs_bedrijf_contact_persoon := - SUBSTR (TRIM (v_prs_bedrijf_contact_persoon), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Contactpersoon wordt afgebroken tot [' - || v_prs_bedrijf_contact_persoon - || ']' - ); - END IF; - - -- - v_errorhint := 'Contact/telefoon te lang'; - v_prs_bedrijf_contact_telefoon := - TRIM (v_prs_bedrijf_contact_telefoon); - - IF LENGTH (v_prs_bedrijf_contact_telefoon) > 20 - THEN - v_prs_bedrijf_contact_telefoon := - SUBSTR (TRIM (v_prs_bedrijf_contact_telefoon), 1, 20); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Contact/telefoon wordt afgebroken tot [' - || v_prs_bedrijf_contact_telefoon - || ']' - ); - END IF; - - -- - v_errorhint := 'Contact/fax te lang'; - v_prs_bedrijf_contact_fax := TRIM (v_prs_bedrijf_contact_fax); - - IF LENGTH (v_prs_bedrijf_contact_fax) > 20 - THEN - v_prs_bedrijf_contact_fax := - SUBSTR (TRIM (v_prs_bedrijf_contact_fax), 1, 20); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Contact/fax wordt afgebroken tot [' - || v_prs_bedrijf_contact_fax - || ']' - ); - END IF; - - -- Verder geen foutdetectie; kan dus stricter? - SELECT DECODE ( - SUBSTR (TRIM (UPPER (v_prs_bedrijf_leverancier)), - 1, - 1), - 'J', - 1, - NULL - ) - INTO v_prs_bedrijf_leverancier_n - FROM DUAL; - - -- Verder geen foutdetectie; kan dus stricter? - SELECT DECODE ( - SUBSTR (TRIM (UPPER (v_prs_bedrijf_uitvoerende)), - 1, - 1), - 'J', - 1, - NULL - ) - INTO v_prs_bedrijf_uitvoerende_n - FROM DUAL; - - -- Verder geen foutdetectie; kan dus stricter? - SELECT DECODE ( - SUBSTR (TRIM (UPPER (v_prs_bedrijf_contract)), 1, 1), - 'J', - 1, - NULL - ) - INTO v_prs_bedrijf_contract_n - FROM DUAL; - - -- Verder geen foutdetectie; kan dus stricter? - SELECT DECODE ( - SUBSTR (TRIM (UPPER (v_prs_bedrijf_huurder)), 1, 1), - 'J', - 1, - NULL - ) - INTO v_prs_bedrijf_huurder_n - FROM DUAL; - - -- Verder geen foutdetectie; kan dus stricter? - SELECT DECODE ( - SUBSTR (TRIM (UPPER (v_prs_bedrijf_ingids)), 1, 1), - 'J', - 1, - NULL - ) - INTO v_prs_bedrijf_ingids_n - FROM DUAL; - - -- - v_errorhint := 'Ongeldig uurloon; maximale grootte 9999.99'; - - BEGIN - v_prs_bedrijf_uurloon_n := - fac.safe_to_number (v_prs_bedrijf_uurloon); - EXCEPTION - WHEN OTHERS - THEN - v_ongeldig := 1; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errorhint - || ' ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END; - - -- - v_errorhint := 'Overeenkomstnummer te lang'; - v_prs_overeenkomst_nr := TRIM (v_prs_overeenkomst_nr); - - IF LENGTH (v_prs_overeenkomst_nr) > 20 - THEN - v_prs_overeenkomst_nr := - SUBSTR (TRIM (v_prs_overeenkomst_nr), 1, 20); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Overeenkomstnummer wordt afgebroken tot [' - || v_prs_overeenkomst_nr - || ']' - ); - END IF; - - -- - v_errorhint := 'Ongeldige overeenkomstdatum'; - v_prs_overeenkomst_datum := TRIM (v_prs_overeenkomst_datum); - - IF v_prs_overeenkomst_datum IS NOT NULL - THEN - BEGIN - v_prs_overeenkomst_date := - TO_DATE (v_prs_overeenkomst_datum, 'dd-mm-yyyy'); - EXCEPTION - WHEN OTHERS - THEN - v_ongeldig := 1; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errorhint - || ' ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - COMMIT; - END; - ELSE - v_prs_overeenkomst_date := NULL; - END IF; - - -- - v_errorhint := 'Opmerking te lang'; - v_prs_bedrijf_opmerking := TRIM (v_prs_bedrijf_opmerking); - - IF LENGTH (v_prs_bedrijf_opmerking) > 320 - THEN - v_prs_bedrijf_opmerking := - SUBSTR (TRIM (v_prs_bedrijf_opmerking), 1, 320); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Opmerking wordt afgebroken tot [' - || v_prs_bedrijf_opmerking - || ']' - ); - END IF; - - -- - v_errorhint := 'MLD-order adres te lang'; - v_prs_bedrijf_mldorder_adres := - TRIM (v_prs_bedrijf_mldorder_adres); - - IF LENGTH (v_prs_bedrijf_mldorder_adres) > 256 - THEN - v_prs_bedrijf_mldorder_adres := - SUBSTR (TRIM (v_prs_bedrijf_mldorder_adres), 1, 256); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'MLD-order adres wordt afgebroken tot [' - || v_prs_bedrijf_mldorder_adres - || ']' - ); - END IF; - - -- - v_errorhint := 'Bankrekeningnummer te lang'; - v_bankrekeningnummer := TRIM (v_bankrekeningnummer); - - IF LENGTH (v_bankrekeningnummer) > 50 - THEN - v_bankrekeningnummer := - SUBSTR (TRIM (v_bankrekeningnummer), 1, 50); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Bankrekeningnummer wordt afgebroken tot [' - || v_bankrekeningnummer - || ']' - ); - END IF; - - -- - v_errorhint := 'BTW-nummer te lang'; - v_btw_nummer := TRIM (v_btw_nummer); - - IF LENGTH (v_btw_nummer) > 50 - THEN - v_btw_nummer := SUBSTR (TRIM (v_btw_nummer), 1, 50); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'BTW-nummer wordt afgebroken tot [' || v_btw_nummer || ']' - ); - END IF; - - -- - v_errorhint := 'Dienst te lang'; - v_prs_dienst_omschrijving := TRIM (v_prs_dienst_omschrijving); - - IF LENGTH (v_prs_dienst_omschrijving) > 60 - THEN - v_prs_dienst_omschrijving := - SUBSTR (TRIM (v_prs_dienst_omschrijving), 1, 60); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Dienst wordt afgebroken tot [' - || v_prs_dienst_omschrijving - || ']' - ); - END IF; - - -- - v_errorhint := 'Locatiecode te lang'; - v_alg_locatie_code := TRIM (v_alg_locatie_code); - - IF LENGTH (v_alg_locatie_code) > 10 - THEN - v_alg_locatie_code := NULL; - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Locatiecode [' - || v_alg_locatie_code - || '] wordt genegeerd' - ); - END IF; - - -- - v_errorhint := 'Achternaam (CP) te lang'; - v_prs_contactpersoon_naam := TRIM (v_prs_contactpersoon_naam); - - IF LENGTH (v_prs_contactpersoon_naam) > 30 - THEN - v_prs_contactpersoon_naam := - SUBSTR (TRIM (v_prs_contactpersoon_naam), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Achternaam wordt afgebroken tot [' - || v_prs_contactpersoon_naam - || ']' - ); - END IF; - - -- - v_errorhint := 'Tussenvoegsel (CP) te lang'; - v_prs_contactpersoon_tussenv := - TRIM (v_prs_contactpersoon_tussenv); - - IF LENGTH (v_prs_contactpersoon_tussenv) > 15 - THEN - v_prs_contactpersoon_tussenv := - SUBSTR (TRIM (v_prs_contactpersoon_tussenv), 1, 15); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Tussenvoegsel wordt afgebroken tot [' - || v_prs_contactpersoon_tussenv - || ']' - ); - END IF; - - -- - v_errorhint := 'Voorletters (CP) te lang'; - v_prs_contactpersoon_voorl := - TRIM (v_prs_contactpersoon_voorl); - - IF LENGTH (v_prs_contactpersoon_voorl) > 10 - THEN - v_prs_contactpersoon_voorl := - SUBSTR (TRIM (v_prs_contactpersoon_voorl), 1, 10); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Voorletters worden afgebroken tot [' - || v_prs_contactpersoon_voorl - || ']' - ); - END IF; - - -- - v_errorhint := 'Voornaam (CP) te lang'; - v_prs_contactpersoon_voornaam := - TRIM (v_prs_contactpersoon_voornaam); - - IF LENGTH (v_prs_contactpersoon_voornaam) > 10 - THEN - v_prs_contactpersoon_voornaam := - SUBSTR (TRIM (v_prs_contactpersoon_voornaam), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Voornaam worden afgebroken tot [' - || v_prs_contactpersoon_voornaam - || ']' - ); - END IF; - - -- - v_errorhint := 'Telefoon (CP) te lang'; - v_prs_contactpersoon_tel_1 := - TRIM (v_prs_contactpersoon_tel_1); - - IF LENGTH (v_prs_contactpersoon_tel_1) > 10 - THEN - v_prs_contactpersoon_tel_1 := - SUBSTR (TRIM (v_prs_contactpersoon_tel_1), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Telefoon worden afgebroken tot [' - || v_prs_contactpersoon_tel_1 - || ']' - ); - END IF; - - -- - v_errorhint := 'Fax (CP) te lang'; - v_prs_contactpersoon_fax := TRIM (v_prs_contactpersoon_fax); - - IF LENGTH (v_prs_contactpersoon_fax) > 10 - THEN - v_prs_contactpersoon_fax := - SUBSTR (TRIM (v_prs_contactpersoon_fax), 1, 30); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'Fax worden afgebroken tot [' - || v_prs_contactpersoon_fax - || ']' - ); - END IF; - - -- - v_errorhint := 'E-mail (CP) te lang'; - v_prs_contactpersoon_email := TRIM (v_prs_contactpersoon_email); - - IF LENGTH (v_prs_contactpersoon_email) > 50 - THEN - v_prs_contactpersoon_email := - SUBSTR (TRIM (v_prs_contactpersoon_email), 1, 50); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errorhint, - 'E-mail worden afgebroken tot [' - || v_prs_contactpersoon_email - || ']' - ); - END IF; - - -- Insert geformatteerde import record - IF v_ongeldig = 0 - THEN - BEGIN - INSERT INTO uwva_imp_bedrijf ( - prs_bedrijf_naam, - prs_leverancier_nr, - prs_bedrijf_bezoek_adres, - prs_bedrijf_bezoek_postcode, - prs_bedrijf_bezoek_plaats, - prs_bedrijf_bezoek_land, - prs_bedrijf_post_adres, - prs_bedrijf_post_postcode, - prs_bedrijf_post_plaats, - prs_bedrijf_post_land, - prs_bedrijf_telefoon, - prs_bedrijf_fax, - prs_bedrijf_email, - prs_bedrijf_contact_persoon, - prs_bedrijf_contact_telefoon, - prs_bedrijf_contact_fax, - prs_bedrijf_leverancier, - prs_bedrijf_uitvoerende, - prs_bedrijf_contract, - prs_bedrijf_huurder, - prs_bedrijf_ingids, - prs_bedrijf_uurloon, - prs_overeenkomst_nr, - prs_overeenkomst_datum, - prs_bedrijf_opmerking, - prs_bedrijf_mldorder_adres, - bankrekeningnummer, - btw_nummer, - prs_dienst_omschrijving, - alg_locatie_code, - prs_contactpersoon_naam, - prs_contactpersoon_tussenv, - prs_contactpersoon_voorletters, - prs_contactpersoon_voornaam, - prs_contactpersoon_telefoon_1, - prs_contactpersoon_fax, - prs_contactpersoon_email - ) - VALUES (v_prs_bedrijf_naam, - v_prs_leverancier_nr, - v_prs_bedrijf_bezoek_adres, - v_prs_bedrijf_bezoek_postcode, - v_prs_bedrijf_bezoek_plaats, - v_prs_bedrijf_bezoek_land, - v_prs_bedrijf_post_adres, - v_prs_bedrijf_post_postcode, - v_prs_bedrijf_post_plaats, - v_prs_bedrijf_post_land, - v_prs_bedrijf_telefoon, - v_prs_bedrijf_fax, - v_prs_bedrijf_email, - v_prs_bedrijf_contact_persoon, - v_prs_bedrijf_contact_telefoon, - v_prs_bedrijf_contact_fax, - v_prs_bedrijf_leverancier_n, - v_prs_bedrijf_uitvoerende_n, - v_prs_bedrijf_contract_n, - v_prs_bedrijf_huurder_n, - v_prs_bedrijf_ingids_n, - v_prs_bedrijf_uurloon_n, - v_prs_overeenkomst_nr, - v_prs_overeenkomst_date, - v_prs_bedrijf_opmerking, - v_prs_bedrijf_mldorder_adres, - v_bankrekeningnummer, - v_btw_nummer, - v_prs_dienst_omschrijving, - v_alg_locatie_code, - v_prs_contactpersoon_naam, - v_prs_contactpersoon_tussenv, - v_prs_contactpersoon_voorl, - v_prs_contactpersoon_voornaam, - v_prs_contactpersoon_tel_1, - v_prs_contactpersoon_fax, - v_prs_contactpersoon_email); - - v_count_import := v_count_import + 1; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog ( - p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Fout bij toevoegen regel aan importtabel UWVA_IMP_BEDRIJF.' - ); - END; - END IF; - END IF; - END; - END LOOP; - - IF (header_is_valid = 0) - THEN - fac.imp_writelog (p_import_key, - 'E', - 'Ongeldig importbestand', - 'Geen header of header niet volgens specificatie!'); - ELSE - fac.imp_writelog ( - p_import_key, - 'S', - 'Relaties: aantal ingelezen importregels: ' || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'Relaties: aantal ongeldige niet ingelezen importregels: ' - || TO_CHAR (v_count_tot - v_count_import), - '' - ); - END IF; - - COMMIT; -EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - 'Inleesproces relaties afgebroken!'); -END uwva_import_bedrijf; -/ - -/* Formatted on 25-11-2009 18:02:02 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE uwva_update_bedrijf (p_import_key IN NUMBER) -AS - v_errormsg VARCHAR2 (1000) := ''; - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - - -- SUBPROC - PROCEDURE add_bedrijf (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT * FROM uwva_imp_bedrijf; - - v_aanduiding VARCHAR2 (200); - v_errorhint VARCHAR2 (1000); - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count NUMBER (10); - v_count_tot NUMBER (10); - v_count_update NUMBER (10); - v_bedrijf_key NUMBER (10); - v_kenmerklink_key NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_update := 0; - - FOR rec IN c1 - LOOP - BEGIN - v_count_tot := v_count_tot + 1; - v_aanduiding := '[' || rec.prs_bedrijf_naam || '] '; - - IF rec.prs_bedrijf_naam IS NULL - THEN - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || 'Bedrijf ongedefinieerd!', - ''); - COMMIT; - ELSE - v_errorhint := 'Fout bij bepalen bedrijf'; - - SELECT COUNT ( * ) - INTO v_count - FROM prs_v_aanwezigbedrijf - WHERE UPPER (prs_bedrijf_naam) = - UPPER (rec.prs_bedrijf_naam); - - IF v_count = 0 - THEN - v_errorhint := 'Fout bij toevoegen bedrijf'; - - INSERT INTO prs_bedrijf (prs_bedrijf_naam, - prs_leverancier_nr, - prs_bedrijf_bezoek_adres, - prs_bedrijf_bezoek_postcode, - prs_bedrijf_bezoek_plaats, - prs_bedrijf_bezoek_land, - prs_bedrijf_post_adres, - prs_bedrijf_post_postcode, - prs_bedrijf_post_plaats, - prs_bedrijf_post_land, - prs_bedrijf_telefoon, - prs_bedrijf_fax, - prs_bedrijf_email, - prs_bedrijf_contact_persoon, - prs_bedrijf_contact_telefoon, - prs_bedrijf_contact_fax, - prs_bedrijf_leverancier, - prs_bedrijf_uitvoerende, - prs_bedrijf_contract, - prs_bedrijf_huurder, - prs_bedrijf_ingids, - prs_bedrijf_uurloon, - prs_overeenkomst_nr, - prs_overeenkomst_datum, - prs_bedrijf_opmerking, - prs_bedrijf_mldorder_adres) - VALUES (rec.prs_bedrijf_naam, - rec.prs_leverancier_nr, - rec.prs_bedrijf_bezoek_adres, - rec.prs_bedrijf_bezoek_postcode, - rec.prs_bedrijf_bezoek_plaats, - rec.prs_bedrijf_bezoek_land, - rec.prs_bedrijf_post_adres, - rec.prs_bedrijf_post_postcode, - rec.prs_bedrijf_post_plaats, - rec.prs_bedrijf_post_land, - rec.prs_bedrijf_telefoon, - rec.prs_bedrijf_fax, - rec.prs_bedrijf_email, - rec.prs_bedrijf_contact_persoon, - rec.prs_bedrijf_contact_telefoon, - rec.prs_bedrijf_contact_fax, - rec.prs_bedrijf_leverancier, - rec.prs_bedrijf_uitvoerende, - rec.prs_bedrijf_contract, - rec.prs_bedrijf_huurder, - rec.prs_bedrijf_ingids, - rec.prs_bedrijf_uurloon, - rec.prs_overeenkomst_nr, - rec.prs_overeenkomst_datum, - rec.prs_bedrijf_opmerking, - rec.prs_bedrijf_mldorder_adres); - ELSE -- v_count = 1 - SELECT prs_bedrijf_key - INTO v_bedrijf_key - FROM prs_v_aanwezigbedrijf - WHERE UPPER (prs_bedrijf_naam) = - UPPER (rec.prs_bedrijf_naam); - - v_errorhint := 'Fout bij wijzigen bedrijf'; - - UPDATE prs_bedrijf - SET prs_leverancier_nr = - COALESCE (rec.prs_leverancier_nr, - prs_leverancier_nr), - prs_bedrijf_bezoek_adres = - COALESCE (rec.prs_bedrijf_bezoek_adres, - prs_bedrijf_bezoek_adres), - prs_bedrijf_bezoek_postcode = - COALESCE (rec.prs_bedrijf_bezoek_postcode, - prs_bedrijf_bezoek_postcode), - prs_bedrijf_bezoek_plaats = - COALESCE (rec.prs_bedrijf_bezoek_plaats, - prs_bedrijf_bezoek_plaats), - prs_bedrijf_bezoek_land = - COALESCE (rec.prs_bedrijf_bezoek_land, - prs_bedrijf_bezoek_land), - prs_bedrijf_post_adres = - COALESCE (rec.prs_bedrijf_post_adres, - prs_bedrijf_post_adres), - prs_bedrijf_post_postcode = - COALESCE (rec.prs_bedrijf_post_postcode, - prs_bedrijf_post_postcode), - prs_bedrijf_post_plaats = - COALESCE (rec.prs_bedrijf_post_plaats, - prs_bedrijf_post_plaats), - prs_bedrijf_post_land = - COALESCE (rec.prs_bedrijf_post_land, - prs_bedrijf_post_land), - prs_bedrijf_telefoon = - COALESCE (rec.prs_bedrijf_telefoon, - prs_bedrijf_telefoon), - prs_bedrijf_fax = - COALESCE (rec.prs_bedrijf_fax, prs_bedrijf_fax), - prs_bedrijf_email = - COALESCE (rec.prs_bedrijf_email, - prs_bedrijf_email), - prs_bedrijf_contact_persoon = - COALESCE (rec.prs_bedrijf_contact_persoon, - prs_bedrijf_contact_persoon), - prs_bedrijf_contact_telefoon = - COALESCE (rec.prs_bedrijf_contact_telefoon, - prs_bedrijf_contact_telefoon), - prs_bedrijf_contact_fax = - COALESCE (rec.prs_bedrijf_contact_fax, - prs_bedrijf_contact_fax), - prs_bedrijf_leverancier = - rec.prs_bedrijf_leverancier, - prs_bedrijf_uitvoerende = - rec.prs_bedrijf_uitvoerende, - prs_bedrijf_contract = rec.prs_bedrijf_contract, - prs_bedrijf_huurder = rec.prs_bedrijf_huurder, - prs_bedrijf_ingids = rec.prs_bedrijf_ingids, - prs_bedrijf_uurloon = - COALESCE (rec.prs_bedrijf_uurloon, - prs_bedrijf_uurloon), - prs_overeenkomst_nr = - COALESCE (rec.prs_overeenkomst_nr, - prs_overeenkomst_nr), - prs_overeenkomst_datum = - COALESCE (rec.prs_overeenkomst_datum, - prs_overeenkomst_datum), - prs_bedrijf_opmerking = - COALESCE (rec.prs_bedrijf_opmerking, - prs_bedrijf_opmerking), - prs_bedrijf_mldorder_adres = - COALESCE (rec.prs_bedrijf_mldorder_adres, - prs_bedrijf_mldorder_adres) - WHERE prs_bedrijf_naam = rec.prs_bedrijf_naam; - END IF; - - COMMIT; - - IF rec.bankrekeningnummer IS NOT NULL - THEN - v_errorhint := 'Fout bij bepalen bankrekeningnummer'; - - SELECT COUNT ( * ), MAX (prs_kenmerklink_key) - INTO v_count, v_kenmerklink_key - FROM prs_v_aanwezigkenmerklink - WHERE prs_link_key = v_bedrijf_key - AND prs_kenmerklink_niveau = 'B' - AND prs_kenmerk_key = 1140; -- Bankrekeningnummer - - IF v_count = 0 - THEN - v_errorhint := 'Fout bij toevoegen bankrekeningnummer'; - - INSERT INTO prs_kenmerklink (prs_link_key, - prs_kenmerklink_niveau, - prs_kenmerk_key, - prs_kenmerklink_waarde) - VALUES (v_bedrijf_key, - 'B', - 1140, - rec.bankrekeningnummer); - ELSE -- v_count = 1 - v_errorhint := 'Fout bij wijzigen bankrekeningnummer'; - - UPDATE prs_kenmerklink - SET prs_kenmerklink_waarde = rec.bankrekeningnummer - WHERE prs_kenmerklink_key = v_kenmerklink_key; - END IF; - - COMMIT; - END IF; - - IF rec.btw_nummer IS NOT NULL - THEN - v_errorhint := 'Fout bij bepalen BTW-nummer'; - - SELECT COUNT ( * ), MAX (prs_kenmerklink_key) - INTO v_count, v_kenmerklink_key - FROM prs_v_aanwezigkenmerklink - WHERE prs_link_key = v_bedrijf_key - AND prs_kenmerklink_niveau = 'B' - AND prs_kenmerk_key = 1080; -- BTW-nummer - - IF v_count = 0 - THEN - v_errorhint := 'Fout bij toevoegen BTW-nummer'; - - INSERT INTO prs_kenmerklink (prs_link_key, - prs_kenmerklink_niveau, - prs_kenmerk_key, - prs_kenmerklink_waarde) - VALUES (v_bedrijf_key, - 'B', - 1080, - rec.btw_nummer); - ELSE -- v_count = 1 - v_errorhint := 'Fout bij wijzigen BTW-nummer'; - - UPDATE prs_kenmerklink - SET prs_kenmerklink_waarde = rec.btw_nummer - WHERE prs_kenmerklink_key = v_kenmerklink_key; - END IF; - - COMMIT; - END IF; - - v_count_update := v_count_update + 1; - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - v_errorhint); - COMMIT; - END; - END LOOP; - - fac.imp_writelog ( - p_import_key, - 'S', - 'Bedrijf: aantal ingelezen: ' || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'Bedrijf: aantal toegevoegd/bijgewerkt: ' - || TO_CHAR (v_count_update), - '' - ); - COMMIT; - END; - - -- SUBPROC - PROCEDURE add_dienst (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT DISTINCT prs_dienst_omschrijving - FROM uwva_imp_bedrijf - WHERE prs_dienst_omschrijving IS NOT NULL; - - v_aanduiding VARCHAR2 (200); - v_errorhint VARCHAR2 (1000); - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count NUMBER (10); - v_count_tot NUMBER (10); - v_count_update NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_update := 0; - - FOR rec IN c1 - LOOP - BEGIN - v_count_tot := v_count_tot + 1; - v_aanduiding := '[' || rec.prs_dienst_omschrijving || '] '; - - v_errorhint := 'Fout bij bepalen dienst'; - - SELECT COUNT ( * ) - INTO v_count - FROM prs_dienst - WHERE UPPER (prs_dienst_omschrijving) = - UPPER (rec.prs_dienst_omschrijving); - - IF v_count = 0 - THEN - v_errorhint := 'Fout bij toevoegen dienst'; - - INSERT INTO prs_dienst (prs_dienst_omschrijving) - VALUES (rec.prs_dienst_omschrijving); - - v_count_update := v_count_update + 1; - COMMIT; - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - v_errorhint); - COMMIT; - END; - END LOOP; - - fac.imp_writelog ( - p_import_key, - 'S', - 'Dienst: aantal ingelezen: ' || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'Dienst: aantal toegevoegd: ' || TO_CHAR (v_count_update), - '' - ); - COMMIT; - END; - - -- SUBPROC - PROCEDURE add_bedrijfdienstlocatie (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT prs_bedrijf_naam, prs_dienst_omschrijving, alg_locatie_code - FROM uwva_imp_bedrijf - WHERE prs_dienst_omschrijving IS NOT NULL; - - v_aanduiding VARCHAR2 (200); - v_errorhint VARCHAR2 (1000); - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count NUMBER (10); - v_count_tot NUMBER (10); - v_count_update NUMBER (10); - v_bedrijf_key NUMBER (10); - v_dienst_key NUMBER (10); - v_locatie_key NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_update := 0; - - FOR rec IN c1 - LOOP - BEGIN - v_count_tot := v_count_tot + 1; - v_aanduiding := - '[' - || rec.prs_bedrijf_naam - || '|' - || rec.prs_dienst_omschrijving - || '|' - || rec.alg_locatie_code - || '] '; - - v_errorhint := 'Fout bij bepalen bedrijf'; - - SELECT prs_bedrijf_key - INTO v_bedrijf_key - FROM prs_v_aanwezigbedrijf - WHERE UPPER (prs_bedrijf_naam) = UPPER (rec.prs_bedrijf_naam); - - v_errorhint := 'Fout bij bepalen dienst'; - - SELECT prs_dienst_key - INTO v_dienst_key - FROM prs_dienst - WHERE UPPER (prs_dienst_omschrijving) = - UPPER (rec.prs_dienst_omschrijving); - - v_errorhint := 'Fout bij bepalen locatie'; - - SELECT COUNT ( * ) - INTO v_count - FROM alg_v_aanweziglocatie - WHERE UPPER (alg_locatie_code) = UPPER (rec.alg_locatie_code); - - v_locatie_key := NULL; - - IF v_count = 1 - THEN - SELECT alg_locatie_key - INTO v_locatie_key - FROM alg_v_aanweziglocatie - WHERE UPPER (alg_locatie_code) = - UPPER (rec.alg_locatie_code); - END IF; - - v_errorhint := 'Fout bij bepalen bedrijf-dienst-locatie'; - - SELECT COUNT ( * ) - INTO v_count - FROM prs_bedrijfdienstlocatie - WHERE prs_bedrijf_key = v_bedrijf_key - AND prs_dienst_key = v_dienst_key - AND alg_locatie_key = v_locatie_key; - - IF v_count = 0 - THEN - v_errorhint := 'Fout bij toevoegen bedrijf-dienst-locatie'; - - INSERT INTO prs_bedrijfdienstlocatie ( - prs_bedrijf_key, - prs_dienst_key, - alg_locatie_key - ) - VALUES (v_bedrijf_key, v_dienst_key, v_locatie_key); - - v_count_update := v_count_update + 1; - COMMIT; - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - v_errorhint); - COMMIT; - END; - END LOOP; - - fac.imp_writelog ( - p_import_key, - 'S', - 'Bedrijf-dienst-locatie: aantal ingelezen: ' - || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'Bedrijf-dienst-locatie: aantal toegevoegd: ' - || TO_CHAR (v_count_update), - '' - ); - COMMIT; - END; - - -- SUBPROC - PROCEDURE add_contactpersoon (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT prs_bedrijf_naam, - prs_contactpersoon_naam, - prs_contactpersoon_tussenv, - prs_contactpersoon_voorletters, - prs_contactpersoon_voornaam, - prs_contactpersoon_telefoon_1, - prs_contactpersoon_fax, - prs_contactpersoon_email - FROM uwva_imp_bedrijf - WHERE prs_contactpersoon_naam IS NOT NULL; - - v_aanduiding VARCHAR2 (200); - v_errorhint VARCHAR2 (1000); - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count NUMBER (10); - v_count_tot NUMBER (10); - v_count_update NUMBER (10); - v_bedrijf_key NUMBER (10); - v_contact_key NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_update := 0; - - FOR rec IN c1 - LOOP - BEGIN - v_count_tot := v_count_tot + 1; - v_aanduiding := - '[' - || rec.prs_contactpersoon_naam - || '|' - || rec.prs_contactpersoon_voornaam - || '] '; - - v_errorhint := 'Fout bij bepalen bedrijf'; - - SELECT prs_bedrijf_key - INTO v_bedrijf_key - FROM prs_v_aanwezigbedrijf - WHERE UPPER (prs_bedrijf_naam) = UPPER (rec.prs_bedrijf_naam); - - v_errorhint := 'Fout bij bepalen contactpersoon'; - - SELECT COUNT ( * ) - INTO v_count - FROM prs_contactpersoon - WHERE UPPER (prs_contactpersoon_naam) = - UPPER (rec.prs_contactpersoon_naam) - AND prs_bedrijf_key = v_bedrijf_key; - - IF v_count = 0 - THEN - v_errorhint := 'Fout bij toevoegen contactpersoon'; - - INSERT INTO prs_contactpersoon ( - prs_contactpersoon_naam, - prs_contactpersoon_tussenv, - prs_contactpersoon_voorletters, - prs_contactpersoon_voornaam, - prs_contactpersoon_telefoon_1, - prs_contactpersoon_fax, - prs_contactpersoon_email, - prs_bedrijf_key - ) - VALUES (rec.prs_contactpersoon_naam, - rec.prs_contactpersoon_tussenv, - rec.prs_contactpersoon_voorletters, - rec.prs_contactpersoon_voornaam, - rec.prs_contactpersoon_telefoon_1, - rec.prs_contactpersoon_fax, - rec.prs_contactpersoon_email, - v_bedrijf_key); - ELSE - v_errorhint := 'Fout bij wijzigen contactpersoon'; - - UPDATE prs_contactpersoon - SET prs_contactpersoon_tussenv = - COALESCE (rec.prs_contactpersoon_tussenv, - prs_contactpersoon_tussenv), - prs_contactpersoon_voorletters = - COALESCE (rec.prs_contactpersoon_voorletters, - prs_contactpersoon_voorletters), - prs_contactpersoon_voornaam = - COALESCE (rec.prs_contactpersoon_voornaam, - prs_contactpersoon_voornaam), - prs_contactpersoon_telefoon_1 = - COALESCE (rec.prs_contactpersoon_telefoon_1, - prs_contactpersoon_telefoon_1), - prs_contactpersoon_fax = - COALESCE (rec.prs_contactpersoon_fax, - prs_contactpersoon_fax), - prs_contactpersoon_email = - COALESCE (rec.prs_contactpersoon_email, - prs_contactpersoon_email) - WHERE UPPER (prs_contactpersoon_naam) = - UPPER (rec.prs_contactpersoon_naam) - AND prs_bedrijf_key = v_bedrijf_key; - END IF; - - v_count_update := v_count_update + 1; - COMMIT; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - v_errorhint); - COMMIT; - END; - END LOOP; - - fac.imp_writelog ( - p_import_key, - 'S', - 'Contactpersoon: aantal ingelezen: ' || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'Contactpersoon: aantal toegevoegd/bijgewerkt: ' || TO_CHAR (v_count_update), - '' - ); - COMMIT; - END; - - -- SUBPROC - PROCEDURE add_contactpersoonlocatie (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT prs_contactpersoon_naam, - prs_contactpersoon_voornaam, - alg_locatie_code - FROM uwva_imp_bedrijf - WHERE prs_contactpersoon_naam IS NOT NULL - AND alg_locatie_code IS NOT NULL; - - v_aanduiding VARCHAR2 (200); - v_errorhint VARCHAR2 (1000); - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count NUMBER (10); - v_count_tot NUMBER (10); - v_count_update NUMBER (10); - v_contact_key NUMBER (10); - v_locatie_key NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_update := 0; - - FOR rec IN c1 - LOOP - BEGIN - v_count_tot := v_count_tot + 1; - v_aanduiding := - '[' - || rec.prs_contactpersoon_naam - || '|' - || rec.prs_contactpersoon_voornaam - || '|' - || rec.alg_locatie_code - || '] '; - - v_errorhint := 'Fout bij bepalen contactpersoon'; - - SELECT prs_contactpersoon_key - INTO v_contact_key - FROM prs_contactpersoon - WHERE UPPER (prs_contactpersoon_naam) = - UPPER (rec.prs_contactpersoon_naam); - - v_errorhint := 'Fout bij bepalen locatie'; - - SELECT alg_locatie_key - INTO v_locatie_key - FROM alg_v_aanweziglocatie - WHERE UPPER (alg_locatie_code) = UPPER (rec.alg_locatie_code); - - - v_errorhint := 'Fout bij bepalen contactpersoon-locatie'; - - SELECT COUNT ( * ) - INTO v_count - FROM prs_contactpersoon_locatie - WHERE prs_contactpersoon_key = v_contact_key - AND alg_locatie_key = v_locatie_key; - - IF v_count = 0 - THEN - v_errorhint := 'Fout bij toevoegen contactpersoon-locatie'; - - INSERT INTO prs_contactpersoon_locatie ( - prs_contactpersoon_key, - alg_locatie_key - ) - VALUES (v_contact_key, v_locatie_key); - - v_count_update := v_count_update + 1; - COMMIT; - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - v_errorhint); - COMMIT; - END; - END LOOP; - - fac.imp_writelog ( - p_import_key, - 'S', - 'Contactpersoon-locatie: aantal ingelezen: ' - || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'Contactpersoon-locatie: aantal toegevoegd: ' - || TO_CHAR (v_count_update), - '' - ); - COMMIT; - END; --- MAIN -BEGIN - add_bedrijf (p_import_key); - add_dienst (p_import_key); - add_bedrijfdienstlocatie (p_import_key); - add_contactpersoon (p_import_key); - add_contactpersoonlocatie (p_import_key); -EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 150); - v_errormsg := - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - 'Importproces relaties afgebroken!', - v_errormsg); -END uwva_update_bedrijf; -/ - -- UWVA#16324 /* Formatted on 25-11-2009 13:50:22 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW uwva_v_contractanten