467 lines
20 KiB
Plaintext
467 lines
20 KiB
Plaintext
#ifdef FIN
|
|
/* FIN_VIE.SRC
|
|
*
|
|
* $Revision$
|
|
* $Id$
|
|
*/
|
|
|
|
#include "comsql.h"
|
|
|
|
/* LET OP (FSN#21553)
|
|
* Deze view lijkt qua naam een tabel, maar is het technisch niet
|
|
* Hij levert de statustekst in de juiste taal op, van een specifieke statuscode
|
|
* Voorheen was dit een tabel met deze naam, en werd deze initieel gevuld. Dit is
|
|
* hiermee dus vanwege de i18n veranderd.
|
|
*/
|
|
CREATE_VIEW(fin_factuur_statuses, 0)
|
|
AS
|
|
SELECT fac_code2label_code fin_factuur_statuses_key,
|
|
COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) fin_factuur_statuses_omschr
|
|
FROM fac_locale_xsl fl, fac_code2label fs
|
|
WHERE fl.fac_locale_xsl_label = fac_code2label_label
|
|
AND fac_code2label_domein = 'factuur'
|
|
AND fac_locale_xsl_lang = lcl.getuserlanguage ();
|
|
|
|
CREATE_VIEW(fac_v_noti_finreminder,0)
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
par1,
|
|
par2,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT 'FININF',
|
|
'',
|
|
fin.getfiatteur(f.fin_factuur_key) budgethouder,
|
|
'Fiatteringsverzoek voor '
|
|
|| COUNT (f.fin_factuur_key)
|
|
|| DECODE (COUNT (f.fin_factuur_key), 1, ' factuur.', ' facturen.'),
|
|
MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige; FSN#19425
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM fin_factuur f
|
|
WHERE fin.getfiatteur(f.fin_factuur_key) <> -1 -- die kan ik geen bericht sturen
|
|
AND f.fin_factuur_statuses_key = 2
|
|
AND f.fin_factuur_verwijder IS NULL
|
|
GROUP BY fin.getfiatteur(f.fin_factuur_key);
|
|
|
|
/* ROOT VIEWS for User defined Reports (UDR) */
|
|
CREATE_VIEW(fin_v_udr_factuur, 1)
|
|
(
|
|
factuur_key,
|
|
factuur_datum,
|
|
uitvoerende,
|
|
leverancier_nr,
|
|
factuurnr_extern,
|
|
factuur_voor,
|
|
opdrachtnr,
|
|
opdracht_key,
|
|
contract_key,
|
|
bestelling_key,
|
|
kostenplaats,
|
|
kostenplaats_extern,
|
|
discipline_omschrijving,
|
|
catalogus,
|
|
kostensoort,
|
|
kostensoort_opmerking,
|
|
kostensoort_refcode,
|
|
kostensoort_altcode,
|
|
kostensoort_btw,
|
|
stdmelding_omschrijving,
|
|
bedrag_incl_btw,
|
|
bedrag_excl_btw,
|
|
status,
|
|
opmerking,
|
|
budgethouder
|
|
)
|
|
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;
|
|
|
|
// Dit is strict geen fin view, maar het is de UDR-versie van het kostenoverzicht
|
|
// dat bedragen rapporteert over de BROC.
|
|
CREATE_VIEW(fin_v_udr_kostenoverzicht, 0)
|
|
(
|
|
datum,
|
|
aanvrager,
|
|
organisatie,
|
|
categorie,
|
|
referentie,
|
|
bedrag,
|
|
status,
|
|
kostenplaatsgroep,
|
|
kostenplaatsnr,
|
|
kostenplaats,
|
|
kostensoortgroep,
|
|
kostensoortnr,
|
|
kostensoort,
|
|
ordernr,
|
|
locatie,
|
|
district,
|
|
regio,
|
|
fclt_3d_locatie_key,
|
|
fclt_3d_afdeling_key
|
|
)
|
|
AS
|
|
SELECT datum,
|
|
p.prs_perslid_naam
|
|
|| NVL2 (p.prs_perslid_voorletters, ', ' || p.prs_perslid_voorletters, '')
|
|
|| NVL2 (p.prs_perslid_tussenvoegsel, ' ' || p.prs_perslid_tussenvoegsel, '')
|
|
|| NVL2 (p.prs_perslid_voornaam, ' (' || p.prs_perslid_voornaam || ')', '')
|
|
aanvrager,
|
|
d.prs_afdeling_naam organisatie,
|
|
categorie,
|
|
categorienummer,
|
|
SUM (bedrag) bedrag,
|
|
status,
|
|
kpg.prs_kostenplaatsgrp_oms,
|
|
k.prs_kostenplaats_nr,
|
|
lcl.x ('prs_kostenplaats_omschrijving',
|
|
k.prs_kostenplaats_key,
|
|
k.prs_kostenplaats_omschrijving),
|
|
ksg.prs_kostensoortgrp_oms,
|
|
ks.prs_kostensoort_oms,
|
|
ks.prs_kostensoort_opmerking,
|
|
ordernr,
|
|
alg_locatie_code,
|
|
alg_district_omschrijving,
|
|
alg_regio_omschrijving,
|
|
alg_locatie_key,
|
|
d.prs_afdeling_key
|
|
FROM (SELECT rr.prs_kostenplaats_key,
|
|
rr.res_rsv_ruimte_van datum,
|
|
res_rsv_ruimte_contact_key prs_perslid_key,
|
|
'Reservering' categorie,
|
|
TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr
|
|
categorienummer,
|
|
res_rsv_ruimte_prijs bedrag,
|
|
s.res_status_bo_omschrijving status,
|
|
'RES' module,
|
|
dis.prs_kostensoort_key,
|
|
rr.res_rsv_ruimte_ordernr ordernr,
|
|
rr.res_reservering_key kostenplaats_item_key,
|
|
rr.res_rsv_ruimte_key kostenplaats_item_child_key,
|
|
(SELECT MAX (g.alg_locatie_key)
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
res_alg_ruimte ar
|
|
WHERE ar.res_alg_ruimte_verwijder IS NULL
|
|
AND ar.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND ar.res_ruimte_key = ro.res_ruimte_key)
|
|
locatie_key
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
res_ruimte_opstelling ro,
|
|
res_ruimte ru,
|
|
res_discipline dis,
|
|
res_status_bo s
|
|
WHERE ru.res_ruimte_prijs <> 0
|
|
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = ru.res_ruimte_key
|
|
AND s.res_status_bo_key = rr.res_status_bo_key
|
|
AND ru.res_discipline_key = dis.ins_discipline_key
|
|
UNION ALL
|
|
SELECT rr.prs_kostenplaats_key,
|
|
ra.res_rsv_artikel_levering datum,
|
|
res_rsv_ruimte_contact_key prs_perslid_key,
|
|
'Reservering' categorie,
|
|
TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr
|
|
categorienummer,
|
|
res_rsv_artikel_prijs bedrag,
|
|
s.res_status_bo_omschrijving status,
|
|
'RES' module,
|
|
dis.prs_kostensoort_key,
|
|
rr.res_rsv_ruimte_ordernr ordernr,
|
|
rr.res_reservering_key kostenplaats_item_key,
|
|
rr.res_rsv_ruimte_key kostenplaats_item_child_key,
|
|
COALESCE (
|
|
(SELECT g.alg_locatie_key
|
|
FROM alg_ruimte r, alg_verdieping v, alg_gebouw g
|
|
WHERE rr.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key),
|
|
(SELECT MAX (g.alg_locatie_key)
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
res_alg_ruimte ar,
|
|
res_ruimte_opstelling ro
|
|
WHERE ar.res_alg_ruimte_verwijder IS NULL
|
|
AND ar.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND ar.res_ruimte_key = ro.res_ruimte_key
|
|
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key))
|
|
locatie_key
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
res_v_aanwezigrsv_artikel ra,
|
|
res_artikel a,
|
|
res_discipline dis,
|
|
res_status_bo s
|
|
WHERE COALESCE (ra.res_rsv_artikel_prijs, a.res_artikel_prijs) <> 0
|
|
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = a.res_artikel_key
|
|
AND s.res_status_bo_key = ra.res_status_bo_key
|
|
AND a.res_discipline_key = dis.ins_discipline_key
|
|
UNION ALL
|
|
SELECT rr.prs_kostenplaats_key,
|
|
rd.res_rsv_deel_van datum,
|
|
res_rsv_ruimte_contact_key prs_perslid_key,
|
|
'Reservering' categorie,
|
|
TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr
|
|
categorienummer,
|
|
res_rsv_deel_prijs bedrag,
|
|
s.res_status_bo_omschrijving status,
|
|
'RES' module,
|
|
dis.prs_kostensoort_key,
|
|
rr.res_rsv_ruimte_ordernr ordernr,
|
|
rr.res_reservering_key kostenplaats_item_key,
|
|
rr.res_rsv_ruimte_key kostenplaats_item_child_key,
|
|
COALESCE (
|
|
(SELECT g.alg_locatie_key
|
|
FROM alg_ruimte r, alg_verdieping v, alg_gebouw g
|
|
WHERE rr.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key),
|
|
(SELECT MAX (g.alg_locatie_key)
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
res_alg_ruimte ar,
|
|
res_ruimte_opstelling ro
|
|
WHERE ar.res_alg_ruimte_verwijder IS NULL
|
|
AND ar.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND ar.res_ruimte_key = ro.res_ruimte_key
|
|
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key))
|
|
locatie_key
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
res_v_aanwezigrsv_deel rd,
|
|
res_deel d,
|
|
res_discipline dis,
|
|
res_status_bo,
|
|
res_status_bo s
|
|
WHERE d.res_deel_prijs <> 0
|
|
AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
|
|
AND rd.res_deel_key = d.res_deel_key
|
|
AND s.res_status_bo_key = rd.res_status_bo_key
|
|
AND d.res_discipline_key = dis.ins_discipline_key
|
|
UNION ALL
|
|
SELECT o.prs_kostenplaats_key,
|
|
o.mld_opdr_datumbegin datum,
|
|
m.prs_perslid_key prs_perslid_key,
|
|
mdis.ins_discipline_omschrijving categorie,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| m.mld_melding_key
|
|
|| '/'
|
|
|| o.mld_opdr_bedrijfopdr_volgnr
|
|
categorienummer,
|
|
COALESCE (o.mld_opdr_kosten, 0) bedrag,
|
|
s.mld_statusopdr_omschrijving status,
|
|
'MLD' module,
|
|
COALESCE (s.prs_kostensoort_key, mdis.prs_kostensoort_key) prs_kostensoort_key,
|
|
o.mld_opdr_ordernr ordernr,
|
|
o.mld_opdr_key kostenplaats_item_key,
|
|
-1 kostenplaats_item_child_key,
|
|
m.mld_alg_locatie_key locatie_key
|
|
FROM mld_opdr o,
|
|
mld_typeopdr ot,
|
|
mld_melding m,
|
|
mld_stdmelding s,
|
|
mld_discipline mdis,
|
|
ins_srtdiscipline sd,
|
|
mld_statusopdr s
|
|
WHERE o.mld_opdr_kosten <> 0
|
|
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
|
AND ot.mld_typeopdr_kosten = 1
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND s.mld_statusopdr_key = o.mld_statusopdr_key
|
|
AND m.mld_stdmelding_key = s.mld_stdmelding_key
|
|
AND mdis.ins_discipline_key = s.mld_ins_discipline_key
|
|
AND mdis.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND o.mld_statusopdr_key NOT IN (1, 2, 3, 4, 10)
|
|
UNION ALL
|
|
SELECT b.prs_kostenplaats_key,
|
|
bo.bes_bestelopdr_datum datum,
|
|
b.prs_perslid_key prs_perslid_key,
|
|
'Bestelling' categorie,
|
|
TO_CHAR (b.bes_bestelling_key) categorienummer,
|
|
(boi.bes_bestelopdr_item_aantal * boi.bes_bestelopdr_item_prijs) bedrag,
|
|
s.bes_bestelopdrstatuses_omschr status,
|
|
'BES' module,
|
|
bdis.prs_kostensoort_key,
|
|
b.bes_bestelling_ordernr ordernr,
|
|
b.bes_bestelling_key kostenplaats_item_key,
|
|
-1 kostenplaats_item_child_key,
|
|
(SELECT alg_locatie_key
|
|
FROM mld_adres ma
|
|
WHERE ma.mld_adres_key = b.mld_adres_key_lev)
|
|
locatie_key
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr bo,
|
|
bes_bestelopdr_item boi,
|
|
bes_srtdeel isd,
|
|
bes_srtgroep isg,
|
|
bes_discipline bdis,
|
|
bes_bestelopdrstatuses s
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
|
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND s.bes_bestelopdrstatuses_key = bo.bes_bestelopdr_status
|
|
AND bi.bes_srtdeel_key = isd.bes_srtdeel_key
|
|
AND isd.bes_srtgroep_key = isg.bes_srtgroep_key
|
|
AND isg.ins_discipline_key = bdis.ins_discipline_key
|
|
AND bo.bes_bestelopdr_status IN (4, 6, 7)) tab,
|
|
prs_kostenplaats k,
|
|
prs_kostenplaatsgrp kpg,
|
|
prs_kostensoort ks,
|
|
prs_kostensoortgrp ksg,
|
|
prs_perslid p,
|
|
prs_v_afdeling d,
|
|
alg_locatie l,
|
|
alg_district d,
|
|
alg_regio r
|
|
WHERE tab.prs_kostenplaats_key(+) = k.prs_kostenplaats_key
|
|
AND tab.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
|
AND k.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
|
|
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
|
AND tab.prs_perslid_key = p.prs_perslid_key(+)
|
|
AND p.prs_afdeling_key = d.prs_afdeling_key(+)
|
|
AND tab.locatie_key = l.alg_locatie_key(+)
|
|
AND l.alg_district_key = d.alg_district_key(+)
|
|
AND d.alg_regio_key = r.alg_regio_key(+)
|
|
AND datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY')
|
|
GROUP BY k.prs_kostenplaats_nr,
|
|
lcl.x ('prs_kostenplaats_omschrijving',
|
|
k.prs_kostenplaats_key,
|
|
k.prs_kostenplaats_omschrijving),
|
|
datum,
|
|
p.prs_perslid_naam
|
|
|| NVL2 (p.prs_perslid_voorletters, ', ' || p.prs_perslid_voorletters, '')
|
|
|| NVL2 (p.prs_perslid_tussenvoegsel, ' ' || p.prs_perslid_tussenvoegsel, '')
|
|
|| NVL2 (p.prs_perslid_voornaam, ' (' || p.prs_perslid_voornaam || ')', ''),
|
|
d.prs_afdeling_naam,
|
|
d.prs_afdeling_key,
|
|
categorie,
|
|
categorienummer,
|
|
status,
|
|
kpg.prs_kostenplaatsgrp_oms,
|
|
ksg.prs_kostensoortgrp_oms,
|
|
ks.prs_kostensoort_oms,
|
|
ks.prs_kostensoort_opmerking,
|
|
ordernr,
|
|
ksg.prs_kostensoortgrp_oms,
|
|
alg_locatie_key,
|
|
alg_district_omschrijving,
|
|
alg_regio_omschrijving,
|
|
alg_locatie_code;
|
|
|
|
REGISTERRUN('$Id$')
|
|
#endif // FIN
|