diff --git a/VBXX/vbxx.sql b/VBXX/vbxx.sql index 12e51ccb2..0b9609710 100644 --- a/VBXX/vbxx.sql +++ b/VBXX/vbxx.sql @@ -357,14 +357,33 @@ AS AS v_regio_key NUMBER; BEGIN - SELECT alg_regio_key + SELECT MIN(d.alg_regio_key) INTO v_regio_key FROM fin_factuur f, mld_opdr o, mld_melding m, alg_locatie l, alg_district d WHERE f.fin_factuur_key = p_fin_key AND f.mld_opdr_key = o.mld_opdr_key AND o.mld_melding_key = m.mld_melding_key AND m.mld_alg_locatie_key = l.alg_locatie_key - AND l.alg_district_key = d.alg_regio_key; + AND l.alg_district_key = d.alg_district_key; + IF v_regio_key IS NOT NULL + THEN + RETURN v_regio_key; + END IF; + + SELECT MIN (alg_regio_key) + INTO v_regio_key + FROM fin_factuur f, + cnt_contract_plaats cp, + alg_locatie l, + alg_district d + WHERE f.fin_factuur_key = p_fin_key + AND f.cnt_contract_key = cp.cnt_contract_key + AND ( cp.cnt_alg_plaats_code = 'G' + AND cp.cnt_alg_plaats_key IN (SELECT alg_gebouw_key + FROM alg_gebouw g + WHERE g.alg_locatie_key = l.alg_locatie_key) + OR (cp.cnt_alg_plaats_code = 'L' AND cp.cnt_alg_plaats_key = l.alg_locatie_key)) + AND l.alg_district_key = d.alg_district_key; RETURN v_regio_key; END;