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;