#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