PCHD#83092 budgethouder_key toegevoegd aan udr basisview voor facturen

svn path=/Database/trunk/; revision=67804
This commit is contained in:
Peter Feij
2025-01-30 13:32:32 +00:00
parent 550d617f58
commit 3e0db1aa4a

View File

@@ -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.