Toevoegen Investeringsbegroting en Meerjarenonderhoudsbegroting à la LUDE
Aanpassen bezoekersbadge voor oproep-bezoekers svn path=/Customer/trunk/; revision=23317
This commit is contained in:
525
DEMO/demo.sql
525
DEMO/demo.sql
@@ -2987,9 +2987,532 @@ AS
|
|||||||
url
|
url
|
||||||
FROM demo_v_opdr_afdeling_grp;
|
FROM demo_v_opdr_afdeling_grp;
|
||||||
|
|
||||||
|
--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-
|
||||||
|
--------- MeerJarenonderhoudsBegroting (MJB) en InvesteringsBegroting (IB) <20> 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, '<font style="font-weight:bold;color:#f00">'||budget||'</font><br/>(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,
|
||||||
|
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||||||
|
|| 'appl/MLD/mld_melding.asp?urole=fo&'||'mld_key='||m.mld_melding_key
|
||||||
|
|| '")''>'
|
||||||
|
|| htf.escape_sc(vt.ins_srtdiscipline_prefix||m.mld_melding_key)
|
||||||
|
|| '</a>'
|
||||||
|
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,
|
||||||
|
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||||||
|
|| 'appl/MLD/mld_melding.asp?urole=fo&'||'mld_key='||m.mld_melding_key
|
||||||
|
|| '")''>'
|
||||||
|
|| htf.escape_sc(vt.ins_srtdiscipline_prefix||m.mld_melding_key)
|
||||||
|
|| '</a>'
|
||||||
|
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,
|
||||||
|
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||||||
|
|| 'appl/INS/ins_deel.asp?urole=bo&'||'ins_key='||ins_deel_key
|
||||||
|
|| '")''>'
|
||||||
|
|| htf.escape_sc(objectsoort)
|
||||||
|
|| '</a>'
|
||||||
|
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 adm.systrackscriptId('$Id$'); END;
|
||||||
/
|
/
|
||||||
BEGIN fac.registercustversion('DEMO', 2); END;
|
BEGIN fac.registercustversion('DEMO', 3); END;
|
||||||
/
|
/
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|||||||
Reference in New Issue
Block a user