diff --git a/DEMO/demo.sql b/DEMO/demo.sql
index df74fb7b2..ac717ff8b 100644
--- a/DEMO/demo.sql
+++ b/DEMO/demo.sql
@@ -2987,9 +2987,532 @@ AS
url
FROM demo_v_opdr_afdeling_grp;
+--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-
+--------- MeerJarenonderhoudsBegroting (MJB) en InvesteringsBegroting (IB) à la LUDE ---------------
+--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-
+
+-- Rapportage "Begrotingsoverzicht"
+-- Toont alle meldingen in vakgroeptype "Investeringsbegroting", plus alle opdrachten-met-kosten
+-- bij reguliere meldingen op een investeringsbegroting-projectkostenplaats
+CREATE OR REPLACE VIEW demo_v_rap_invbegr
+AS
+ SELECT hide_f_sort,
+ fclt_f_jaar,
+ fclt_f_locatie,
+ budget fclt_x_budget,
+ prs_kostenplaats_limiet hide_f_limiet,
+ DECODE( INSTR(budget, fclt_f_jaar),
+ 0, ''||budget||'
(gepland: '||gepland||')',
+ budget)
+ html_budget,
+ html_nummer,
+ omschrijving,
+ fac.safe_to_number(
+ DECODE (fclt_f_substatus,
+ 'Geannuleerd', NULL,
+ 'Afgewezen', NULL,
+ geraamd) )
+ fclt_c_geraamd,
+ fac.safe_to_number(
+ DECODE (fclt_f_substatus,
+ 'Geannuleerd', NULL,
+ 'Afgewezen', NULL,
+ toegekend) )
+ fclt_c_toegekend,
+ fac.safe_to_number(
+ DECODE(besteed,
+ 0, NULL,
+ besteed) )
+ fclt_c_besteed,
+ fclt_f_substatus,
+ fclt_f_status
+ FROM (
+ SELECT TO_CHAR(m.mld_melding_einddatum, 'YYYY')||LPAD(TO_CHAR(m.mld_melding_key), 6, '0') hide_f_sort,
+ TO_CHAR(m.mld_melding_einddatum, 'YYYY') fclt_f_jaar,
+ TO_CHAR(m.mld_melding_einddatum, 'DD-MM-YYYY') gepland,
+ l.alg_locatie_omschrijving fclt_f_locatie,
+ REPLACE(htf.escape_sc(km.prs_kostenplaats_omschrijving), '&'||'amp;', '&') budget,
+ km.prs_kostenplaats_limiet,
+ ''
+ || htf.escape_sc(vt.ins_srtdiscipline_prefix||m.mld_melding_key)
+ || ''
+ html_nummer,
+ m.mld_melding_omschrijving omschrijving,
+ fac.safe_to_number(geraamd.mld_kenmerkmelding_waarde) geraamd,
+ fac.safe_to_number(toegekend.mld_kenmerkmelding_waarde) toegekend,
+ COALESCE(o_open.mld_opdr_kosten,0) + COALESCE(o_klaar.mld_opdr_kosten,0) besteed,
+ CASE
+ WHEN status.mld_melding_key IS NOT NULL
+ THEN ud_status.fac_usrdata_omschr
+ WHEN status.mld_melding_key IS NULL
+ THEN
+ CASE
+ WHEN m.mld_melding_status IN (0,2,3,4,7,99)
+ THEN
+ CASE
+ WHEN COALESCE(o_open.mld_opdr_kosten,0) > 0
+ THEN 'Uitgegeven'
+ WHEN COALESCE(o_klaar.mld_opdr_kosten,0) > 0
+ THEN 'Niet opgelost'
+ WHEN toegekend.mld_melding_key IS NOT NULL
+ THEN 'Toegekend'
+ WHEN geraamd.mld_melding_key IS NOT NULL
+ THEN 'Geraamd'
+ ELSE
+ 'Aangevraagd'
+ END
+ ELSE
+ 'Afgerond'
+ END
+ END
+ fclt_f_substatus,
+ CASE
+ WHEN m.mld_melding_status IN (0,2,3,4,7,99)
+ THEN 'Open'
+ ELSE 'Gesloten'
+ END
+ fclt_f_status
+ FROM mld_melding m,
+ mld_stdmelding sm,
+ mld_discipline vg,
+ ins_srtdiscipline vt,
+ alg_locatie l,
+ prs_kostenplaats km,
+ -- Opdrachten die al klaar zijn (met kosten)
+ (SELECT mld_melding_key,
+ SUM(mld_opdr_kosten) mld_opdr_kosten
+ FROM mld_opdr
+ WHERE mld_statusopdr_key NOT IN (1,2,3,4,5,8,10)
+ AND mld_opdr_kosten > 0
+ GROUP BY mld_melding_key) o_klaar,
+ -- Opdrachten die nog lopen (met kosten)
+ (SELECT mld_melding_key,
+ SUM(mld_opdr_kosten) mld_opdr_kosten
+ FROM mld_opdr
+ WHERE mld_statusopdr_key NOT IN (1,2,6,7,9)
+ AND mld_opdr_kosten > 0
+ GROUP BY mld_melding_key) o_open,
+ (SELECT km.* FROM mld_kenmerkmelding km, mld_kenmerk k
+ WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
+ AND k.mld_srtkenmerk_key = 2480
+ AND km.mld_kenmerkmelding_verwijder IS NULL) geraamd,
+ (SELECT km.* FROM mld_kenmerkmelding km, mld_kenmerk k
+ WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
+ AND k.mld_srtkenmerk_key = 2481
+ AND km.mld_kenmerkmelding_verwijder IS NULL) toegekend,
+ (SELECT km.* FROM mld_kenmerkmelding km, mld_kenmerk k
+ WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
+ AND k.mld_srtkenmerk_key = 2483
+ AND km.mld_kenmerkmelding_verwijder IS NULL) status,
+ (SELECT * FROM fac_usrdata
+ WHERE fac_usrtab_key = 1) ud_status
+ WHERE m.mld_melding_status != 1
+ -- Afgemelde meldingen alleen meenemen als er geldige opdrachten mét kosten bij zitten
+ AND NOT ( m.mld_melding_status IN (5,6)
+ AND NOT EXISTS (SELECT 1 FROM mld_opdr
+ WHERE mld_melding_key = m.mld_melding_key
+ AND mld_opdr_kosten > 0
+ AND mld_statusopdr_key NOT IN (1,2) ) )
+ AND sm.mld_stdmelding_key = m.mld_stdmelding_key
+ AND vg.ins_discipline_key = sm.mld_ins_discipline_key
+ AND vt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
+ AND vt.ins_srtdiscipline_key = 521
+ AND km.prs_kostenplaats_key = m.prs_kostenplaats_key
+ AND geraamd.mld_melding_key(+) = m.mld_melding_key
+ AND toegekend.mld_melding_key(+) = m.mld_melding_key
+ AND status.mld_melding_key(+) = m.mld_melding_key
+ AND ud_status.fac_usrdata_key(+) = fac.safe_to_number(status.mld_kenmerkmelding_waarde)
+ AND l.alg_locatie_key = m.mld_alg_locatie_key
+ AND o_open.mld_melding_key(+) = m.mld_melding_key
+ AND o_klaar.mld_melding_key(+) = m.mld_melding_key
+ UNION ALL
+ SELECT TO_CHAR(m.mld_melding_einddatum, 'YYYY')||LPAD(TO_CHAR(m.mld_melding_key), 6, '0') hide_f_sort,
+ TO_CHAR(m.mld_melding_einddatum, 'YYYY') fclt_f_jaar,
+ TO_CHAR(m.mld_melding_einddatum, 'DD-MM-YYYY') gepland,
+ l.alg_locatie_omschrijving fclt_f_locatie,
+ htf.escape_sc(k.prs_kostenplaats_omschrijving) budget,
+ k.prs_kostenplaats_limiet,
+ ''
+ || htf.escape_sc(vt.ins_srtdiscipline_prefix||m.mld_melding_key)
+ || ''
+ html_nummer,
+ m.mld_melding_omschrijving omschrijving,
+ NULL geraamd,
+ NULL toegekend,
+ o.mld_opdr_kosten besteed,
+ CASE
+ WHEN m.mld_melding_status IN (0,2,3,4,7,99)
+ THEN
+ CASE
+ WHEN o.mld_opdr_key IS NOT NULL AND o.mld_statusopdr_key IN (3,4,5,8,10)
+ THEN 'Uitgegeven'
+ WHEN o.mld_opdr_key IS NOT NULL AND o.mld_statusopdr_key IN (6,7,9)
+ THEN 'Niet opgelost'
+ ELSE 'Aangevraagd'
+ END
+ ELSE
+ 'Afgemeld'
+ END
+ fclt_f_substatus,
+ CASE
+ WHEN m.mld_melding_status IN (0,2,3,4,7,99)
+ THEN 'Open'
+ ELSE 'Gesloten'
+ END
+ fclt_f_status
+ FROM mld_opdr o,
+ mld_melding m,
+ mld_stdmelding sm,
+ mld_discipline vg,
+ ins_srtdiscipline vt,
+ alg_locatie l,
+ prs_kostenplaats k
+ WHERE m.mld_melding_key = o.mld_melding_key
+ AND m.mld_melding_status != 1
+ AND sm.mld_stdmelding_key = m.mld_stdmelding_key
+ AND vg.ins_discipline_key = sm.mld_ins_discipline_key
+ AND vt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
+ AND vt.ins_srtdiscipline_key != 521
+ AND l.alg_locatie_key = m.mld_alg_locatie_key
+ AND k.prs_kostenplaats_key = o.prs_kostenplaats_key
+ AND k.prs_kostenplaats_module = 'PRJ'
+ AND o.mld_opdr_kosten > 0);
+
+-- Rapportage "Budget per locatie"
+-- Sommeert bovenstaande rapportage per budget en locatie
+CREATE OR REPLACE VIEW demo_v_rap_invbegr_budg_loc
+AS
+ SELECT fclt_f_locatie||fclt_f_jaar||fclt_x_budget hide_f_sort,
+ fclt_f_jaar, fclt_f_locatie,
+ fclt_x_budget, html_budget,
+ hide_f_limiet,
+ SUM(fclt_c_toegekend) fclt_c_toegekend,
+ SUM(DECODE(fclt_f_status,
+ 'Open', fclt_c_besteed) )
+ fclt_c_openstaand,
+ SUM(DECODE(fclt_f_status,
+ 'Gesloten', fclt_c_besteed) )
+ fclt_c_uitgevoerd,
+ SUM(fclt_c_besteed) fclt_c_besteed,
+ SUM( COALESCE(fclt_c_besteed, fclt_c_toegekend) )
+ fclt_c_prognose
+ FROM demo_v_rap_invbegr
+ WHERE fclt_f_substatus NOT IN ('Geannuleerd', 'Afgewezen')
+ GROUP BY fclt_f_jaar, fclt_f_locatie, hide_f_limiet, fclt_x_budget, html_budget;
+
+-- Rapportage "Budgetuitnuttig"
+-- Beschikbaar budget per kostenplaats (categorie), uitgezet uitnutting.
+-- Uitnutting = toegekend bedrag voor lopende meldingen, besteed bedrag voor afgesloten meldingen.
+CREATE OR REPLACE VIEW demo_v_rap_invbegr_budg_uitnut
+AS
+ SELECT fclt_f_jaar,
+ fclt_x_budget fclt_x_categorie,
+ html_budget html_categorie,
+ hide_f_limiet fclt_c_budget,
+ SUM(fclt_c_toegekend) fclt_c_toegekend,
+ SUM(fclt_c_openstaand) fclt_c_openstaand,
+ SUM(fclt_c_uitgevoerd) fclt_c_uitgevoerd,
+ SUM(fclt_c_besteed) fclt_c_besteed,
+ SUM(fclt_c_prognose) fclt_c_prognose
+ FROM demo_v_rap_invbegr_budg_loc
+ GROUP BY fclt_f_jaar, hide_f_limiet, fclt_x_budget, html_budget;
+
+
+---------------------------------------------------------------------------------
+-- MJB (MeerJarenonderhoudsBegroting) --
+---------------------------------------------------------------------------------
+
+-- Element = inspectie op MJB-object (component).
+-- Elementen definieren met welke frequentie gebouwen/inventaris/apparatuur/... moeten
+-- worden onderhouden/vervangen/...
+-- Deze view levert alle inspecties op objectsoorten/-groepen in discipline "MJB", inclusief
+-- periode, eenheidsprijs, eenheid, groep (categorie), verantwoordelijke (huurder/eigenaar)
+-- en toelichting.
+-- ins_discipline MJB 2689
+CREATE OR REPLACE VIEW demo_v_mjb_elementen
+AS
+ SELECT ins_srtcontrole_key,
+ sd.ins_srtdeel_key,
+ sc.ins_srtcontrole_groep categorie,
+ sdg.ins_srtdeel_omschrijving objectsoort,
+ sc.ins_srtcontrole_omschrijving element,
+ sc.ins_srtcontrole_kosten eenheidsprijs,
+ sd.ins_srtdeel_eenheid eenheid,
+ sc.ins_srtcontrole_periode periode,
+ sc.ins_srtcontrole_opmerking verantwoordelijke,
+ sc.ins_srtcontrole_info toelichting
+ FROM ins_srtcontrole sc,
+ ins_v_srtdeel_gegevens sdg,
+ ins_srtdeel sd
+ WHERE sc.ins_srtinstallatie_key =
+ DECODE(sc.ins_srtcontrole_niveau,
+ 'S', sdg.ins_srtdeel_key,
+ 'G', sdg.ins_srtgroep_key,
+ 'D', sdg.ins_discipline_key)
+ AND sdg.ins_discipline_key = 2689
+ AND sd.ins_srtdeel_key = sdg.ins_srtdeel_key;
+
+-- Rapportage met alle elementen
+CREATE OR REPLACE VIEW demo_v_rap_mjb_elementen
+AS
+ SELECT categorie fclt_f_categorie,
+ objectsoort fclt_f_objectsoort,
+ element fclt_f_element,
+ eenheidsprijs fclt_c_eenheidsprijs,
+ eenheid,
+ periode,
+ verantwoordelijke fclt_f_verantwoordelijke,
+ toelichting
+ FROM demo_v_mjb_elementen;
+
+-- Component = MJB-object met inspectie(s).
+-- Componenten zijn bulkobjecten ("30 TL-armaturen") waarmee vastgelegd wordt wanneer
+-- bepaalde zaken op lokaties zijn aangeschaft. M.b.v. de elementen wordt dan bepaald
+-- wanneer ze vervangen/onderhouden moeten worden en wat dat naar verwachting gaat kosten.
+-- Daarbij kan per inspectieresultaat de prijs overruled worden. Uitstel is mogelijk.
+-- ins_discipline MJB 2689
+-- ins_kenmerk Aantal 961
+-- ins_kenmerk Uplift 962
+-- ins_srtkenmerk Werkelijke eenh.prijs 681
+CREATE OR REPLACE VIEW demo_v_mjb_componenten
+AS
+ SELECT alg_locatie_key,
+ locatie,
+ categorie,
+ ins_srtdeel_key,
+ objectsoort,
+ e.ins_deel_key,
+ element,
+ aantal,
+ COALESCE(werkelijk, eenheidsprijs) eenheidsprijs,
+ eenheid,
+ uplift,
+ aantal * COALESCE(werkelijk, eenheidsprijs) * (1 + COALESCE(uplift, 0) / 100) totaalprijs,
+ werkelijk,
+ aanschaf,
+ laatste,
+ uitstel,
+ periode,
+ COALESCE(uitstel, COALESCE(laatste, aanschaf) + periode ) vervangingsjaar
+-- ,verantwoordelijke
+ FROM (
+ SELECT l.alg_locatie_key,
+ l.alg_locatie_omschrijving locatie,
+ el.categorie categorie,
+ sd.ins_srtdeel_key,
+ sd.ins_srtdeel_omschrijving objectsoort,
+ el.ins_srtcontrole_key,
+ el.element element,
+ d.ins_deel_key,
+ fac.safe_to_number(aantal.ins_kenmerkdeel_waarde) aantal,
+ el.eenheidsprijs eenheidsprijs,
+ sd.ins_srtdeel_eenheid eenheid,
+ fac.safe_to_number(uplift.ins_kenmerkdeel_waarde) uplift,
+ fac.safe_to_number(TO_CHAR(d.ins_deel_aanmaak, 'YYYY')) aanschaf,
+ el.periode periode,
+ el.verantwoordelijke verantwoordelijke
+ FROM ins_deel d,
+ ins_srtdeel sd,
+ ins_srtgroep sg,
+ demo_v_mjb_elementen el,
+ ins_v_alg_onroerendgoed og,
+ alg_locatie l,
+ (SELECT * FROM ins_kenmerkdeel
+ WHERE ins_kenmerk_key = 961
+ AND ins_kenmerkdeel_verwijder IS NULL) aantal,
+ (SELECT * FROM ins_kenmerkdeel
+ WHERE ins_kenmerk_key = 962
+ AND ins_kenmerkdeel_verwijder IS NULL) uplift
+ WHERE d.ins_deel_verwijder IS NULL
+ AND sd.ins_srtdeel_key = d.ins_srtdeel_key
+ AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
+ AND sg.ins_discipline_key = 2689
+ AND og.alg_onrgoed_type = d.ins_alg_ruimte_type
+ AND og.alg_onrgoed_keys = d.ins_alg_ruimte_key
+ AND l.alg_locatie_key = og.alg_locatie_key
+ AND el.ins_srtdeel_key(+) = sd.ins_srtdeel_key
+ AND aantal.ins_deel_key = d.ins_deel_key
+ AND uplift.ins_deel_key(+) = d.ins_deel_key ) e
+ LEFT OUTER JOIN (
+ SELECT dsc.ins_srtcontrole_key, dsc.ins_deel_key,
+ fac.safe_to_number(TO_CHAR(dsc.ins_deelsrtcontrole_datum, 'YYYY')) laatste,
+ fac.safe_to_number(TO_CHAR(xcp.ins_srtcontroledl_xcp_respijt, 'YYYY')) uitstel,
+ fac.safe_to_number(ins_kmdeelsrtcontr_waarde) werkelijk
+ FROM ins_deelsrtcontrole dsc,
+ ins_srtcontroledl_xcp xcp,
+ (SELECT kdsc.* FROM ins_kmdeelsrtcontr kdsc, ins_kenmerk k
+ WHERE k.ins_kenmerk_key = kdsc.ins_kenmerk_key
+ AND k.ins_srtkenmerk_key = 681
+ AND kdsc.ins_kmdeelsrtcontr_verwijder IS NULL) werkelijk
+ WHERE werkelijk.ins_deelsrtcontrole_key(+) = dsc.ins_deelsrtcontrole_key
+ AND xcp.ins_srtcontrole_key(+) = dsc.ins_srtcontrole_key
+ AND xcp.ins_deel_key(+) = dsc.ins_deel_key
+ AND dsc.ins_deelsrtcontrole_key =
+ (SELECT MAX(ins_deelsrtcontrole_key) FROM ins_deelsrtcontrole
+ WHERE ins_deel_key = dsc.ins_deel_key
+ AND ins_srtcontrole_key = dsc.ins_srtcontrole_key) ) c
+ ON e.ins_deel_key = c.ins_deel_key
+ AND e.ins_srtcontrole_key = c.ins_srtcontrole_key;
+
+-- Rapportage met alle componenten
+CREATE OR REPLACE VIEW demo_v_rap_mjb_componenten
+AS
+ SELECT locatie||COALESCE(categorie,'_')||objectsoort||vervangingsjaar hide_f_sort,
+ locatie fclt_f_locatie,
+ categorie fclt_f_categorie,
+ objectsoort fclt_x_objectsoort,
+ ''
+ || htf.escape_sc(objectsoort)
+ || ''
+ html_object,
+ element fclt_f_element,
+ aantal,
+ eenheidsprijs,
+ 'p/ '||eenheid eenheid,
+ uplift,
+ totaalprijs fclt_c_totaalprijs,
+ TO_CHAR(aanschaf) aanschaf,
+ TO_CHAR(laatste) uitgevoerd,
+ TO_CHAR(periode) periode,
+ TO_CHAR(uitstel) uitstel,
+ TO_CHAR(vervangingsjaar) fclt_f_vervangingsjaar
+-- ,verantwoordelijke
+ FROM demo_v_mjb_componenten;
+
+-- Gestylede rapportage die per jaar/locatie/categorie aangeeft hoeveel kiloeuro er
+-- begroot moet worden voor MJB
+CREATE OR REPLACE VIEW demo_v_rap_mjb_grid
+AS
+ SELECT grid.locatie || '-' || grid.categorie hide_f_regel,
+ grid.locatie fclt_f_locatie,
+ grid.categorie fclt_f_categorie,
+ TO_CHAR(grid.jaar) fclt_f_aanschafjaar,
+ COALESCE (comp.totaalprijs, 0) bedrag
+ FROM (
+ SELECT DISTINCT a.alg_locatie_key,
+ j.jaar,
+ a.alg_locatie_omschrijving locatie,
+ e.categorie
+ FROM (SELECT alg_locatie_key,
+ alg_locatie_omschrijving
+ FROM alg_v_aanweziglocatie
+ UNION ALL
+ SELECT -1 alg_gebouw_key,
+ 'Onbekend' alg_locatie_omschrijving
+ FROM DUAL) a,
+ ins_v_aanwezigdeel d,
+ demo_v_mjb_elementen e,
+ (SELECT n jaar
+ FROM (SELECT ROWNUM n FROM DUAL
+ CONNECT BY LEVEL <= TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY'))+12)
+ WHERE n >= TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY'))-2) j
+ WHERE e.ins_srtdeel_key = d.ins_srtdeel_key
+ ORDER BY locatie, jaar
+ ) grid
+ LEFT OUTER JOIN (
+ SELECT alg_locatie_key,
+ categorie,
+ SUM(totaalprijs/1000) totaalprijs,
+ vervangingsjaar
+ FROM demo_v_mjb_componenten
+ WHERE vervangingsjaar IS NOT NULL
+ GROUP BY alg_locatie_key, categorie, vervangingsjaar, periode
+ UNION ALL
+ SELECT alg_locatie_key,
+ categorie,
+ SUM(totaalprijs/1000) totaalprijs,
+ vervangingsjaar + periode vervangingsjaar
+ FROM demo_v_mjb_componenten
+ WHERE vervangingsjaar IS NOT NULL
+ GROUP BY alg_locatie_key, categorie, (vervangingsjaar + periode)
+ UNION ALL
+ SELECT alg_locatie_key,
+ categorie,
+ SUM(totaalprijs/1000) totaalprijs,
+ vervangingsjaar + 2*periode vervangingsjaar
+ FROM demo_v_mjb_componenten
+ WHERE vervangingsjaar IS NOT NULL
+ GROUP BY alg_locatie_key, categorie, (vervangingsjaar + 2*periode)
+ UNION ALL
+ SELECT alg_locatie_key,
+ categorie,
+ SUM(totaalprijs/1000) totaalprijs,
+ vervangingsjaar + 3*periode vervangingsjaar
+ FROM demo_v_mjb_componenten
+ WHERE vervangingsjaar IS NOT NULL
+ GROUP BY alg_locatie_key, categorie, (vervangingsjaar + 3*periode)
+ ) comp
+ ON comp.alg_locatie_key = grid.alg_locatie_key
+ AND comp.categorie = grid.categorie
+ AND comp.vervangingsjaar = grid.jaar
+;
+
+-- Alle opgeroepen bezoekers, dat is:
+-- * bezoeker is binnen en opgeroepen, maar nog niet vertrokken
+-- * bezoeker is aangemeld voor vandaag
+-- * bij de afspraak hoort een oproep-actie (geen ophaal-actie)
+-- * badgenummer is gevuld
+-- Filtering via de API kan op gebouw, verdieping en wachtzone (groep), dus die ook ophalen
+CREATE OR REPLACE VIEW demo_v_api_bez_oproep
+AS
+ SELECT TO_CHAR(b.bez_bezoekers_oproep, 'YYYY-MM-DD HH24:MI:SS') oproep_tijd,
+ rr.res_ruimte_nr ruimtenr,
+ COALESCE(rr.res_ruimte_groep, ' ') groep,
+ b.bez_bezoekers_pasnr oproep_nummer,
+ b.bez_bezoekers_key bezoeker_key,
+ g.alg_gebouw_code gebouw_code,
+ g.alg_gebouw_key gebouw_key,
+ v.alg_verdieping_code verdieping_code,
+ v.alg_verdieping_key verdieping_key
+ FROM bez_bezoekers b,
+ bez_afspraak a,
+ bez_actie ac,
+ res_rsv_ruimte rrr,
+ res_ruimte_opstelling ro,
+ res_ruimte rr,
+ res_alg_ruimte rar,
+ alg_ruimte r,
+ alg_verdieping v,
+ alg_gebouw g
+ WHERE rrr.res_rsv_ruimte_van BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE) + 1
+ AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
+ AND ac.bez_actie_key = a.bez_actie_key
+ AND BITAND(ac.bez_actie_flags, 1) = 1
+ AND b.bez_afspraak_key = a.bez_afspraak_key
+ AND b.bez_bezoekers_done IS NOT NULL
+ AND b.bez_bezoekers_oproep IS NOT NULL
+ AND b.bez_bezoekers_out IS NULL
+ AND b.bez_bezoekers_pasnr IS NOT NULL
+ AND ro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key
+ AND rr.res_ruimte_key = ro.res_ruimte_key
+ AND rar.res_ruimte_key = rr.res_ruimte_key
+ AND r.alg_ruimte_key = rar.alg_ruimte_key
+ AND v.alg_verdieping_key = r.alg_verdieping_key
+ AND g.alg_gebouw_key = v.alg_gebouw_key
+ ORDER BY 1 DESC;
+
+-- Rapportage t.b.v. voorbeeld oproepscherm (= gestylede rapportage)
+CREATE OR REPLACE VIEW demo_v_rap_bez_oproep
+AS
+ SELECT oproep_tijd hide_f_oproeptijd,
+ gebouw_code fclt_f_gebouwcode,
+ verdieping_code fclt_f_verdiepingcode,
+ groep fclt_f_wachtzonde,
+ ruimtenr fclt_f_ruimtenr,
+ oproep_nummer oproepnr
+ FROM demo_v_api_bez_oproep
+ ORDER BY oproep_tijd DESC;
+
+
BEGIN adm.systrackscriptId('$Id$'); END;
/
-BEGIN fac.registercustversion('DEMO', 2); END;
+BEGIN fac.registercustversion('DEMO', 3); END;
/
COMMIT;