CARG#87682 De kosten voor opslag moeten ook op btw percentage uitgesplitst worden.

YAXX#87671 Import van opslag percentages kan nu ook op regio of district.

svn path=/Customer/trunk/; revision=68011
This commit is contained in:
Arthur Egberink
2025-02-17 16:04:57 +00:00
parent fd17d17f4b
commit bf3ea109c6

View File

@@ -91,6 +91,8 @@ AS
v_opdr_mat NUMBER;
v_locatie_key ALG_LOCATIE.ALG_LOCATIE_KEY%TYPE;
v_district_key ALG_DISTRICT.ALG_DISTRICT_KEY%TYPE;
v_regio_key ALG_REGIO.ALG_REGIO_KEY%TYPE;
v_srtdiscipline_key INS_SRTDISCIPLINE.INS_SRTDISCIPLINE_KEY%TYPE;
v_discipline_key INS_TAB_DISCIPLINE.INS_DISCIPLINE_KEY%TYPE;
v_kostensoort_key PRS_KOSTENSOORT.PRS_KOSTENSOORT_KEY%TYPE;
@@ -144,22 +146,28 @@ AS
RETURN;
END IF;
SELECT m.mld_alg_locatie_key,
SELECT di.alg_regio_key,
di.alg_district_key,
m.mld_alg_locatie_key,
sd.ins_srtdiscipline_key,
d.ins_discipline_key,
COALESCE(o.prs_kostensoort_key, std.prs_kostensoort_key),
mld_melding_datum,
mld_uitvoerende_keys
INTO v_locatie_key, v_srtdiscipline_key, v_discipline_key, v_kostensoort_key, v_melding_datum, v_bedrijf_key
INTO v_regio_key, v_district_key, v_locatie_key, v_srtdiscipline_key, v_discipline_key, v_kostensoort_key, v_melding_datum, v_bedrijf_key
FROM mld_melding m,
mld_opdr o,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd
ins_srtdiscipline sd,
alg_locatie l,
alg_district di
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_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 = di.alg_district_key
AND o.mld_opdr_key = p_opdr_key;
-- Controleer of het leveranciersnummer is ingevuld in de opslag tabel. Dan
@@ -167,7 +175,10 @@ AS
SELECT MAX(opslag)
INTO v_opslag
FROM vbxx_imp_opslag
WHERE alg_locatie_key = v_locatie_key
WHERE (alg_locatie_key = v_locatie_key
OR (alg_locatie_key IS NULL AND alg_district_key = v_district_key)
OR (alg_locatie_key IS NULL AND alg_district_key IS NULL AND alg_regio_key = v_regio_key)
)
AND prs_bedrijf_key = v_bedrijf_key
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_melding_datum >= ingangsdatum)
@@ -187,7 +198,10 @@ AS
SELECT MAX(opslag)
INTO v_opslag
FROM vbxx_imp_opslag
WHERE alg_locatie_key = v_locatie_key
WHERE (alg_locatie_key = v_locatie_key
OR (alg_locatie_key IS NULL AND alg_district_key = v_district_key)
OR (alg_locatie_key IS NULL AND alg_district_key IS NULL AND alg_regio_key = v_regio_key)
)
AND prs_bedrijf_key IS NULL
AND prs_kostensoort_key = v_kostensoort_key
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
@@ -207,7 +221,10 @@ AS
SELECT MAX(opslag)
INTO v_opslag
FROM vbxx_imp_opslag
WHERE alg_locatie_key = v_locatie_key
WHERE (alg_locatie_key = v_locatie_key
OR (alg_locatie_key IS NULL AND alg_district_key = v_district_key)
OR (alg_locatie_key IS NULL AND alg_district_key IS NULL AND alg_regio_key = v_regio_key)
)
AND prs_bedrijf_key IS NULL
AND ins_discipline_key = v_discipline_key
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
@@ -227,7 +244,10 @@ AS
SELECT MAX(opslag)
INTO v_opslag
FROM vbxx_imp_opslag
WHERE alg_locatie_key = v_locatie_key
WHERE (alg_locatie_key = v_locatie_key
OR (alg_locatie_key IS NULL AND alg_district_key = v_district_key)
OR (alg_locatie_key IS NULL AND alg_district_key IS NULL AND alg_regio_key = v_regio_key)
)
AND prs_bedrijf_key IS NULL
AND ins_srtdiscipline_key = v_srtdiscipline_key
AND ins_discipline_key IS NULL
@@ -248,7 +268,10 @@ AS
SELECT MAX(opslag)
INTO v_opslag
FROM vbxx_imp_opslag
WHERE alg_locatie_key = v_locatie_key
WHERE (alg_locatie_key = v_locatie_key
OR (alg_locatie_key IS NULL AND alg_district_key = v_district_key)
OR (alg_locatie_key IS NULL AND alg_district_key IS NULL AND alg_regio_key = v_regio_key)
)
AND prs_bedrijf_key IS NULL
AND ins_srtdiscipline_key IS NULL
AND ins_discipline_key IS NULL
@@ -279,6 +302,8 @@ AS
v_geen_opslag NUMBER;
v_opslag NUMBER;
v_regio_key ALG_REGIO.ALG_REGIO_KEY%TYPE;
v_district_key ALG_DISTRICT.ALG_DISTRICT_KEY%TYPE;
v_locatie_key ALG_LOCATIE.ALG_LOCATIE_KEY%TYPE;
v_discipline_key INS_TAB_DISCIPLINE.INS_DISCIPLINE_KEY%TYPE;
v_rsv_ruimte_van RES_RSV_RUIMTE.RES_RSV_RUIMTE_VAN%TYPE;
@@ -308,8 +333,8 @@ AS
BEGIN
-- Bepaal de locatie en de catalogus
SELECT ab.alg_locatie_key, ra.res_discipline_key, rrr.res_rsv_ruimte_van
INTO v_locatie_key, v_discipline_key, v_rsv_ruimte_van
SELECT ab.alg_regio_key, ab.alg_district_key, ab.alg_locatie_key, ra.res_discipline_key, rrr.res_rsv_ruimte_van
INTO v_regio_key, v_district_key, v_locatie_key, v_discipline_key, v_rsv_ruimte_van
FROM res_rsv_artikel rra,
res_artikel ra,
res_rsv_ruimte rrr,
@@ -338,7 +363,10 @@ AS
SELECT MAX(opslag)
INTO v_opslag
FROM vbxx_imp_opslag
WHERE alg_locatie_key = v_locatie_key
WHERE (alg_locatie_key = v_locatie_key
OR (alg_locatie_key IS NULL AND alg_district_key = v_district_key)
OR (alg_locatie_key IS NULL AND alg_district_key IS NULL AND alg_regio_key = v_regio_key)
)
AND ins_discipline_key = v_discipline_key
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_rsv_ruimte_van >= ingangsdatum)
@@ -1717,9 +1745,8 @@ AS
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
v_newline VARCHAR2 (1000);
v_newline VARCHAR2 (4000);
v_aanduiding VARCHAR2 (1000); -- Import line
v_field VARCHAR2 (100); -- Import field
v_fielddelimitor VARCHAR2 (1); -- Field seperator
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
@@ -1733,12 +1760,17 @@ AS
v_begin_txt VARCHAR2 (100);
v_eind_txt VARCHAR2 (100);
v_locatie_code VARCHAR2 (100);
v_district_omschrijving VARCHAR2 (100);
v_regio_omschrijving 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_opmerking VARCHAR2 (2000);
v_locatie_key NUMBER (10);
v_district_key NUMBER (10);
v_regio_key NUMBER (10);
v_srtdiscipline_key NUMBER (10);
v_discipline_key NUMBER (10);
v_kostensoort_key NUMBER (10);
@@ -1772,25 +1804,31 @@ BEGIN
v_newline := SUBSTR (v_newline, 4);
END IF;
fac.imp_getfield (v_newline, v_fielddelimitor, v_regio_omschrijving);
fac.imp_getfield (v_newline, v_fielddelimitor, v_district_omschrijving);
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);
fac.imp_getfield (v_newline, v_fielddelimitor, v_eind_txt);
fac.imp_getfield (v_newline, v_fielddelimitor, v_opmerking);
-- Skip until a valid header is found
-- De headers in de Excel export zijn ander dan in de csv export daarom controleren we op beiden.
IF (UPPER (v_locatie_code) = 'LOCATIE' OR UPPER (v_locatie_code) = 'ALG_LOCATIE_CODE')
IF (UPPER (v_regio_omschrijving) = 'REGIO' OR UPPER (v_regio_omschrijving) = 'ALG_REGIO_OMSCHRIJVING')
AND (UPPER (v_district_omschrijving) = 'DISTRICT' OR UPPER (v_district_omschrijving) = 'ALG_DISTRICT_OMSCHRIJVING')
AND (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'
AND (UPPER (v_eind_txt) = 'VERVALDATUM' OR UPPER (v_eind_txt) = 'EINDDATUM')
AND UPPER (v_opmerking) = 'OPMERKING'
THEN
-- Sla de kopregel over.
header_found := TRUE;
@@ -1802,13 +1840,17 @@ BEGIN
-- voeg nieuwe records toe
-- en wijzig bestaande records
v_aanduiding :=
v_locatie_code
v_regio_omschrijving
|| ' | '
|| v_district_omschrijving
|| ' | '
|| v_locatie_code
|| ' | '
|| v_srtdiscipline_omschrijving
|| ' | '
|| v_discipline_omschrijving
|| ' | '
|| v_kostensoort_refcode
|| v_kostensoort_oms
|| ' | '
|| v_leverancier_nr
|| ' | '
@@ -1818,6 +1860,43 @@ BEGIN
|| ' | '
|| v_eind_txt;
v_errorhint := 'Regio niet gevonden: ' || v_regio_omschrijving;
v_regio_key := NULL;
IF v_regio_omschrijving IS NOT NULL
THEN
BEGIN
SELECT alg_regio_key
INTO v_regio_key
FROM alg_regio
WHERE alg_regio_verwijder IS NULL
AND UPPER (alg_regio_omschrijving) =
UPPER (TRIM (v_regio_omschrijving));
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
END;
END IF;
v_errorhint := 'District niet gevonden: ' || v_district_omschrijving;
v_district_key := NULL;
IF v_district_omschrijving IS NOT NULL
THEN
BEGIN
SELECT alg_district_key
INTO v_district_key
FROM alg_district d, alg_regio r
WHERE d.alg_regio_key = r.alg_regio_key
AND d.alg_district_verwijder IS NULL
AND UPPER (alg_district_omschrijving) = UPPER (TRIM (v_district_omschrijving))
AND (v_regio_key IS NULL OR r.alg_regio_key = v_regio_key);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
END;
END IF;
v_errorhint := 'Locatie niet gevonden: ' || v_locatie_code;
v_locatie_key := NULL;
IF v_locatie_code IS NOT NULL
@@ -1825,10 +1904,12 @@ BEGIN
BEGIN
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_locatie
WHERE alg_locatie_verwijder IS NULL
AND UPPER (alg_locatie_code) =
UPPER (TRIM (v_locatie_code));
FROM alg_locatie l, alg_district d, alg_regio r
WHERE l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = r.alg_regio_key
AND l.alg_locatie_verwijder IS NULL
AND UPPER (l.alg_locatie_code) = UPPER (TRIM (v_locatie_code))
AND (v_district_key IS NULL OR d.alg_district_key = v_district_key);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_ongeldig := 1;
@@ -1873,16 +1954,16 @@ BEGIN
END;
END IF;
v_errorhint := 'NEN code niet gevonden: ' || v_kostensoort_refcode;
v_errorhint := 'Kostensoort code niet gevonden: ' || v_kostensoort_oms;
v_kostensoort_key := NULL;
IF v_kostensoort_refcode IS NOT NULL
IF v_kostensoort_oms IS NOT NULL
THEN
BEGIN
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_ongeldig := 1;
@@ -1892,19 +1973,32 @@ BEGIN
v_errorhint := 'Leverancier niet gevonden: ' || v_leverancier_nr;
v_bedrijf_key := NULL;
IF v_leverancier_nr IS NOT NULL
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
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
-- 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
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
END;
END;
END IF;
@@ -1923,6 +2017,8 @@ BEGIN
INSERT INTO vbxx_imp_opslag (
imp_opslag_key,
alg_locatie_key,
alg_district_key,
alg_regio_key,
ins_srtdiscipline_key,
ins_discipline_key,
prs_kostensoort_key,
@@ -1930,9 +2026,12 @@ BEGIN
opslag,
ingangsdatum,
einddatum,
imp_opslag_aanmaak)
imp_opslag_aanmaak,
opmerking)
VALUES (v_imp_opslag_key + 1,
v_locatie_key,
v_district_key,
v_regio_key,
v_srtdiscipline_key,
v_discipline_key,
v_kostensoort_key,
@@ -1940,20 +2039,27 @@ BEGIN
v_opslag,
v_begin,
v_eind,
SYSDATE);
SYSDATE,
SUBSTR(v_opmerking, 1,200));
END IF;
ELSE
IF rec1.fac_imp_file_index = 1 THEN
fac.imp_writelog (p_import_key,
'I',
'Geen geldige header aangetroffen',
v_locatie_code
v_regio_omschrijving
|| ' | '
|| v_district_omschrijving
|| ' | '
|| v_locatie_code
|| ' | '
|| v_srtdiscipline_omschrijving
|| ' | '
|| v_discipline_omschrijving
|| ' | '
|| v_kostensoort_refcode
|| v_kostensoort_oms
|| ' | '
|| v_leverancier_nr
|| ' | '
|| v_opslag_txt
|| ' | '
@@ -2005,23 +2111,30 @@ END;
CREATE OR REPLACE VIEW vbxx_v_imp_opslag
AS
SELECT o.imp_opslag_key,
r.alg_regio_omschrijving,
di.alg_district_omschrijving,
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,
o.imp_opslag_aanmaak,
o.imp_opslag_verwijder
o.imp_opslag_verwijder,
o.opmerking
FROM vbxx_imp_opslag o,
alg_locatie l,
alg_district di,
alg_regio r,
ins_srtdiscipline sd,
ins_tab_discipline d,
prs_kostensoort k,
prs_bedrijf b
WHERE o.alg_locatie_key = l.alg_locatie_key(+)
AND o.alg_district_key = di.alg_district_key(+)
AND o.alg_regio_key = r.alg_regio_key(+)
AND o.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
AND o.ins_discipline_key = d.ins_discipline_key(+)
AND o.prs_kostensoort_key = k.prs_kostensoort_key(+)
@@ -4719,16 +4832,20 @@ AS
opdrachtuitvoerende,
o.mld_opdr_kosten
opdrachtkosten,
ok.bedrag
(SELECT SUM(ft.fin_factuur_totaal)
FROM fin_factuur ft
WHERE ft.fin_factuur_verwijder IS NULL
AND ft.fin_factuur_statuses_key = 7
AND ft.mld_opdr_key = o.mld_opdr_key)
factuurbedrag,
f.fin_factuurregel_totaal factuurregeltotaal,
VBXX.get_opslag_perc (o.mld_opdr_key)
opslag,
DECODE (nb.mld_kenmerkopdr_waarde, 1, 0, COALESCE(ok.bedrag, o.mld_opdr_kosten) * ((100 + VBXX.get_opslag_perc (o.mld_opdr_key)) / 100))
DECODE (nb.mld_kenmerkopdr_waarde, 1, 0, COALESCE(f.fin_factuurregel_totaal, o.mld_opdr_kosten) * ((100 + VBXX.get_opslag_perc (o.mld_opdr_key)) / 100))
kostenplusopslag,
btw.fin_btwtabelwaarde_oms,
btw.fin_btwtabelwaarde_perc,
fr.fin_factuurregel_btw,
fr.FIN_FACTUURREGEL_TOTAAL,
btw.fin_btwtabelwaarde_oms btwtabelwaarde_oms,
btw.fin_btwtabelwaarde_perc btwtabelwaarde_perc,
f.fin_factuurregel_btw factuurregel_btw,
COALESCE ( (SELECT mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko, mld_kenmerk k, mld_srtkenmerk sk
WHERE ko.mld_opdr_key = o.mld_opdr_key
@@ -4791,10 +4908,13 @@ AS
ins_srtdiscipline sd,
alg_v_allonrgoed_gegevens aog,
prs_kostenplaats k,
(SELECT fin_factuur_key, mld_opdr_key FROM fin_factuur
WHERE fin_factuur_verwijder IS NULL
AND fin_factuur_statuses_key = 7) f,
fin_factuurregel fr,
(SELECT f.fin_factuur_key, f.mld_opdr_key, fr.fin_btwtabelwaarde_key, SUM(fr.fin_factuurregel_btw) fin_factuurregel_btw, SUM(fr.fin_factuurregel_totaal) fin_factuurregel_totaal
FROM fin_factuurregel fr,
fin_factuur f
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND f.fin_factuur_verwijder IS NULL
AND f.fin_factuur_statuses_key = 7
GROUP BY f.fin_factuur_key, f.fin_factuur_totaal, f.mld_opdr_key, fr.fin_btwtabelwaarde_key) f,
fin_btwtabelwaarde btw,
(SELECT fac_usrdata_code, fac_usrdata_omschr, mld_opdr_key
FROM mld_kenmerkopdr ko,
@@ -4806,12 +4926,7 @@ AS
AND sk.mld_srtkenmerk_code = 'TYPEFACTUUR'
AND k.mld_kenmerk_verwijder IS NULL
AND FAC.safe_to_number (ko.mld_kenmerkopdr_waarde) = fac_usrdata_key) tf,
( SELECT f.mld_opdr_key, SUM (fin_factuur_totaal) bedrag
FROM fin_factuur f
WHERE f.fin_factuur_statuses_key = 7
GROUP BY f.mld_opdr_key
UNION ALL
SELECT ko.mld_opdr_key, null bedrag
(SELECT ko.mld_opdr_key, null bedrag
FROM mld_kenmerkopdr ko,
mld_kenmerk k,
mld_srtkenmerk sk,
@@ -4849,13 +4964,12 @@ AS
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
AND o.mld_opdr_key = tf.mld_opdr_key
AND tf.fac_usrdata_code <> 'A'
AND o.mld_opdr_key = ok.mld_opdr_key
AND o.mld_opdr_key = ok.mld_opdr_key(+)
AND o.mld_opdr_key = nb.mld_opdr_key(+)
AND o.mld_opdr_key = kin.mld_opdr_key(+)
AND COALESCE(o.prs_kostenplaats_key, m.prs_kostenplaats_key) = k.prs_kostenplaats_key(+)
AND o.mld_opdr_key = f.mld_opdr_key(+)
AND f.fin_factuur_key = fr.fin_factuur_key(+)
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+);
AND f.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+);
CREATE OR REPLACE VIEW vbxx_v_kosten_doorb_frozen
AS