diff --git a/FIN/FIN_VIE.SRC b/FIN/FIN_VIE.SRC index 2dc68c91..7c6f7c56 100644 --- a/FIN/FIN_VIE.SRC +++ b/FIN/FIN_VIE.SRC @@ -77,108 +77,101 @@ CREATE_VIEW(fin_v_udr_factuur, 1) bedrag_excl_btw, status, opmerking, - budgethouder + budgethouder, + budgethouder_key ) AS - SELECT f.fin_factuur_key, - f.fin_factuur_datum factuur_datum, - (SELECT b.prs_bedrijf_naam - FROM prs_bedrijf b - WHERE prs_bedrijf_key = - COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)) - uitvoerende, - (SELECT b.prs_leverancier_nr - FROM prs_bedrijf b - WHERE prs_bedrijf_key = - COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)) - leverancier_nr, - fin_factuur_nr factuurnr_extern, - CASE - WHEN f.mld_opdr_key IS NOT NULL THEN lcl.l ('lcl_fin_mld_opdr') - WHEN f.cnt_contract_key IS NOT NULL THEN lcl.l ('lcl_fin_cnt_contract') - WHEN f.bes_bestelopdr_key IS NOT NULL THEN lcl.l ('lcl_fin_bestelling') - END - CASE, - COALESCE ( - NVL2 ( - f.mld_opdr_key, - ins_srtdiscipline_prefix - || TO_CHAR (o.mld_melding_key) - || '/' - || o.mld_opdr_bedrijfopdr_volgnr, - NULL), - NVL2 ( - f.cnt_contract_key, - 'C' - || cnt_contract_nummer_intern - || NVL2 (cnt_contract_versie, '.' || cnt_contract_versie, ''), - NULL), - NVL2 (f.bes_bestelopdr_key, bo.bes_bestelopdr_id, NULL), - ' ') - opdrachtnr, - f.mld_opdr_key, - f.cnt_contract_key, - f.bes_bestelopdr_key, - NVL2 ( - k.prs_kostenplaats_nr, - prs_kostenplaats_nr || ' ' - || lcl.x ('prs_kostenplaats_omschrijving', - k.prs_kostenplaats_key, - k.prs_kostenplaats_omschrijving), - '') - kostenplaats, - DECODE (k.prs_kostenplaats_extern, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')), - cd.ins_discipline_omschrijving, - (SELECT MIN (ins_discipline_omschrijving) - FROM bes_discipline bd, - bes_srtgroep bg, - bes_srtdeel bs, - bes_bestelling_item bi, - bes_bestelopdr_item boi - WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key - AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key - AND bs.bes_srtdeel_key = bi.bes_srtdeel_key - AND bg.bes_srtgroep_key = bs.bes_srtgroep_key - AND bd.ins_discipline_key = bg.ins_discipline_key) - bes_discipline_omschrijving, - ks.prs_kostensoort_oms, - ks.prs_kostensoort_opmerking, - ks.prs_kostensoort_refcode, - ks.prs_kostensoort_altcode, - DECODE (ks.prs_kostensoort_btw, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')), - mld_stdmelding_omschrijving, - f.fin_factuur_totaal + f.fin_factuur_totaal_btw bedrag_incl_btw, - f.fin_factuur_totaal bedrag_excl_btw, - fs.fin_factuur_statuses_omschr, - f.fin_factuur_opmerking, - (SELECT p.prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all p - WHERE prs_perslid_key = fin.getfiatteur(f.fin_factuur_key)) - budgethouder - FROM fin_factuur f, - prs_kostenplaats k, - mld_opdr o, - mld_melding m, - mld_discipline d, - mld_stdmelding sm, - ins_srtdiscipline sd, - cnt_contract c, - cnt_discipline cd, - bes_bestelopdr bo, - prs_kostensoort ks, - fin_factuur_statuses fs - WHERE fin.getfactuurkostenplaats(f.fin_factuur_key) = k.prs_kostenplaats_key(+) - AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+) - AND f.mld_opdr_key = o.mld_opdr_key(+) - AND o.mld_melding_key = m.mld_melding_key(+) - AND m.mld_stdmelding_key = sm.mld_stdmelding_key(+) - AND sm.mld_ins_discipline_key = d.ins_discipline_key(+) - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) - AND f.cnt_contract_key = c.cnt_contract_key(+) - AND c.ins_discipline_key = cd.ins_discipline_key(+) - AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+) - AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key - AND f.fin_factuur_verwijder IS NULL; +WITH + fiatteur_data + AS + (SELECT f.fin_factuur_key, fin.getfiatteur (f.fin_factuur_key) AS budgethouder_key + FROM fin_factuur f) +SELECT f.fin_factuur_key + , f.fin_factuur_datum + factuur_datum + , (SELECT b.prs_bedrijf_naam + FROM prs_bedrijf b + WHERE prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)) + uitvoerende + , (SELECT b.prs_leverancier_nr + FROM prs_bedrijf b + WHERE prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)) + leverancier_nr + , fin_factuur_nr + factuurnr_extern + , CASE + WHEN f.mld_opdr_key IS NOT NULL THEN lcl.l ('lcl_fin_mld_opdr') + WHEN f.cnt_contract_key IS NOT NULL THEN lcl.l ('lcl_fin_cnt_contract') + WHEN f.bes_bestelopdr_key IS NOT NULL THEN lcl.l ('lcl_fin_bestelling') + END + CASE + , COALESCE (NVL2 (f.mld_opdr_key, ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr, NULL) + , NVL2 (f.cnt_contract_key, 'C' || cnt_contract_nummer_intern || NVL2 (cnt_contract_versie, '.' || cnt_contract_versie, ''), NULL) + , NVL2 (f.bes_bestelopdr_key, bo.bes_bestelopdr_id, NULL) + , ' ') + opdrachtnr + , f.mld_opdr_key + , f.cnt_contract_key + , f.bes_bestelopdr_key + , NVL2 (k.prs_kostenplaats_nr, prs_kostenplaats_nr || ' ' || lcl.x ('prs_kostenplaats_omschrijving', k.prs_kostenplaats_key, k.prs_kostenplaats_omschrijving), '') + kostenplaats + , DECODE (k.prs_kostenplaats_extern, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) + , cd.ins_discipline_omschrijving + , (SELECT MIN (ins_discipline_omschrijving) + FROM bes_discipline bd + , bes_srtgroep bg + , bes_srtdeel bs + , bes_bestelling_item bi + , bes_bestelopdr_item boi + WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key + AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key + AND bs.bes_srtdeel_key = bi.bes_srtdeel_key + AND bg.bes_srtgroep_key = bs.bes_srtgroep_key + AND bd.ins_discipline_key = bg.ins_discipline_key) + bes_discipline_omschrijving + , ks.prs_kostensoort_oms + , ks.prs_kostensoort_opmerking + , ks.prs_kostensoort_refcode + , ks.prs_kostensoort_altcode + , DECODE (ks.prs_kostensoort_btw, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) + , mld_stdmelding_omschrijving + , f.fin_factuur_totaal + f.fin_factuur_totaal_btw + bedrag_incl_btw + , f.fin_factuur_totaal + bedrag_excl_btw + , fs.fin_factuur_statuses_omschr + , f.fin_factuur_opmerking + , (SELECT p.prs_perslid_naam_full + FROM prs_v_perslid_fullnames_all p + WHERE p.prs_perslid_key = fd.budgethouder_key) + AS budgethouder + , fd.budgethouder_key + FROM fin_factuur f + , prs_kostenplaats k + , mld_opdr o + , mld_melding m + , mld_discipline d + , mld_stdmelding sm + , ins_srtdiscipline sd + , cnt_contract c + , cnt_discipline cd + , bes_bestelopdr bo + , prs_kostensoort ks + , fin_factuur_statuses fs + , fiatteur_data fd + WHERE fin.getfactuurkostenplaats (f.fin_factuur_key) = k.prs_kostenplaats_key(+) + AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+) + AND f.fin_factuur_key = fd.fin_factuur_key + AND f.mld_opdr_key = o.mld_opdr_key(+) + AND o.mld_melding_key = m.mld_melding_key(+) + AND m.mld_stdmelding_key = sm.mld_stdmelding_key(+) + AND sm.mld_ins_discipline_key = d.ins_discipline_key(+) + AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) + AND f.cnt_contract_key = c.cnt_contract_key(+) + AND c.ins_discipline_key = cd.ins_discipline_key(+) + AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+) + AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key + AND f.fin_factuur_verwijder IS NULL; // Dit is strict geen fin view, maar het is de UDR-versie van het kostenoverzicht // dat bedragen rapporteert over de BROC.