diff --git a/YASK/yask.sql b/YASK/yask.sql index e83221ab3..d3a5c2bf2 100644 --- a/YASK/yask.sql +++ b/YASK/yask.sql @@ -3119,7 +3119,7 @@ AS v_locatie_code VARCHAR2 (100); v_srtdiscipline_omschrijving VARCHAR2 (100); v_discipline_omschrijving VARCHAR2 (100); - v_kostensoort_refcode VARCHAR2 (100); + v_kostensoort_oms VARCHAR2 (100); v_opslag_txt VARCHAR2 (100); v_leverancier_nr VARCHAR2 (100); v_locatie_key NUMBER (10); @@ -3158,7 +3158,7 @@ BEGIN fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_code); fac.imp_getfield (v_newline, v_fielddelimitor, v_srtdiscipline_omschrijving); fac.imp_getfield (v_newline, v_fielddelimitor, v_discipline_omschrijving); - fac.imp_getfield (v_newline, v_fielddelimitor, v_kostensoort_refcode); + fac.imp_getfield (v_newline, v_fielddelimitor, v_kostensoort_oms); fac.imp_getfield (v_newline, v_fielddelimitor, v_leverancier_nr); fac.imp_getfield (v_newline, v_fielddelimitor, v_opslag_txt); fac.imp_getfield (v_newline, v_fielddelimitor, v_begin_txt); @@ -3169,7 +3169,7 @@ BEGIN IF (UPPER (v_locatie_code) = 'LOCATIE' OR UPPER (v_locatie_code) = 'ALG_LOCATIE_CODE') AND (UPPER (v_srtdiscipline_omschrijving) = 'VAKGROEPTYPE' OR UPPER (v_srtdiscipline_omschrijving) = 'INS_SRTDISCIPLINE_OMSCHRIJVING') AND (UPPER (v_discipline_omschrijving) = 'VAKGROEP' OR UPPER (v_discipline_omschrijving) = 'INS_DISCIPLINE_OMSCHRIJVING') - AND (UPPER (v_kostensoort_refcode) = 'NEN CODE' OR UPPER (v_kostensoort_refcode) = 'PRS_KOSTENSOORT_REFCODE') + AND (UPPER (v_kostensoort_oms) = 'KOSTENSOORT' OR UPPER (v_kostensoort_oms) = 'PRS_KOSTENSOORT_OMS') AND (UPPER (v_leverancier_nr) = 'LEVERANCIERNUMMER' OR UPPER (v_leverancier_nr) = 'PRS_LEVERANCIER_NR') AND UPPER (v_opslag_txt) = 'OPSLAG' AND UPPER (v_begin_txt) = 'INGANGSDATUM' @@ -3191,7 +3191,7 @@ BEGIN || ' | ' || v_discipline_omschrijving || ' | ' - || v_kostensoort_refcode + || v_kostensoort_oms || ' | ' || v_leverancier_nr || ' | ' @@ -3242,33 +3242,48 @@ BEGIN END; BEGIN - v_errorhint := 'Controleer nen code'; + v_errorhint := 'Controleer kostensoort code'; SELECT prs_kostensoort_key INTO v_kostensoort_key FROM prs_kostensoort - WHERE UPPER (prs_kostensoort_refcode) = - UPPER (TRIM (v_kostensoort_refcode)); + WHERE UPPER (prs_kostensoort_oms) = + UPPER (TRIM (v_kostensoort_oms)); EXCEPTION WHEN NO_DATA_FOUND THEN v_kostensoort_key := NULL; END; - BEGIN - v_errorhint := 'Controleer leverancier'; + v_errorhint := 'Leverancier niet gevonden: ' || v_leverancier_nr; + v_bedrijf_key := NULL; - SELECT prs_bedrijf_key - INTO v_bedrijf_key - FROM prs_bedrijf - WHERE prs_bedrijf_verwijder IS NULL - AND UPPER (prs_leverancier_nr) = - UPPER (TRIM (v_leverancier_nr)); - EXCEPTION - WHEN NO_DATA_FOUND - THEN - v_bedrijf_key := NULL; - END; + IF v_leverancier_nr IS NOT NULL + THEN + BEGIN + -- vinden we dit bedrijf via het kenmerk AFWLEVERANCIERNR? + SELECT prs_link_key + INTO v_bedrijf_key + FROM prs_kenmerklink kl, prs_kenmerk k + WHERE kl.prs_kenmerk_key = k.prs_kenmerk_key + AND k.prs_kenmerk_code = 'AFWLEVERANCIERNR' + AND UPPER(kl.prs_kenmerklink_waarde) = UPPER(v_leverancier_nr); + + EXCEPTION WHEN NO_DATA_FOUND THEN + + BEGIN + SELECT prs_bedrijf_key + INTO v_bedrijf_key + FROM prs_bedrijf + WHERE prs_bedrijf_verwijder IS NULL + AND UPPER (prs_leverancier_nr) = + UPPER (TRIM (v_leverancier_nr)); + EXCEPTION + WHEN NO_DATA_FOUND THEN + fac.imp_writelog (p_import_key, 'E', v_errorhint, ''); + END; + END; + END IF; v_errorhint := 'Controleer opslag'; v_opslag_txt := REPLACE (v_opslag_txt, ',', '.'); @@ -3312,7 +3327,7 @@ BEGIN || ' | ' || v_discipline_omschrijving || ' | ' - || v_kostensoort_refcode + || v_kostensoort_oms || ' | ' || v_opslag_txt || ' | ' @@ -3367,8 +3382,8 @@ AS l.alg_locatie_code, sd.ins_srtdiscipline_omschrijving, d.ins_discipline_omschrijving, - prs_kostensoort_refcode, - prs_leverancier_nr, + prs_kostensoort_oms, + COALESCE((SELECT FLX.getflex('PRS', k.prs_kenmerk_key, b.prs_bedrijf_key, 'B', 1) FROM prs_kenmerk k WHERE k.prs_kenmerk_code = 'AFWLEVERANCIERNR'), prs_leverancier_nr) prs_leverancier_nr, o.opslag, o.ingangsdatum, o.einddatum,