/* FAC_VIE.SRC * $Revision$ * $Id$ */ CREATE_VIEW(faq_discipline, 0) AS SELECT * FROM ins_tab_discipline WHERE ins_discipline_module = 'FAQ'; DEFINIEER_VIEW_AANWEZIG(faq_discipline, ins_discipline_verwijder, faq_v_aanwezigdiscipline, 0); DEFINIEER_VIEW_AANWEZIG(fac_usrdata, fac_usrdata_verwijder, fac_v_aanwezigusrdata,0); CREATE_VIEW (fac_v_webgebruiker, 0) AS SELECT gg.prs_perslid_key, g.fac_functie_key, g.ins_discipline_key, MIN (fac_gebruiker_prs_level_read) fac_gebruiker_prs_level_read, MIN (fac_gebruiker_prs_level_write) fac_gebruiker_prs_level_write, MIN (fac_gebruiker_alg_level_read) fac_gebruiker_alg_level_read, MIN (fac_gebruiker_alg_level_write) fac_gebruiker_alg_level_write FROM fac_groeprechten g, fac_gebruikersgroep gg WHERE g.fac_groep_key = gg.fac_groep_key GROUP BY gg.prs_perslid_key, g.fac_functie_key, g.ins_discipline_key; -- Rapportages CREATE_VIEW(fac_v_rap_groeprechten, 0) (naam, fclt_f_login, email, last_login, fclt_f_module, fclt_f_funcode, fclt_f_functie, fclt_f_aspect, fclt_f_groep, orglevelread, orglevelwrite, alglevelread, alglevelwrite ) AS SELECT -- GROEPEN MET DISCIPLINES p.prs_perslid_naam, p.prs_perslid_oslogin, prs_perslid_email, prs_perslid_login, f.fac_functie_module, f.fac_functie_code, COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, f.fac_functie_omschrijving), DECODE ( a.ins_discipline_module, 'BES', lcl.l ('bes_discipline') || ' ', 'CHT', lcl.l ('cht_discipline') || ' ', 'CNT', lcl.l ('cnt_discipline') || ' ', 'CTR', lcl.l ('ctr_discipline') || ' ', 'FAQ', lcl.l ('faq_discipline') || ' ', 'INS', lcl.l ('ins_discipline') || ' ', 'MLD', lcl.l ('mld_discipline') || ' ' || (CASE WHEN ins_srtdiscipline_prefix IS NOT NULL THEN ins_srtdiscipline_prefix || '-' END), 'RES', lcl.l ('res_discipline') || ' ', ins_discipline_module || ' ') || ins_discipline_omschrijving omschrijving, gr.fac_groep_omschrijving, fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'), fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'), fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'), fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG') FROM fac_groeprechten g, fac_gebruikersgroep gg, prs_v_aanwezigperslid p, fac_functie f, ins_srtdiscipline isd, ins_tab_discipline a, fac_groep gr, fac_locale_xsl flx WHERE g.ins_discipline_key = a.ins_discipline_key AND g.fac_groep_key = gr.fac_groep_key AND p.prs_perslid_key = gg.prs_perslid_key AND gg.fac_groep_key = gr.fac_groep_key AND isd.ins_srtdiscipline_key(+) = a.ins_srtdiscipline_key AND f.fac_functie_key = g.fac_functie_key AND f.fac_functie_discipline = 1 AND ins_discipline_verwijder IS NULL AND flx.fac_locale_xsl_label (+)= f.fac_functie_omschrijving AND flx.fac_locale_xsl_lang (+)= 'NL' AND flx.fac_locale_xsl_module (+)= 'ASP' UNION ALL -- GROEPEN ZONDER DISCIPLINES SELECT p.prs_perslid_naam, p.prs_perslid_oslogin, prs_perslid_email, prs_perslid_login, f.fac_functie_module, f.fac_functie_code, COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, f.fac_functie_omschrijving), NULL omschrijving, gr.fac_groep_omschrijving, fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'), fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'), fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'), fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG') FROM fac_groeprechten g, fac_functie f, fac_gebruikersgroep gg, prs_v_aanwezigperslid p, fac_groep gr, fac_locale_xsl flx -- lcl.l gebruik was extreem traag dus maar hardcoded WHERE fac_functie_discipline = 0 AND g.fac_functie_key = f.fac_functie_key AND g.fac_groep_key = gg.fac_groep_key AND gg.fac_groep_key = gr.fac_groep_key AND p.prs_perslid_key = gg.prs_perslid_key AND flx.fac_locale_xsl_label (+)= f.fac_functie_omschrijving AND flx.fac_locale_xsl_lang (+)= 'NL' AND flx.fac_locale_xsl_module (+)= 'ASP'; CREATE_VIEW(fac_v_rap_groeprechten2, 0) (fclt_f_groep, fclt_f_module, fclt_f_funcode, fclt_f_functie, fclt_f_aspect, orglevelread, orglevelwrite, alglevelread, alglevelwrite ) AS SELECT -- GROEPEN MET DISCIPLINES gr.fac_groep_omschrijving, f.fac_functie_module, f.fac_functie_code, COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, f.fac_functie_omschrijving), DECODE ( a.ins_discipline_module, 'BES', lcl.l ('bes_discipline') || ' ', 'CHT', lcl.l ('cht_discipline') || ' ', 'CNT', lcl.l ('cnt_discipline') || ' ', 'CTR', lcl.l ('ctr_discipline') || ' ', 'FAQ', lcl.l ('faq_discipline') || ' ', 'INS', lcl.l ('ins_discipline') || ' ', 'MLD', lcl.l ('mld_discipline') || ' ' || (CASE WHEN ins_srtdiscipline_prefix IS NOT NULL THEN ins_srtdiscipline_prefix || '-' END), 'RES', lcl.l ('res_discipline') || ' ', ins_discipline_module || ' ') || ins_discipline_omschrijving omschrijving, fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'), fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'), fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'), fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG') FROM FAC_GROEPRECHTEN g, FAC_FUNCTIE f, INS_TAB_DISCIPLINE a, ins_srtdiscipline isd, FAC_GROEP gr, fac_locale_xsl flx WHERE g.ins_discipline_key = a.ins_discipline_key AND g.fac_groep_key = gr.fac_groep_key AND isd.ins_srtdiscipline_key(+) = a.ins_srtdiscipline_key AND f.fac_functie_key = g.fac_functie_key AND f.fac_functie_discipline = 1 AND ins_discipline_verwijder IS NULL AND flx.fac_locale_xsl_label (+)= f.fac_functie_omschrijving AND flx.fac_locale_xsl_lang (+)= 'NL' AND flx.fac_locale_xsl_module (+)= 'ASP' UNION ALL -- GROEPEN ZONDER DISCIPLINES SELECT gr.fac_groep_omschrijving, f.fac_functie_module, f.fac_functie_code, COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, f.fac_functie_omschrijving), NULL omschrijving, fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'), fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'), fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'), fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG') FROM FAC_GROEPRECHTEN g, FAC_FUNCTIE f, FAC_GROEP gr, fac_locale_xsl flx WHERE g.fac_groep_key = gr.fac_groep_key AND fac_functie_discipline = 0 AND g.fac_functie_key = f.fac_functie_key AND flx.fac_locale_xsl_label (+)= f.fac_functie_omschrijving AND flx.fac_locale_xsl_lang (+)= 'NL' AND flx.fac_locale_xsl_module (+)= 'ASP'; CREATE_VIEW(fac_v_rap_groepleden, 0) (naam, fclt_f_login, fclt_f_groep, aantal_rechten ) AS SELECT p.prs_perslid_naam, p.prs_perslid_oslogin, gr.fac_groep_omschrijving, to_char(count(*)) FROM fac_gebruikersgroep gg, prs_v_aanwezigperslid p, fac_groep gr, fac_groeprechten grr WHERE p.prs_perslid_key = gg.prs_perslid_key AND gg.fac_groep_key = gr.fac_groep_key AND gr.FAC_GROEP_KEY = grr.fac_groep_key GROUP BY p.prs_perslid_naam, p.prs_perslid_oslogin, gr.fac_groep_omschrijving; -- Levert precies het formaat van de importsheet "Inventarisatie Gebruikersgroepen" CREATE_VIEW(fac_v_rap_gebruikersgroepen1, 0) ( fclt_f_groep, code, fclt_x_module, fclt_f_vakgroeptype, fclt_f_vakgroep, org_lezen, org_schrijven, plaats_lezen, plaats_schrijven ) AS SELECT -- GROEPEN MET DISCIPLINES gr .fac_groep_omschrijving, f.fac_functie_code, f.fac_functie_module, sd.ins_srtdiscipline_omschrijving, a.ins_discipline_omschrijving, TO_CHAR(COALESCE(g.fac_gebruiker_prs_level_read, -1)), TO_CHAR(COALESCE(g.fac_gebruiker_prs_level_write, -1)), TO_CHAR(COALESCE(g.fac_gebruiker_alg_level_read, -1)), TO_CHAR(COALESCE(g.fac_gebruiker_alg_level_write, -1)) FROM fac_groeprechten g, fac_functie f, ins_tab_discipline a, ins_srtdiscipline sd, fac_groep gr WHERE g.ins_discipline_key = a.ins_discipline_key AND a.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) AND g.fac_groep_key = gr.fac_groep_key AND f.fac_functie_key = g.fac_functie_key AND f.fac_functie_discipline = 1 AND ins_discipline_verwijder IS NULL UNION ALL -- GROEPEN ZONDER DISCIPLINES SELECT gr.fac_groep_omschrijving, f.fac_functie_code, f.fac_functie_module, NULL, NULL, TO_CHAR(COALESCE(g.fac_gebruiker_prs_level_read, -1)), TO_CHAR(COALESCE(g.fac_gebruiker_prs_level_write, -1)), TO_CHAR(COALESCE(g.fac_gebruiker_alg_level_read, -1)), TO_CHAR(COALESCE(g.fac_gebruiker_alg_level_write, -1)) FROM fac_groeprechten g, fac_functie f, fac_groep gr WHERE g.fac_groep_key = gr.fac_groep_key AND fac_functie_discipline = 0 AND g.fac_functie_key = f.fac_functie_key; CREATE_VIEW (fac_v_perfmon, 0) (fclt_f_datum, drempelwaarde, aantal, gemiddelde, users ) AS SELECT fac_perfmon_datum, fac_perfmon_threshold, fac_perfmon_AANTAL, ROUND(fac_perfmon_waarde / fac_perfmon_aantal), fac_perfmon_users FROM fac_perfmon; // perfmon.asp basic sample reports -- de platte waarden CREATE_VIEW(fac_v_perfmon_samplewaarde, 0) (fclt_f_datum, waarde1, waarde2, waarde3, waarde4, waarde5, waarde6, waarde7, waarde8, waarde9, fclt_f_ipadres, fclt_f_gebruiker ) AS SELECT fac_perfmon_sample_datum, fac_perfmon_sample_waarde1, fac_perfmon_sample_waarde2, fac_perfmon_sample_waarde3, fac_perfmon_sample_waarde4, fac_perfmon_sample_waarde5, fac_perfmon_sample_waarde6, fac_perfmon_sample_waarde7, fac_perfmon_sample_waarde8, fac_perfmon_sample_waarde9, fac_perfmon_sample_ip, pf.prs_perslid_naam_full FROM fac_perfmon_sample s, prs_v_perslid_fullnames_all pf WHERE s.prs_perslid_key = pf.prs_perslid_key; /* * * * Definities van notificatie_job views met naamgeving FAC_V_NOTI_[mod][naam] voor de standaard/defaults * Voor klantspecifieke notificaties wordt [cust]_V_NOTI_[mod][naam] toegepast. * en (minimaal) verplicht de kolommen sender, receiver, text, code, key, xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key * als achtereenvolgens perslid_key, perslid_key, subject, srtnotificatiecode, entiteitkey enz. * Als text niet null is, wordt die gebruikt ipv de tekst bij code. */ // Voor een contactpersoon alle reserveringen binnen 4-5 werkdagen na nu, zowel ruimte, voorzieningen als catering CREATE_VIEW (fac_v_noti_resreminder, 0) (code, sender, receiver, text, key, xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key) AS SELECT 'RESINF' , NULL , rsvr.res_rsv_ruimte_contact_key , 'Reservering ' || res.res_reservering_key || ': U heeft op ' || DATE_TO_CHAR (rsvr.res_rsv_ruimte_van, 'DD-MM') || ' van ' || DATE_TO_CHAR (rsvr.res_rsv_ruimte_van, 'HH24:MI') || ' tot ' || DATE_TO_CHAR (rsvr.res_rsv_ruimte_tot, 'HH24:MI') || ' ruimte ' || r.res_ruimte_nr || ' gereserveerd.' , res.res_reservering_key , rsvr.res_rsv_ruimte_key , NULL xemail , NULL xmobile , NULL fac_srtnotificatie_key , NULL attachments , NULL xsender , NULL prs_bedrijfadres_key FROM res_v_aanwezigreservering res , res_v_aanwezigrsv_ruimte rsvr , res_ruimte_opstelling opst , res_disc_params rdp , res_ruimte r WHERE r.res_discipline_key = rdp.res_ins_discipline_key AND rdp.res_disc_params_noti_dagen IS NOT NULL AND res.res_reservering_key = rsvr.res_reservering_key AND opst.res_ruimte_opstel_key = rsvr.res_ruimte_opstel_key AND opst.res_ruimte_key = r.res_ruimte_key AND rsvr.res_status_fo_key <= 5 AND rsvr.res_rsv_ruimte_van BETWEEN fac.datumtijdplusuitvoertijd (SYSDATE, res_disc_params_noti_dagen, 'DAGEN') AND fac.datumtijdplusuitvoertijd (SYSDATE, res_disc_params_noti_dagen+1, 'DAGEN') AND fac.getweekdaynum(sysdate) NOT IN (1,7) AND rsvr.res_rsv_ruimte_van >= SYSDATE UNION ALL SELECT 'RESINF' , NULL , res_rsv_ruimte_contact_key , 'Reservering ' || res_reservering_key || ': U heeft op ' || DATE_TO_CHAR(min(van), 'dd-mm') || DECODE (min(van), max(tot), ' om ' || DATE_TO_CHAR(min(van), 'hh24:mi') , ' van ' || DATE_TO_CHAR(min(van), 'hh24:mi') || ' tot ' || DATE_TO_CHAR(max(tot), 'hh24:mi')) || ' in ruimte (' || (SELECT alg_gebouw_code || '-' || alg_verdieping_code || '-' || alg_ruimte_nr FROM alg_v_onroerendgoed_gegevens arg WHERE arg.alg_ruimte_key = ruimte_key) || ') ' || count(res_reservering_key) || ' voorziening(en) gereserveerd.' , res_reservering_key , res_rsv_ruimte_key , NULL xemail , NULL xmobile , NULL fac_srtnotificatie_key , NULL attachments , NULL xsender , NULL prs_bedrijfadres_key FROM ( SELECT rsvr.res_rsv_ruimte_contact_key , res.res_reservering_key , rsvd.res_rsv_deel_van van , rsvd.res_rsv_deel_tot tot , rsvr.res_rsv_ruimte_key , rsvr.alg_ruimte_key ruimte_key FROM res_v_aanwezigreservering res , res_v_aanwezigrsv_ruimte rsvr , res_disc_params rdp , res_rsv_deel rsvd , res_deel rd WHERE rsvd.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key AND rd.res_deel_key = rsvd.res_deel_key AND rd.res_discipline_key = rdp.res_ins_discipline_key AND rdp.res_disc_params_noti_dagen IS NOT NULL AND res.res_reservering_key = rsvr.res_reservering_key AND rsvr.res_ruimte_opstel_key IS NULL AND rsvr.res_status_fo_key <= 5 AND rsvd.res_rsv_deel_verwijder IS NULL AND rsvd.res_rsv_deel_van BETWEEN fac.datumtijdplusuitvoertijd (SYSDATE, res_disc_params_noti_dagen, 'DAGEN') AND fac.datumtijdplusuitvoertijd (SYSDATE, res_disc_params_noti_dagen+1, 'DAGEN') AND fac.getweekdaynum(sysdate) NOT IN (1,7) AND rsvd.res_rsv_deel_van >= SYSDATE UNION ALL SELECT rsvr.res_rsv_ruimte_contact_key , res.res_reservering_key , rsva.res_rsv_artikel_levering van , rsva.res_rsv_artikel_levering tot , rsvr.res_rsv_ruimte_key , rsvr.alg_ruimte_key ruimte_key FROM res_v_aanwezigreservering res , res_v_aanwezigrsv_ruimte rsvr , res_disc_params rdp , res_rsv_artikel rsva , res_artikel ra WHERE rsva.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key AND ra.res_discipline_key = rdp.res_ins_discipline_key AND rsva.res_artikel_key = ra.res_artikel_key AND rdp.res_disc_params_noti_dagen IS NOT NULL AND res.res_reservering_key = rsvr.res_reservering_key AND rsvr.res_ruimte_opstel_key IS NULL AND rsvr.res_status_fo_key <= 5 AND rsva.res_rsv_artikel_verwijder IS NULL AND rsva.res_rsv_artikel_levering BETWEEN fac.datumtijdplusuitvoertijd (SYSDATE, res_disc_params_noti_dagen, 'DAGEN') AND fac.datumtijdplusuitvoertijd (SYSDATE, res_disc_params_noti_dagen+1, 'DAGEN') AND fac.getweekdaynum(sysdate) NOT IN (1,7) AND rsva.res_rsv_artikel_levering >= SYSDATE ) GROUP BY res_rsv_ruimte_contact_key, res_reservering_key, res_rsv_ruimte_key, ruimte_key; CREATE_VIEW (fac_v_noti_cntreminder, 0) (code, sender, receiver, text, key, par1, par2, xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key) AS SELECT 'CNTMAI', '', c.prs_perslid_key_beh, 'Rappel: Contract ' || c.cnt_contract_nummer_intern||DECODE(cnt_contract_versie, NULL, '', '.'||cnt_contract_versie) || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')' || ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY') || ' worden verlengd of opgezegd.', c.cnt_contract_key, c.cnt_contract_nummer_intern, cnt.cnt_getopzegdatum (c.cnt_contract_key), NULL , NULL xemail , NULL xmobile , NULL fac_srtnotificatie_key , NULL attachments , NULL xsender , NULL prs_bedrijfadres_key FROM cnt_v_aanwezigcontract c, prs_bedrijf b WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key AND cnt_contract_verwijder IS NULL AND cnt_contract_status = 0 /* actief */ AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key)) AND cnt.getnieuwsteversiekey(c.cnt_contract_key) = c.cnt_contract_key; /* * contract notificatie die ook naar collega's gestuurd wordt. */ CREATE_VIEW (fac_v_noti_cntreminder_collega, 0) (code, sender, receiver, text, key, par1, par2, xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key) AS SELECT 'CNTMAI', '', p.prs_collega_key, 'Rappel: Contract ' || c.cnt_contract_nummer_intern||DECODE(cnt_contract_versie, NULL, '', '.'||cnt_contract_versie) || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')' || ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY') || ' worden verlengd of opgezegd.', c.cnt_contract_key, c.cnt_contract_nummer_intern, cnt.cnt_getopzegdatum (c.cnt_contract_key), NULL , NULL xemail , NULL xmobile , NULL fac_srtnotificatie_key , NULL attachments , NULL xsender , NULL prs_bedrijfadres_key FROM cnt_v_aanwezigcontract c, prs_bedrijf b, ( SELECT prs_perslid_key, prs_perslid_key prs_collega_key FROM prs_perslid UNION ALL SELECT prs_perslid_key, prs_perslid_key_alt prs_collega_key FROM prs_collega) p WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key AND c.prs_perslid_key_beh = p.prs_perslid_key AND cnt_contract_verwijder IS NULL AND cnt_contract_status = 0 /* actief */ AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key)) AND cnt.getnieuwsteversiekey(c.cnt_contract_key) = c.cnt_contract_key; -- notificatie van ongeldige reserveringen gericht aan de contactpersoon. View kan ook -- als rapportage toegevoegd worden. View levert alleen toekomstige reserveringen. -- NB: View bevat Nederlandstalige teksten. Beter zou zijn content en presentatie te scheiden. CREATE_VIEW(fac_v_noti_resdirty, 0) ( code, sender, receiver, text, key, xkey, contact, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key ) AS SELECT 'RESDIR', NULL, rm.res_rsv_ruimte_contact_key, 'Letop! Reservering ' || rm.res_reservering_key || '/' || rm.res_rsv_ruimte_volgnr || ': op ' || TO_CHAR (rm.res_rsv_ruimte_van, 'DD-MM') || ' van ' || TO_CHAR (rm.res_rsv_ruimte_van, 'HH24:MI') || ' tot ' || TO_CHAR (rm.res_rsv_ruimte_tot, 'HH24:MI') || ' ruimte ' || COALESCE (r.res_ruimte_nr, 'Werkplek') || ' is ongeldig.', rm.res_reservering_key, rm.res_rsv_ruimte_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = rm.res_rsv_ruimte_contact_key) contact , NULL xemail , NULL xmobile , NULL fac_srtnotificatie_key , NULL attachments , NULL xsender , NULL prs_bedrijfadres_key FROM res_rsv_ruimte rm, res_ruimte_opstelling ro, res_ruimte r, (SELECT ra.res_rsv_ruimte_key, COUNT ( * ) count_dirty FROM res_rsv_artikel ra WHERE res_rsv_artikel_verwijder IS NULL AND res_rsv_artikel_dirtlevel > 255 GROUP BY res_rsv_ruimte_key) art, (SELECT res_rsv_ruimte_key, COUNT ( * ) count_dirty FROM res_rsv_deel rd WHERE res_rsv_deel_verwijder IS NULL AND res_rsv_deel_dirtlevel > 255 GROUP BY res_rsv_ruimte_key) deel WHERE rm.res_rsv_ruimte_key = art.res_rsv_ruimte_key(+) AND rm.res_rsv_ruimte_key = deel.res_rsv_ruimte_key(+) AND rm.res_ruimte_opstel_key = ro.res_ruimte_opstel_key(+) AND ro.res_ruimte_key = r.res_ruimte_key(+) AND res_rsv_ruimte_verwijder IS NULL AND res_rsv_ruimte_van > SYSDATE AND ( res_rsv_ruimte_dirtlevel > 255 OR art.count_dirty > 0 OR deel.count_dirty > 0) GROUP BY res_reservering_key, res_rsv_ruimte_van, res_rsv_ruimte_tot, rm.res_rsv_ruimte_key, res_ruimte_nr, res_rsv_ruimte_volgnr, res_rsv_ruimte_contact_key ORDER BY res_rsv_ruimte_van, res_rsv_ruimte_key; -- View to notify sensors that are involved in upcoming reservations -- to announce we're about to start. First version, sample as well. -- Now uses res_disc_params_preposttime as the horizon for updates -- and keeps notifying until it starts. Will improve as we get -- more experienced CREATE_VIEW(fac_v_noti_ressensors) ( sender, receiver, text, code, fac_srtnotificatie_key, key, xkey, xsender, xemail, xmobile, attachments, prs_bedrijfadres_key ) AS SELECT NULL sender, NULL receiver, prs_perslid_naam_friendly text, 'INSUPD' code, NULL fac_srtnotificatie_key, ins_deel_key key, NULL xkey, NULL xsender, NULL xemail, NULL xmobile, NULL attachments, prs_bedrijfadres_key prs_bedrijfadres_key FROM (SELECT r.res_deel_key, d.ins_deel_key, rdp.res_disc_params_preposttime, sd.ins_srtdeel_sensortype, ba.prs_bedrijfadres_key FROM ins_deel d, ins_srtdeel sd, res_deel r, res_disc_params rdp, prs_bedrijfadres ba WHERE r.res_ins_deel_key = d.ins_deel_key AND d.ins_deel_actief = 1 AND rdp.res_ins_discipline_key = r.res_discipline_key AND sd.prs_bedrijf_key = ba.prs_bedrijf_key AND ba.prs_bedrijfadres_type = 'I' AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND BITAND (sd.ins_srtdeel_sensortype, 1) = 1 AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > SYSDATE) AND res_deel_verwijder IS NULL) sensors, (SELECT res_deel_key, res_rsv_deel_van, pf.prs_perslid_naam_friendly FROM res_rsv_deel rd, res_rsv_ruimte rr, prs_v_perslid_fullnames_all pf WHERE rd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND rr.res_rsv_ruimte_host_key = pf.prs_perslid_key AND res_rsv_deel_verwijder IS NULL AND res_rsv_deel_dirtlevel = 0 AND res_rsv_deel_van BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 1)) reservations_today WHERE reservations_today.res_deel_key = sensors.res_deel_key AND SYSDATE BETWEEN res_rsv_deel_van - (res_disc_params_preposttime / 24) AND res_rsv_deel_van; -- Notificatie voor opdrachten in de queue die al meer dan S(puo_failalert_threshold) minuten gefaald zijn CREATE_VIEW(fac_v_noti_facorderqueuefails, 0) ( sender, receiver, text, par1, code, key, xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key ) AS SELECT '', wg.prs_perslid_key, LTRIM(lcl.L('lcl_facilitor_appl')) || ' alert: transmission of ' || DECODE ( fac_srtnotificatie_code, 'ORDSNX', 'Order ' || (SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr || ' to ' || COALESCE (prs_bedrijf_naam, '??') FROM mld_opdr o, prs_bedrijf b WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key(+) AND mld_opdr_key = key), 'BES2SX', 'Procurement order ' || (SELECT bes_bestelopdr_id || ' to ' || prs_bedrijf_naam FROM bes_bestelopdr o, prs_bedrijf b WHERE o.prs_bedrijf_key = b.prs_bedrijf_key AND bes_bestelopdr_key = key), key) || ' has failed ' || COUNT ( * ) || ' times since ' || TO_CHAR (MIN (ft.fac_tracking_datum), 'DD-MM-YYYY HH24:MI') || ' (' || MIN(fac_version_cust) || ')', NULL, NULL, NULL, NULL , NULL xemail , NULL xmobile , NULL fac_srtnotificatie_key , NULL attachments , NULL xsender , NULL prs_bedrijfadres_key FROM fac_v_orderqueue q, fac_tracking ft, fac_srtnotificatie fs, fac_functie f, fac_v_webgebruiker wg, fac_version WHERE f.fac_functie_key = wg.fac_functie_key AND f.fac_functie_code = 'WEB_PRSSYS' AND ft.fac_srtnotificatie_key = fs.fac_srtnotificatie_key AND ft.fac_tracking_refkey = q.key AND fac_srtnotificatie_code IN ('ORDSNX', 'BES2SX') GROUP BY xmlnode, key, fac_srtnotificatie_code, wg.prs_perslid_key HAVING (SYSDATE - MIN (ft.fac_tracking_datum)) * 24 * 60 > fac.getSetting('puo_failalert_threshold'); -- dagelijkse notificatie voor verwoede inlogpogingen (1 regel per user beetje veel misschien) CREATE OR REPLACE FORCE VIEW fac_v_noti_auditfail_day ( sender, receiver, text, code, key, xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key ) AS SELECT NULL , NULL , 'Facilitor/' || (SELECT fac_version_cust || '-' || fac_version_otap FROM fac_version) || ' alert [' || TO_CHAR (fac_auditfail_datum, 'YYYY-MM-DD HH24:MI:SS') || ']: ' || fac_auditfail_tekst , NULL , NULL , NULL , fac.getsetting('puo_emergencymailaddress') xemail , NULL xmobile , NULL fac_srtnotificatie_key , NULL attachments , NULL xsender , NULL prs_bedrijfadres_key FROM fac_auditfail WHERE fac_auditfail_tekst LIKE '%dan 5 inlogpogingen%' AND fac_auditfail_datum > SYSDATE - 1 ORDER BY fac_auditfail_datum DESC; CREATE_VIEW(fac_v_notifyqueue, 0) AS SELECT fac_notificatie_receiver_email, fac_notificatie_receiver_phone, fac_notificatie_oms, fac_notificatie_status, fac_notificatie_key, fac_notificatie_refkey, fac_notificatie_datum, fac_srtnotificatie_code, fac_srtnotificatie_xmlnode, fac_notificatie_extrakey, fac_notificatie_sender_email, fac_notificatie_lang, fac_notificatie_systeemadres, fac_notificatie_attachments, fac_srtnotificatie_delay, fac_srtnotificatie_srtkm_key, fac_srtnotificatie_noticollegas, prs_perslid_key_receiver, fac_notificatie_notbefore, fac_notificatie_failcount, prs_bedrijfadres_key, prs_perslid_key_sender, fac_notificatie_geturl, fac_notificatie_getbody, fac_notificatie_naam, fac_notificatie_realuser FROM fac_notificatie n LEFT OUTER JOIN fac_srtnotificatie sn ON n.fac_srtnotificatie_key = sn.fac_srtnotificatie_key; -- Queue met naar leveranciers te verzenden opdrachten tbv PutOrders: wat-moet-naar-wie-en-hoe -- Tijdelijke dummy die niets oplevert, droppen met DB51 CREATE_VIEW(fac_v_orderqueue, 0) AS SELECT -1 prs_bedrijf_key, -1 alg_locatie_key, 'dontcare' xmlnode, -1 key, -1 reference, '' sender, SYSDATE teverzenden_datum FROM DUAL WHERE 0 = 1; // PLANMATIG ONDERHOUDS views (OPROGNOSE) -- Basisview voor intern gebruik CREATE_VIEW(fac_v_oprognosegegevens, 0) AS SELECT op.*, (SELECT prijs FROM (SELECT km.mld_melding_key, km.mld_kenmerk_key, km.mld_kenmerkmelding_waarde prijs FROM mld_kenmerkmelding km, (SELECT MAX (k.mld_kenmerk_key) mld_kenmerk_key FROM mld_srtkenmerk sk, mld_kenmerk k WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key AND sk.mld_srtkenmerk_upper = 'PRIJS' AND k.mld_kenmerk_verwijder IS NULL) k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_kenmerkmelding_verwijder IS NULL) pk WHERE op.mld_melding_key = pk.mld_melding_key) prijs FROM (SELECT m.mld_melding_key, MIN (s.mld_statuses_omschrijving) mld_statuses_omschrijving, MIN (std.mld_stdmelding_omschrijving) mld_stdmelding_omschrijving, MIN (TO_CHAR (SUBSTR (mld_melding_omschrijving, 0, 4000))) mld_melding_omschrijving, MIN (m.mld_melding_datum) mld_melding_datum, MIN (l.alg_locatie_code) alg_locatie_code, MIN (v.alg_gebouw_key) alg_gebouw_key, MIN (v.alg_gebouw_naam) alg_gebouw_naam, MIN (l.alg_locatie_code || ' - ' || v.alg_gebouw_naam) alg_locatie_gebouw_naam, SUM (o.mld_opdr_kosten) mld_opdr_kosten, SUM (o.mld_opdr_kosten_raming) mld_opdr_kosten_raming FROM mld_melding m, mld_statuses s, mld_stdmelding std, alg_v_onroerendgoed_gegevens v, alg_locatie l, mld_discipline md, ins_srtdiscipline sd, (SELECT o.mld_opdr_key, o.mld_opdr_kosten, 0 mld_opdr_kosten_raming, o.mld_melding_key FROM mld_opdr o WHERE o.mld_statusopdr_key IN (6, 7, 9) UNION ALL SELECT o.mld_opdr_key, 0 mld_opdr_kosten, o.mld_opdr_kosten mld_opdr_kosten_raming, o.mld_melding_key FROM mld_opdr o WHERE o.mld_statusopdr_key IN (4, 5, 3, 10, 8)) o WHERE std.mld_stdmelding_key = m.mld_stdmelding_key AND m.mld_melding_status = s.mld_statuses_key AND m.mld_melding_key = o.mld_melding_key(+) -- Dus ook meldingen zonder opdrachten! AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key AND m.mld_melding_status IN (1, 2, 3, 4, 5, 6, 7) -- Alle huidige melding statussen AND m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys(+) AND md.ins_discipline_key IN (SELECT ins_discipline_key FROM ins_tab_discipline WHERE UPPER (ins_discipline_omschrijving) = 'PLANMATIG ONDERHOUD') AND std.mld_ins_discipline_key = md.ins_discipline_key GROUP BY m.mld_melding_key) op; /* Formatted on 13/08/2008 12:59 (Formatter Plus v4.8.7) */ CREATE_VIEW(fac_v_oprognosevoortgang, 0) (fclt_f_gebouw, fclt_f_jaar, meldingnr, soortactiviteit, activiteit, status, budget, kostengemaakt, kostenbegroot, saldo ) AS SELECT alg_locatie_gebouw_naam gebouw, TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar, TO_CHAR (mld_melding_key) meldingnr, mld_stdmelding_omschrijving, mld_melding_omschrijving melding, mld_statuses_omschrijving status, fac.safe_to_number (prijs) budget, mld_opdr_kosten kosten_verwerkt, mld_opdr_kosten_raming kosten, (prijs - mld_opdr_kosten - mld_opdr_kosten_raming) saldo FROM fac_v_oprognosegegevens; CREATE_VIEW(fac_v_oprognosegebouw, 0) (fclt_f_gebouw, fclt_f_jaar, activiteiten, budget, kostengemaakt, kostenbegroot, saldo ) AS SELECT alg_locatie_gebouw_naam gebouw, TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar, COUNT (mld_melding_key), SUM (fac.safe_to_number (prijs)) budget, SUM (mld_opdr_kosten) kostengemaakt, SUM (mld_opdr_kosten_raming) kostenbegroot, SUM (prijs - mld_opdr_kosten - mld_opdr_kosten_raming) saldo FROM fac_v_oprognosegegevens GROUP BY alg_locatie_gebouw_naam, TO_CHAR (mld_melding_datum, 'yyyy'); /* Formatted on 13/08/2008 13:04 (Formatter Plus v4.8.7) */ CREATE_VIEW(fac_v_oprognoseactiviteit, 0) (fclt_f_soortactiviteit, fclt_f_jaar, activiteiten, budget, kostengemaakt, kostenbegroot, saldo ) AS SELECT mld_stdmelding_omschrijving, TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar, COUNT (mld_melding_key), SUM (fac.safe_to_number (prijs)) budget, SUM (mld_opdr_kosten) kostengemaakt, SUM (mld_opdr_kosten_raming) kostenbegroot, SUM (prijs - mld_opdr_kosten - mld_opdr_kosten_raming) saldo FROM fac_v_oprognosegegevens GROUP BY mld_stdmelding_omschrijving, TO_CHAR (mld_melding_datum, 'yyyy'); CREATE_VIEW (fac_v_imp_res_artikel_sync ,0) (hide_f_artikel_catalogus, hide_f_artikel_omschrijving, artikelKey, catalogusNaam, catalogusKostensoort, artikelNummer, artikelOmschrijving, artikelEenheid, artikelPrijs, artikelPrijsVast, artikelInkoopprijs, artikelPersoneelkosten, artikelAlgemenekosten, artikelBTW, artikelOpmerking, artikelGroep, artikelVolgnummer, artikelIngangsdatum, artikelVervaldatum, artikelMinimum ) AS SELECT (SELECT ins_discipline_omschrijving FROM ins_tab_discipline d WHERE d.ins_discipline_key = res_discipline_key), res_artikel_omschrijving, TO_CHAR (res_artikel_key), (SELECT ins_discipline_omschrijving FROM ins_tab_discipline d WHERE d.ins_discipline_key = res_discipline_key), (SELECT prs_kostensoort_oms FROM ins_tab_discipline d, prs_kostensoort k WHERE d.ins_discipline_key = res_discipline_key AND d.prs_kostensoort_key = k.prs_kostensoort_key), res_artikel_nr, res_artikel_omschrijving, res_artikel_eenheid, TO_CHAR (res_artikel_prijs), TO_CHAR (res_artikel_prijs_vast), TO_CHAR (res_artikel_inkoopprijs), TO_CHAR (res_artikel_kostenpersoneel), TO_CHAR (res_artikel_kostenalgemeen), TO_CHAR (res_artikel_btw), res_artikel_opmerking, res_artikel_groep, TO_CHAR (res_artikel_volgnummer), TO_CHAR (res_artikel_ingangsdatum, 'YYYYMMDD'), TO_CHAR (res_artikel_vervaldatum, 'YYYYMMDD'), TO_CHAR (res_artikel_minimum) FROM res_v_aanwezigartikel; /* View met het maximale actuele menu van de huidige configuratie */ CREATE_VIEW (fac_v_menu, 0) AS SELECT fac_menu_key, COALESCE (fac_menu_altgroep, fac_menuitems_groep) groep, COALESCE (fac_menu_altlabel, fac_menuitems_label) label, COALESCE (fac_menu_alturl, fac_menuitems_url) url, COALESCE (fac_menu_image, fac_menuitems_image) image, fac_menuitems_module, COALESCE (mi.fac_menuitems_srtdisc, 0) fac_menuitems_srtdisc, COALESCE (mi.fac_menuitems_disc, 0) fac_menuitems_disc, fac_menu_volgnr, COALESCE (m.fac_functie_key, mi.fac_functie_key) fac_functie_key, COALESCE (mi.fac_menuitems_rw, 'R') fac_menuitems_rw, fac_menu_info, fac_menu_level, fac_menu_portal, m.ins_srtdiscipline_key, m.ins_discipline_key FROM fac_menu m, fac_menuitems mi WHERE m.fac_menuitems_key = mi.fac_menuitems_key(+); /* View met alle mogelijkheden voor het menu, al dan niet al ingebruik */ CREATE_VIEW (fac_v_menuitems, 0) AS SELECT mi.fac_menuitems_key, COALESCE (fac_menu_altgroep, fac_menuitems_groep) groep, COALESCE (fac_menu_altlabel, fac_menuitems_label) label, COALESCE (fac_menu_alturl, fac_menuitems_url) url, mi.fac_menuitems_module, COALESCE (mi.fac_menuitems_srtdisc, 0) fac_menuitems_srtdisc, COALESCE (mi.fac_menuitems_disc, 0) fac_menuitems_disc, fac_menu_volgnr, mi.fac_functie_key, COALESCE (mi.fac_menuitems_rw, 'R') fac_menuitems_rw, fac_menu_info, m.fac_menu_key FROM fac_menu m, fac_menuitems mi WHERE m.fac_menuitems_key(+) = mi.fac_menuitems_key; CREATE_VIEW (fac_v_locale_lcl, 0) ( fac_localeitems_dialect_id, fac_localeitems_lcl, fac_locale_dialect_key, fac_locale_lang, fac_locale_tekst ) AS SELECT i.fac_localeitems_dialect_id, i.fac_localeitems_lcl, l.fac_locale_dialect_key, l.fac_locale_lang, l.fac_locale_tekst FROM fac_locale l, fac_localeitems i WHERE l.fac_localeitems_key(+) = i.fac_localeitems_key ORDER BY i.fac_localeitems_dialect_id, i.fac_localeitems_lcl, l.fac_locale_dialect_key; CREATE_VIEW(fac_v_locale_kolom, 0) ( fac_locale_kolomnaam, fac_locale_kolomkeyval, fac_locale_default, fac_locale_lang, fac_locale_tekst ) AS SELECT l.fac_locale_kolomnaam, l.fac_locale_kolomkeyval, x.mld_typeopdr_omschrijving, l.fac_locale_lang, l.fac_locale_tekst FROM fac_locale l, mld_typeopdr x WHERE l.fac_locale_kolomkeyval = x.mld_typeopdr_key AND l.fac_locale_kolomnaam = 'MLD_TYPEOPDR_KEY' UNION ALL SELECT l.fac_locale_kolomnaam, l.fac_locale_kolomkeyval, x.res_ruimte_omschrijving, l.fac_locale_lang, l.fac_locale_tekst FROM fac_locale l, res_ruimte x WHERE l.fac_locale_kolomkeyval = x.res_ruimte_key AND l.fac_locale_kolomnaam = 'RES_RUIMTE_OMSCHRIJVING' UNION ALL SELECT l.fac_locale_kolomnaam, l.fac_locale_kolomkeyval, x.ins_srtdiscipline_omschrijving, l.fac_locale_lang, l.fac_locale_tekst FROM fac_locale l, ins_srtdiscipline x WHERE l.fac_locale_kolomkeyval = x.ins_srtdiscipline_key AND l.fac_locale_kolomnaam = 'INS_SRTDISCIPLINE_OMSCHRIJVING'; -- Basisview voor logging-rapportages van niet-imports CREATE_VIEW(fac_v_rap_imp_log, 0) AS SELECT imp_log_applicatie, imp_log_datum, imp_log_status, DECODE (imp_log_status, 'F', 'Fatal', 'E', 'Error', 'W', 'Warning', 'I', 'Informative', 'S', 'Summary', imp_log_status) niveau, imp_log_omschrijving, imp_log_hint opmerking FROM imp_log WHERE fac_import_key IS NULL; -- en daarop gebaseerd standaard al eentje voor putorders (die bestond al) CREATE_VIEW(fac_v_rap_putorderslog, 0) AS SELECT imp_log_datum hide_f_imp_log_datum, TO_CHAR (imp_log_datum, 'YYYYMMDD') fclt_f_datum, TO_CHAR (imp_log_datum, 'HH24:MI:SS') tijdstip, niveau fclt_f_niveau, imp_log_omschrijving fclt_f_omschrijving FROM fac_v_rap_imp_log WHERE imp_log_applicatie = '$PutOrders$' AND imp_log_datum > SYSDATE - 10; CREATE_VIEW (fac_v_lcrap_fe_vs_key_data, 0) AS SELECT x.prs_perslid_key, naam, usertype, oslogin, last_login, a.key_user, b.xd_user FROM (SELECT p.prs_perslid_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = p.prs_perslid_key) naam, 'user' usertype, COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) oslogin, p.prs_perslid_login last_login FROM prs_v_aanwezigperslid p WHERE ( prs_perslid_oslogin IS NULL OR prs_perslid_oslogin NOT IN ('_FACILITOR', '_PUTORDERS', '_HMAIL')) AND EXISTS -- op basis van groep + rechten (SELECT 1 FROM fac_v_webgebruiker WHERE prs_perslid_key = p.prs_perslid_key) UNION ALL SELECT p.prs_perslid_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = p.prs_perslid_key) naam, 'user' usertype, COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) oslogin, NULL last_login -- geen login (lees zonder rechten), dus telt als nooit recent ingelogd! FROM prs_v_aanwezigperslid p WHERE NOT EXISTS -- géén groep + rechten! (SELECT 1 FROM fac_v_webgebruiker gg WHERE gg.prs_perslid_key = p.prs_perslid_key) AND ( fac.getsetting ('mld_allow_for_others') = 1 OR EXISTS (SELECT 1 FROM bes_disc_params dp, bes_discipline bd WHERE dp.bes_disc_params_for_others = 1 AND bd.ins_discipline_key = dp.bes_ins_discipline_key AND bd.ins_discipline_verwijder IS NULL)) UNION ALL -- FSN#27315: En ook eventuele "sensorusers" meetellen! SELECT NULL prs_perslid_key, sd.ins_srtdeel_omschrijving naam, 'sensorobject' usertype, ins_deel_omschrijving oslogin, ins_deel_statedate last_login -- recent actief dus tellen als recent FROM ins_v_aanwezigdeel d, ins_srtdeel sd WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND NVL(sd.ins_srtdeel_sensortype,0) <> 0) x LEFT JOIN -- 1=user heeft schrijfrechten op key-codes=notFE-codes (SELECT DISTINCT prs_perslid_key, 1 key_user FROM (SELECT g.prs_perslid_key, 1 key_user FROM fac_v_webgebruiker g, fac_functie f WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_groep IN (1, 2) AND g.fac_gebruiker_prs_level_write < 9 AND g.fac_gebruiker_alg_level_write < 9 UNION SELECT p.prs_perslid_key, 1 key_user FROM fac_groep fg, fac_gebruikersgroep fgg, prs_perslid p WHERE fac_groep_collega = 1 AND fg.fac_groep_key = fgg.fac_groep_key AND p.prs_perslid_key = fgg.prs_perslid_key AND p.prs_perslid_verwijder IS NULL AND fg.fac_groep_key IN ( SELECT fac_groep_key FROM fac_gebruikersgroep GROUP BY fac_groep_key HAVING COUNT (prs_perslid_key) > 9))) a ON x.prs_perslid_key = a.prs_perslid_key LEFT JOIN -- FSN#30404: 1=user is cross-domain (xd) user (SELECT p.prs_perslid_key, 1 xd_user FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab WHERE p.prs_afdeling_key = ab.prs_afdeling_key AND p.prs_perslid_apikey IS NOT NULL AND ab.prs_bedrijf_key = fac.safe_to_number (fac.getsetting ('xd_primary_bedrijfkey'))) b ON x.prs_perslid_key = b.prs_perslid_key; -- Dit gaan we hanteren om API-users te tellen (zijn dan geen normale keyusers meer) CREATE_VIEW (fac_v_lcrap_apiusers, 0) AS SELECT apiuser, apinaam, LISTAGG (module, ', ') modules FROM ( SELECT prs_perslid_oslogin apiuser, prs_perslid_naam apinaam, fac_functie_module module FROM ( SELECT gg.prs_perslid_key, g.fac_functie_key, g.ins_discipline_key FROM fac_groeprechten g, fac_gebruikersgroep gg, fac_groep fg WHERE g.fac_groep_key = gg.fac_groep_key AND gg.fac_groep_key = fg.fac_groep_key AND fac_groep_upper <> '_DEFAULT' GROUP BY gg.prs_perslid_key, g.fac_functie_key, g.ins_discipline_key) w, fac_functie f, prs_perslid p WHERE w.fac_functie_key = f.fac_functie_key AND p.prs_perslid_key = w.prs_perslid_key AND prs_perslid_apikey IS NOT NULL AND BITAND (prs_perslid_flags, 36) = 0 --AND prs_perslid_oslogin NOT IN ('_HMAIL', '_PUTORDERS', 'SENSORS') AND prs_perslid_verwijder IS NULL GROUP BY prs_perslid_oslogin, prs_perslid_naam, fac_functie_module) GROUP BY apiuser, apinaam ORDER BY 1; -- totaliseer data uit bovenstaande view tot in principe 1 samenvattingsregel -- (voor crossdomain (xd) fe-users bestaat geen definitie) -- personen zonder rechten worden als passive_user toegevoegd CREATE_VIEW (fac_v_lcrap_fe_vs_key, 0) ( tijdstip, all_users, fe_users, key_users, devices, passive_users, xdkey_users, recent_login ) BEQUEATH DEFINER AS SELECT tijdstip, all_users, fe_users, key_users, NVL (system_users, 0), NVL (passive_users, 0), xdkey_users, recent_login FROM (SELECT SYSDATE tijdstip, COUNT (*) all_users, COUNT (*) - SUM (DECODE (x.key_user, NULL, DECODE (x.xd_user, NULL, 0, 1), 1)) fe_users, SUM (DECODE (x.key_user, NULL, 0, DECODE (x.xd_user, NULL, 1, 0))) key_users, SUM (DECODE (x.key_user, NULL, 0, DECODE (x.xd_user, NULL, 0, 1))) xdkey_users, SUM (CASE WHEN x.last_login > SYSDATE - 100 THEN 1 ELSE 0 END) recent_login FROM fac_v_lcrap_fe_vs_key_data x WHERE x.usertype = 'user') a LEFT JOIN (SELECT COUNT (*) system_users FROM fac_v_lcrap_fe_vs_key_data xx WHERE xx.usertype <> 'user') ON 1 = 1 LEFT JOIN (SELECT COUNT (*) passive_users FROM prs_v_aanwezigperslid p WHERE prs_perslid_inactief IS NULL AND NOT EXISTS (SELECT '' FROM fac_gebruikersgroep WHERE prs_perslid_key = p.prs_perslid_key)) ON 1 = 1; CREATE_VIEW (fac_v_lcrap_grp_stats, 0) ( fac_groep_omschrijving, lev_write_cnt, max_alg_write, max_prs_write, lev_read_cnt, max_alg_read, max_prs_read, in_groep_cnt ) AS SELECT x.fac_groep_omschrijving, COALESCE (y.lev_write_cnt, 0) lev_write_cnt, y.max_alg_write, y.max_prs_write, COALESCE (z.lev_read_cnt, 0) lev_read_cnt, z.max_alg_read, z.max_prs_read, x.in_groep_cnt FROM ( SELECT gg.fac_groep_key, g.fac_groep_omschrijving, COUNT (gg.prs_perslid_key) in_groep_cnt FROM fac_gebruikersgroep gg, fac_groep g WHERE gg.fac_groep_key = g.fac_groep_key GROUP BY gg.fac_groep_key, g.fac_groep_omschrijving) x LEFT JOIN ( SELECT gr.fac_groep_key, COUNT (DISTINCT gr.fac_groeprechten_key) lev_write_cnt, MIN (gr.fac_gebruiker_alg_level_write) max_alg_write, MIN (gr.fac_gebruiker_prs_level_write) max_prs_write FROM fac_groeprechten gr, fac_functie f WHERE gr.fac_functie_key = f.fac_functie_key AND fac_functie_groep IN (1, 2) AND gr.fac_gebruiker_alg_level_write < 9 AND gr.fac_gebruiker_prs_level_write < 9 GROUP BY gr.fac_groep_key) y ON x.fac_groep_key = y.fac_groep_key LEFT JOIN ( SELECT gr.fac_groep_key, COUNT (DISTINCT gr.fac_groeprechten_key) lev_read_cnt, MIN (gr.fac_gebruiker_alg_level_read) max_alg_read, MIN (gr.fac_gebruiker_prs_level_read) max_prs_read FROM fac_groeprechten gr, fac_functie f WHERE gr.fac_functie_key = f.fac_functie_key AND fac_functie_groep IN (1, 2) AND gr.fac_gebruiker_alg_level_read < 9 AND gr.fac_gebruiker_prs_level_read < 9 GROUP BY gr.fac_groep_key) z ON x.fac_groep_key = z.fac_groep_key UNION ALL SELECT '', NULL lev_write_cnt, NULL, NULL, NULL lev_read_cnt, NULL, NULL, COUNT ( * ) FROM prs_v_aanwezigperslid p WHERE p.prs_perslid_oslogin IS NOT NULL AND NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep WHERE prs_perslid_key = p.prs_perslid_key); CREATE_VIEW (fac_v_usage_statistics, 0) AS SELECT SYSDATE datum, (SELECT COUNT (*) FROM res_reservering WHERE res_reservering_aanmaak > SYSDATE - 90 AND res_reservering_verwijder IS NULL) res90dagen, (SELECT COUNT (*) FROM mld_melding WHERE mld_melding_datum > SYSDATE - 90) mld90dagen, (SELECT COUNT (*) FROM mld_opdr WHERE mld_opdr_datumbegin > SYSDATE - 90) opdr90dagen, (SELECT COUNT (*) FROM bez_afspraak WHERE bez_afspraak_datum BETWEEN SYSDATE - 90 AND SYSDATE) bez90dagen, (SELECT COUNT (*) FROM bes_bestelling WHERE bes_bestelling_datum > SYSDATE - 90) bes90dagen, (SELECT COUNT (*) FROM fin_factuur WHERE fin_factuur_datum > SYSDATE - 90) fin90dagen, (SELECT COUNT (*) FROM fac_tracking WHERE fac_tracking_datum > SYSDATE - 90) track90dagen, (SELECT COUNT (*) FROM cnt_contract WHERE cnt_contract_verwijder IS NULL) cnttotal, (SELECT COUNT (*) FROM ins_deel WHERE ins_deel_verwijder IS NULL) instotal, (SELECT COUNT (*) FROM prs_perslid WHERE prs_perslid_verwijder IS NULL) prstotal, (SELECT COUNT (*) FROM prs_perslid WHERE prs_perslid_login > SYSDATE - 7) prs7dagen, (SELECT COUNT (*) FROM prs_perslid WHERE prs_perslid_login > SYSDATE - 90) prs90dagen FROM DUAL; CREATE_VIEW (fac_v_usage_statistics_all, 0) AS SELECT maand, SUM (res) reservering, SUM (mld) melding, SUM (opdr) opdracht, SUM (bes) bestelling, SUM (bez) afspraak, SUM (fin) factuur, ROUND(SUM (prs)) gebruikers FROM ( SELECT TRUNC (res_reservering_aanmaak, 'MM') maand, COUNT (*) res, 0 mld, 0 opdr, 0 bez, 0 bes, 0 fin, 0 prs FROM res_reservering WHERE res_reservering_verwijder IS NULL GROUP BY TRUNC (res_reservering_aanmaak, 'MM') UNION ALL SELECT TRUNC (mld_melding_datum, 'MM') maand, 0 res, COUNT (*) mld, 0 opdr, 0 bez, 0 bes, 0 fin, 0 prs FROM mld_melding GROUP BY TRUNC (mld_melding_datum, 'MM') UNION ALL SELECT TRUNC (mld_opdr_datumbegin, 'MM') maand, 0 res, 0 mld, COUNT (*) opdr, 0 bez, 0 bes, 0 fin, 0 prs FROM mld_opdr GROUP BY TRUNC (mld_opdr_datumbegin, 'MM') UNION ALL SELECT TRUNC (bez_afspraak_datum, 'MM'), 0 res, 0 mld, 0 opdr, COUNT (*) bez, 0 bes, 0 fin, 0 prs FROM bez_afspraak GROUP BY TRUNC (bez_afspraak_datum, 'MM') UNION ALL SELECT TRUNC (bes_bestelling_datum, 'MM'), 0 res, 0 mld, 0 opdr, 0 bez, COUNT (*) bes, 0 fin, 0 prs FROM bes_bestelling GROUP BY TRUNC (bes_bestelling_datum, 'MM') UNION ALL SELECT TRUNC (fin_factuur_datum, 'MM'), 0 res, 0 mld, 0 opdr, 0 bez, 0 bes, COUNT (*) fin, 0 prs FROM fin_factuur GROUP BY TRUNC (fin_factuur_datum, 'MM') UNION ALL SELECT TRUNC (fac_perfmon_datum, 'MM'), 0 res, 0 mld, 0 opdr, 0 bez, 0 bes, 0 fin, AVG(fac_perfmon_users) prs FROM fac_perfmon WHERE fac.iswerkdag(fac_perfmon_datum) = 1 GROUP BY TRUNC (fac_perfmon_datum, 'MM')) WHERE maand BETWEEN TO_DATE ('2000-01-01', 'YYYY-MM-DD') AND SYSDATE GROUP BY maand; /* KTO-views naar mld gemoved */ /*****************************************************************************/ /*****************************************************************************/ /* Grafiek views voor dashboards e.d. REAL TIME MONITORING */ /*****************************************************************************/ /*****************************************************************************/ // De volgende conventies worden gehanteerd: // fclt_xas_XASNAAM x value // fclt_yas_YASNAAM y value // fclt_yas2_YA2SNAAM y2 value (not yet so supported) // fclt_url url to follow on click // .. // fclt_3d_discipline_key is de discipline key die tbv autorisatie wordt gematcht // met de de fac_functie_key cf. fac_usrgraph // -- Aantal lopende meldingen per discipline CREATE_VIEW(fac_v_graph_busyxdiscipline, 0) ( fclt_xas_, fclt_yas_, fclt_url, fclt_3d_discipline_key ) AS SELECT discipline_omschrijving, SUM (aantal), 'appl/mld/mld_search.asp?urole=fo&autosearch=1&disc_key_str=' || ins_discipline_key, ins_discipline_key FROM (SELECT d.ins_discipline_key, DECODE(sd.ins_srtdiscipline_prefix, NULL, '', sd.ins_srtdiscipline_prefix || '-' )|| lcl.x('d.ins_discipline_omschrijving',d.ins_discipline_key, ins_discipline_omschrijving) discipline_omschrijving, aantal FROM ( SELECT mld_stdmelding_key, COUNT ( * ) aantal FROM mld_melding WHERE mld_melding_status IN (2, 3, 4, 7, 0) GROUP BY mld_stdmelding_key) m2, mld_stdmelding std, ins_tab_discipline d, ins_srtdiscipline sd WHERE m2.mld_stdmelding_key(+) = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND aantal IS NOT NULL) GROUP BY discipline_omschrijving, ins_discipline_key; -- Aantal open (te behandelen) meldingen per discipline CREATE OR REPLACE FORCE VIEW fac_v_graph_todoxdiscipline ( fclt_xas_, fclt_yas_, fclt_url, fclt_3d_discipline_key ) AS SELECT discipline_omschrijving, SUM (aantal), 'appl/mld/mld_search.asp?urole=bo&autosearch=1&disc_key_str=' || ins_discipline_key, /* moet bo ipv fo, maar waarom snap ik niet */ ins_discipline_key FROM (SELECT d.ins_discipline_key, DECODE(sd.ins_srtdiscipline_prefix, NULL, '', sd.ins_srtdiscipline_prefix || '-' )|| lcl.x('d.ins_discipline_omschrijving',d.ins_discipline_key, ins_discipline_omschrijving) discipline_omschrijving, aantal FROM ( SELECT mld_stdmelding_key, COUNT ( * ) aantal FROM mld_melding WHERE mld_melding_status IN (2, 3) GROUP BY mld_stdmelding_key) m2, mld_stdmelding std, ins_tab_discipline d, ins_srtdiscipline sd WHERE m2.mld_stdmelding_key(+) = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND aantal IS NOT NULL) GROUP BY discipline_omschrijving, ins_discipline_key; -- Aantal lopende meldingen per behandelteam CREATE_VIEW(fac_v_graph_busyxdiscipline2, 0) ( fclt_xas_, fclt_yas_, fclt_url, fclt_3d_discipline_key ) AS SELECT DECODE (sd.ins_srtdiscipline_prefix, NULL, '', sd.ins_srtdiscipline_prefix || '-') || lcl.x('d.ins_discipline_omschrijving',d.ins_discipline_key, ins_discipline_omschrijving), COUNT (*), 'appl/mld/mld_search.asp?urole=bo&autosearch=1&chkself=1&mld_ins_discipline=' || ins_discipline_key, ins_discipline_key FROM mld_melding m, ins_tab_discipline d, ins_srtdiscipline sd WHERE m.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND m.mld_melding_behandelaar2_key IS NOT NULL AND mld_melding_status IN (2, 4, 7, 0) GROUP BY ins_srtdiscipline_prefix, ins_discipline_omschrijving, ins_discipline_key; -- Aantal (niet toegewezen) meldingen per behandelteam CREATE_VIEW(fac_v_graph_todoxdiscipline2, 0) ( fclt_xas_, fclt_yas_, fclt_url, fclt_3d_discipline_key ) AS SELECT DECODE (sd.ins_srtdiscipline_prefix, NULL, '', sd.ins_srtdiscipline_prefix || '-') || lcl.x('d.ins_discipline_omschrijving',d.ins_discipline_key, ins_discipline_omschrijving), COUNT (*), 'appl/mld/mld_search.asp?urole=bo&autosearch=1&chkself=1&behandel2_key=-2&mld_ins_discipline=' || ins_discipline_key, ins_discipline_key FROM mld_melding m, ins_tab_discipline d, ins_srtdiscipline sd WHERE m.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND mld_melding_status IN (2, 4, 7, 0) AND m.mld_melding_behandelaar2_key IS NULL GROUP BY ins_srtdiscipline_prefix, ins_discipline_omschrijving, ins_discipline_key; -- Afgemeld per behandelteam CREATE_VIEW(fac_v_graph_afgemeldxdiscto2, 0) ( fclt_xas_, fclt_yas_, fclt_3d_discipline_key ) AS SELECT DECODE(sd.ins_srtdiscipline_prefix, NULL, '', sd.ins_srtdiscipline_prefix || '-' )|| lcl.x('d.ins_discipline_omschrijving',d.ins_discipline_key, ins_discipline_omschrijving) discipline_omschrijving, COUNT (*) aantal, d.ins_discipline_key FROM mld_melding m, ins_tab_discipline d, ins_srtdiscipline sd, fac_tracking t, fac_srtnotificatie sn WHERE m.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_code = 'MLDAFM' AND TRUNC(t.fac_tracking_datum) = TRUNC(SYSDATE) GROUP BY d.ins_discipline_key, sd.ins_srtdiscipline_prefix, ins_discipline_omschrijving; -- Aantal lopende meldingen per srtdiscipline CREATE_VIEW(fac_v_graph_busyxsrtdis, 0) ( fclt_xas_, fclt_yas_, fclt_3d_discipline_key, fclt_url ) AS SELECT srtdiscipline_omschrijving, aantal, ins_srtdiscipline_key, 'appl/mld/mld_search.asp?urole=fo&autosearch=1&srtdisc=' || ins_srtdiscipline_key FROM ( SELECT sd.ins_srtdiscipline_omschrijving srtdiscipline_omschrijving, COUNT (sd.ins_srtdiscipline_omschrijving) aantal, sd.ins_srtdiscipline_key FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, ins_srtdiscipline sd WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND mld_melding_status IN (2, 3, 4, 7, 0) GROUP BY sd.ins_srtdiscipline_key, sd.ins_srtdiscipline_omschrijving); -- Aantal open meldingen per srtdiscipline CREATE_VIEW(fac_v_graph_busyxsrtdis, 0) ( fclt_xas_, fclt_yas_, fclt_3d_discipline_key, fclt_url ) AS SELECT srtdiscipline_omschrijving, aantal, ins_srtdiscipline_key, 'appl/mld/mld_search.asp?urole=bo&autosearch=1&srtdisc=' || ins_srtdiscipline_key /* moet bo ipv fo, maar waarom snap ik niet */ FROM ( SELECT sd.ins_srtdiscipline_omschrijving srtdiscipline_omschrijving, COUNT (sd.ins_srtdiscipline_omschrijving) aantal, sd.ins_srtdiscipline_key FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, ins_srtdiscipline sd WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND mld_melding_status IN (2, 3) GROUP BY sd.ins_srtdiscipline_key, sd.ins_srtdiscipline_omschrijving); CREATE_VIEW(fac_v_graph_afgemeldxdisctoday, 0) ( fclt_xas_, fclt_yas_, fclt_3d_discipline_key ) AS SELECT MIN(sd.ins_srtdiscipline_prefix) || '-' || MIN(d.ins_discipline_omschrijving) discipline_omschrijving, COUNT (d.ins_discipline_omschrijving) aantal, d.ins_discipline_key FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, ins_srtdiscipline sd, fac_tracking t, fac_srtnotificatie sn WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_code = 'MLDAFM' AND TRUNC(t.fac_tracking_datum) = TRUNC(SYSDATE) GROUP BY d.ins_discipline_key; CREATE_VIEW(fac_v_graph_mldnieuw_verloop, 0) ( fclt_xas_, fclt_yas_ ) AS SELECT tijd || ':00', 0 FROM ( SELECT TRIM (TO_CHAR (LEVEL, '09')) tijd, LEVEL nivo FROM DUAL CONNECT BY LEVEL <= 24) WHERE nivo >= 7 AND nivo <= 19 AND NOT EXISTS (SELECT '' FROM mld_melding m WHERE TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE) AND TO_CHAR (m.mld_melding_datum, 'hh24') = tijd) UNION SELECT TO_CHAR (m.mld_melding_datum, 'hh24') || ':00', COUNT ( * ) aantal FROM mld_melding m WHERE TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE) GROUP BY TO_CHAR (m.mld_melding_datum, 'hh24'); CREATE_VIEW(fac_v_graph_mldklaar_verloop, 0) ( fclt_xas_, fclt_yas_ ) AS SELECT tijd || ':00', 0 FROM (SELECT tijd FROM ( SELECT TRIM (TO_CHAR (LEVEL, '09')) tijd, LEVEL nivo FROM DUAL CONNECT BY LEVEL <= 24) WHERE nivo >= 7 AND nivo <= 19) WHERE NOT EXISTS (SELECT tijd FROM ( SELECT TO_CHAR (t.fac_tracking_datum, 'hh24') tijd, COUNT ( * ) aantal FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn WHERE m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_code = 'MLDAFM' AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE) GROUP BY TO_CHAR (t.fac_tracking_datum, 'hh24')) x WHERE x.tijd = tijd) UNION SELECT tijd || ':00', aantal FROM ( SELECT TO_CHAR (t.fac_tracking_datum, 'hh24') tijd, COUNT ( * ) aantal FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn WHERE m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_code = 'MLDAFM' AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE) GROUP BY TO_CHAR (t.fac_tracking_datum, 'hh24')); CREATE_VIEW(fac_v_graph_mld_ppi_accept, 0) ( fclt_xas_aantal, fclt_yas_totaal, fclt_3d_discipline_key ) AS SELECT -- ROUND ( (SUM (acceptoptijd) / COUNT (mld_key)) * 100) acceptoptijd, TO_CHAR (SUM (acceptoptijd)) aantal, COUNT (mld_key) totaal, MAX (ins_discipline_key) FROM (SELECT DISTINCT m.mld_melding_key mld_key, md.ins_discipline_key, CASE SIGN(fac.datumtijdplusuitvoertijd (fac.gettrackingdate ('MLDNEW', m.mld_melding_key), std.mld_stdmelding_t_accepttijd.tijdsduur, DECODE (std.mld_stdmelding_t_accepttijd.eenheid,'U', 'UREN', 'DAGEN') ) - SYSDATE) WHEN -1 THEN 0 ELSE 1 END acceptoptijd FROM mld_melding m, mld_discipline md, mld_stdmelding std WHERE md.ins_discipline_key = std.mld_ins_discipline_key AND std.mld_stdmelding_key = m.mld_stdmelding_key AND mld_melding_status IN (2, 3)); -- Voor flexplekbezetting, per verdieping hoeveel vrij en bezet (staaf) CREATE_VIEW(fac_v_graph_prs_flexplekken, 0) AS SELECT alg_gebouw_key fclt_3d_gebouw_key, alg_verdieping_code fclt_xas_, SUM (bezet) fclt_yas_, SUM (vrij) fclt_yas2_ FROM prs_v_flexplekken f, alg_verdieping v WHERE f.alg_verdieping_key = v.alg_verdieping_key AND v.alg_verdieping_verwijder IS NULL GROUP BY alg_gebouw_key, alg_verdieping_code; -- Voor flexplekbezetting, per gebouw hoeveel vrij en bezet (taart) CREATE_VIEW(fac_v_graph_prs_flexgebouw, 0) AS SELECT alg_gebouw_key fclt_3d_gebouw_key, 'Vrij' fclt_xas_, SUM (vrij) fclt_yas_ FROM prs_v_flexplekken f, alg_verdieping v WHERE f.alg_verdieping_key = v.alg_verdieping_key AND v.alg_verdieping_verwijder IS NULL GROUP BY alg_gebouw_key UNION SELECT alg_gebouw_key fclt_3d_gebouw_key, 'Bezet' fclt_xas_, SUM (bezet) fclt_yas_ FROM prs_v_flexplekken f, alg_verdieping v WHERE f.alg_verdieping_key = v.alg_verdieping_key AND v.alg_verdieping_verwijder IS NULL GROUP BY alg_gebouw_key; /* KTO export: het samenstellen van kto-uitnodigingen a.d.h.v. een populatie MLD/RES/BES gebaseerd op percentage/drempel */ CREATE_VIEW(fac_v_export_kto_kandidaten, 0) ( result, result_order ) AS SELECT 'Meldingnummer;Vakgroep;Melding', 0 FROM DUAL UNION ALL SELECT '"' || m.mld_melding_key || '";"' || d.ins_discipline_omschrijving || '";"' || s.mld_stdmelding_omschrijving || '"', m.mld_melding_key FROM mld_melding m, ins_tab_discipline d, mld_stdmelding s WHERE s.mld_ins_discipline_key = d.ins_discipline_key AND m.mld_stdmelding_key = s.mld_stdmelding_key AND TRUNC (m.mld_melding_kto_verstuurd) = TRUNC ( (SELECT MAX (mld_melding_kto_verstuurd) FROM mld_melding)) UNION ALL SELECT '"' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr || '";"' || d.ins_discipline_omschrijving || '";"' || rr.res_ruimte_nr || '"', 10000000 + rrr.res_rsv_ruimte_key FROM res_rsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, ins_tab_discipline d WHERE rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key AND TRUNC (rrr.res_rsv_ruimte_kto_verstuurd) = TRUNC( (SELECT MAX (res_rsv_ruimte_kto_verstuurd) FROM res_rsv_ruimte)) UNION ALL SELECT '"' || b.bes_bestelling_key || '";"' || d.ins_discipline_omschrijving || '";"' || '' || '"', 99999999 + b.bes_bestelling_key FROM bes_bestelling b, bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg, bes_discipline d WHERE b.bes_bestelling_key = bi.bes_bestelling_key AND bi.bes_srtdeel_key = sd.bes_srtdeel_key AND sd.bes_srtgroep_key = sg.bes_srtgroep_key AND sg.ins_discipline_key = d.ins_discipline_key AND TRUNC (b.bes_bestelling_kto_verstuurd) = TRUNC( (SELECT MAX (bes_bestelling_kto_verstuurd) FROM bes_bestelling)); /* EXPORT views voor de transfer functies */ CREATE_VIEW(fac_v_exp_eigen_tabel, 0) AS SELECT fac_usrtab_naam fclt_f_tabelnaam, fac_usrdata_code waarde_code, fac_usrdata_omschr waarde_oms, fac_usrdata_omschr2 waarde_oms2, fac_usrdata_volgnr volgnr, fac_usrdata_prijs prijs, fac_usrdata_vervaldatum vervaldatum, (SELECT fac_usrtab_naam FROM fac_usrtab WHERE fac_usrtab_key = ut.fac_usrtab_parentkey) waardetabel, (SELECT fac_usrdata_code FROM fac_usrdata WHERE fac_usrdata_key = ud.fac_usrdata_parentkey) waardetabel_code FROM fac_usrdata ud, fac_usrtab ut WHERE fac_usrdata_verwijder IS NULL AND ud.fac_usrtab_key = ut.fac_usrtab_key; CREATE_VIEW(fac_v_exp_menu, 0) AS SELECT fac_menu_volgnr menu_volgnr, fac_menuitems_label menuitems_label, fac_menuitems_groep menuitems_groep, fac_menuitems_url menuitems_url, fac_menu_info menu_info, fac_menu_altlabel menu_altlabel, fac_menu_alturl menu_alturl, fac_menu_altgroep menu_altgroep, ff.fac_functie_code functie_code, ins_discipline_omschrijving discipline_omschr, ins_srtdiscipline_omschrijving srtdiscipline_omschr, fac_menu_image menu_image, fac_menu_level menu_level, fac_menu_portal menu_portal FROM fac_menu fm, fac_menuitems fmi, fac_functie ff, ins_tab_discipline itd, ins_srtdiscipline isd WHERE fmi.fac_menuitems_key(+) = fm.fac_menuitems_key AND ff.fac_functie_key(+) = fm.fac_functie_key AND itd.ins_discipline_key(+) = fm.ins_discipline_key AND isd.ins_srtdiscipline_key(+) = fm.ins_srtdiscipline_key AND fac_menu_volgnr IS NOT NULL AND fm.prs_perslid_key IS NULL; CREATE_VIEW(fac_v_exp_flex_res, 0) AS SELECT fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_usrtab_naam, kms.res_srtkenmerk_code srtkenmerk_code, kms.res_srtkenmerk_omschrijving srtkenmerk_omschrijving, kms.res_srtkenmerk_kenmerktype srtkenmerk_kenmerktype, kms.res_srtkenmerk_systeem srtkenmerk_systeem, kms.res_srtkenmerk_lengte srtkenmerk_lengte, kms.res_srtkenmerk_dec srtkenmerk_dec, kms.res_srtkenmerk_nmin srtkenmerk_nmin, kms.res_srtkenmerk_nmax srtkenmerk_nmax, kms.res_srtkenmerk_dimensie srtkenmerk_dimensie, NULL kenmerk_type, km.res_kenmerk_niveau kenmerk_niveau, km.res_kenmerk_verplicht kenmerk_verplicht, km.res_kenmerk_groep kenmerk_groep, km.res_kenmerk_volgnummer kenmerk_volgnummer, km.res_kenmerk_default kenmerk_default, km.res_kenmerk_toonbaar kenmerk_toonbaar, km.res_kenmerk_uniek kenmerk_uniek, km.res_kenmerk_hint kenmerk_hint, km.res_kenmerk_regexp kenmerk_regexp, km.res_kenmerk_show_expr kenmerk_show_expr, km.res_kenmerk_code kenmerk_code, km.res_kenmerk_omschrijving kenmerk_omschr, TO_CHAR(km.res_kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS') kenmerk_verwijder, sa.res_srtactiviteit_omschrijving fclt_f_activiteitsoort, act.res_activiteit_omschrijving fclt_f_activiteit FROM res_kenmerk km, res_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, res_activiteit act, res_srtactiviteit sa WHERE act.res_activiteit_key = km.res_activiteit_key AND sa.res_srtactiviteit_key = act.res_srtactiviteit_key AND kms.res_srtkenmerk_key = km.res_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND act.res_activiteit_verwijder IS NULL AND sa.res_srtactiviteit_verwijder IS NULL; CREATE_VIEW(fac_v_exp_flex_bes, 0) AS SELECT fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_usrtab_naam, bes_srtkenmerk_code srtkenmerk_code, bes_srtkenmerk_omschrijving srtkenmerk_omschrijving, bes_srtkenmerk_kenmerktype srtkenmerk_kenmerktype, bes_srtkenmerk_systeem srtkenmerk_systeem, bes_srtkenmerk_lengte srtkenmerk_lengte, bes_srtkenmerk_dec srtkenmerk_dec, bes_srtkenmerk_nmin srtkenmerk_nmin, bes_srtkenmerk_nmax srtkenmerk_nmax, bes_srtkenmerk_dimensie srtkenmerk_dimensie, bes_kenmerk_type kenmerk_type, bes_kenmerk_niveau kenmerk_niveau, bes_kenmerk_verplicht kenmerk_verplicht, bes_kenmerk_groep kenmerk_groep, bes_kenmerk_volgnummer kenmerk_volgnummer, bes_kenmerk_default kenmerk_default, bes_kenmerk_toonbaar kenmerk_toonbaar, bes_kenmerk_uniek kenmerk_uniek, bes_kenmerk_hint kenmerk_hint, bes_kenmerk_regexp kenmerk_regexp, bes_kenmerk_show_expr kenmerk_show_expr, bes_kenmerk_code kenmerk_code, bes_kenmerk_omschrijving kenmerk_omschr, TO_CHAR (bes_kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS') kenmerk_verwijder, ins_discipline_omschrijving fclt_f_catalogus, bes_srtgroep_omschrijving fclt_f_groep, bes_srtdeel_omschrijving fclt_f_artikel FROM (SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, cat.ins_discipline_omschrijving, NULL bes_srtgroep_omschrijving, NULL bes_srtdeel_omschrijving FROM bes_kenmerk km, bes_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, bes_discipline cat WHERE bes_kenmerk_niveau = 'D' AND km.bes_srtinstallatie_key = cat.ins_discipline_key AND kms.bes_srtkenmerk_key = km.bes_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND cat.ins_discipline_verwijder IS NULL UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, cat.ins_discipline_omschrijving, grp.bes_srtgroep_omschrijving, NULL bes_srtdeel_omschrijving FROM bes_kenmerk km, bes_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, bes_discipline cat, bes_srtgroep grp WHERE bes_kenmerk_niveau = 'G' AND grp.ins_discipline_key = cat.ins_discipline_key AND km.bes_srtinstallatie_key = grp.bes_srtgroep_key AND kms.bes_srtkenmerk_key = km.bes_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND cat.ins_discipline_verwijder IS NULL AND grp.bes_srtgroep_verwijder IS NULL UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, cat.ins_discipline_omschrijving, grp.bes_srtgroep_omschrijving, art.bes_srtdeel_omschrijving FROM bes_kenmerk km, bes_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, bes_discipline cat, bes_srtgroep grp, bes_srtdeel art WHERE bes_kenmerk_niveau = 'S' AND grp.ins_discipline_key = cat.ins_discipline_key AND art.bes_srtgroep_key = grp.bes_srtgroep_key AND km.bes_srtinstallatie_key = art.bes_srtdeel_key AND kms.bes_srtkenmerk_key = km.bes_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND cat.ins_discipline_verwijder IS NULL AND grp.bes_srtgroep_verwijder IS NULL AND art.bes_srtdeel_verwijder IS NULL); CREATE_VIEW(fac_v_exp_flex_mld, 0) AS SELECT fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_usrtab_naam, mld_srtkenmerk_code srtkenmerk_code, mld_srtkenmerk_omschrijving srtkenmerk_omschrijving, mld_srtkenmerk_kenmerktype srtkenmerk_kenmerktype, mld_srtkenmerk_systeem srtkenmerk_systeem, mld_srtkenmerk_lengte srtkenmerk_lengte, mld_srtkenmerk_dec srtkenmerk_dec, mld_srtkenmerk_nmin srtkenmerk_nmin, mld_srtkenmerk_nmax srtkenmerk_nmax, mld_srtkenmerk_dimensie srtkenmerk_dimensie, NULL kenmerk_type, mld_kenmerk_niveau kenmerk_niveau, mld_kenmerk_verplicht kenmerk_verplicht, mld_kenmerk_groep kenmerk_groep, mld_kenmerk_volgnummer kenmerk_volgnummer, mld_kenmerk_default kenmerk_default, mld_kenmerk_toonbaar kenmerk_toonbaar, mld_kenmerk_uniek kenmerk_uniek, mld_kenmerk_hint kenmerk_hint, mld_kenmerk_regexp kenmerk_regexp, mld_kenmerk_show_expr kenmerk_show_expr, mld_kenmerk_code kenmerk_code, mld_kenmerk_omschrijving kenmerk_omschr, TO_CHAR (mld_kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS') kenmerk_verwijder, ins_srtdiscipline_omschrijving fclt_f_vakgroeptype, ins_discipline_omschrijving fclt_f_vakgroep, mld_stdmelding_omschrijving fclt_f_melding, mld_typeopdr_omschrijving fclt_f_opdrachttype, mld_kenmerk_verplicht_status kenmerk_verplicht_status, mld_kenmerk_onderbreken kenmerk_onderbreken, mld_kenmerk_obligation_fill kenmerk_obligation FROM (SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, vgt.ins_srtdiscipline_omschrijving, '' ins_discipline_omschrijving, '' mld_stdmelding_omschrijving, '' mld_typeopdr_omschrijving FROM mld_kenmerk km, mld_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, ins_srtdiscipline vgt WHERE mld_kenmerk_niveau = 'T' AND km.mld_stdmelding_key = vgt.ins_srtdiscipline_key AND kms.mld_srtkenmerk_key = km.mld_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND vgt.ins_srtdiscipline_verwijder IS NULL UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, vgt.ins_srtdiscipline_omschrijving, grp.ins_discipline_omschrijving, '' mld_stdmelding_omschrijving, '' mld_typeopdr_omschrijving FROM mld_kenmerk km, mld_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, ins_srtdiscipline vgt, mld_discipline grp WHERE mld_kenmerk_niveau = 'D' AND grp.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key AND km.mld_stdmelding_key = grp.ins_discipline_key AND kms.mld_srtkenmerk_key = km.mld_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND vgt.ins_srtdiscipline_verwijder IS NULL AND grp.ins_discipline_verwijder IS NULL UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, vgt.ins_srtdiscipline_omschrijving, grp.ins_discipline_omschrijving, stdm.mld_stdmelding_omschrijving, '' mld_typeopdr_omschrijving FROM mld_kenmerk km, mld_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, ins_srtdiscipline vgt, mld_discipline grp, mld_stdmelding stdm WHERE mld_kenmerk_niveau = 'S' AND grp.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key AND stdm.mld_ins_discipline_key = grp.ins_discipline_key AND km.mld_stdmelding_key = stdm.mld_stdmelding_key AND kms.mld_srtkenmerk_key = km.mld_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND vgt.ins_srtdiscipline_verwijder IS NULL AND grp.ins_discipline_verwijder IS NULL AND stdm.mld_stdmelding_verwijder IS NULL UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, '' ins_srtdiscipline_omschrijving, '' ins_discipline_omschrijving, '' mld_stdmelding_omschrijving, '' mld_typeopdr_omschrijving FROM mld_kenmerk km, mld_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut WHERE mld_kenmerk_niveau = 'A' AND km.mld_stdmelding_key IS NULL AND kms.mld_srtkenmerk_key = km.mld_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, '' ins_srtdiscipline_omschrijving, '' ins_discipline_omschrijving, '' mld_stdmelding_omschrijving, opd.mld_typeopdr_omschrijving FROM mld_kenmerk km, mld_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, mld_typeopdr opd WHERE mld_kenmerk_niveau = 'O' AND km.mld_typeopdr_key = opd.mld_typeopdr_key AND kms.mld_srtkenmerk_key = km.mld_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, '' ins_srtdiscipline_omschrijving, '' ins_discipline_omschrijving, '' mld_stdmelding_omschrijving, '' mld_typeopdr_omschrijving FROM mld_kenmerk km, mld_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut WHERE mld_kenmerk_niveau = 'P' AND km.mld_typeopdr_key IS NULL AND kms.mld_srtkenmerk_key = km.mld_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key); CREATE_VIEW(fac_v_exp_flex_cnt, 0) AS SELECT fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_usrtab_naam, kms.cnt_srtkenmerk_code srtkenmerk_code, kms.cnt_srtkenmerk_omschrijving srtkenmerk_omschrijving, kms.cnt_srtkenmerk_kenmerktype srtkenmerk_kenmerktype, kms.cnt_srtkenmerk_systeem srtkenmerk_systeem, kms.cnt_srtkenmerk_lengte srtkenmerk_lengte, kms.cnt_srtkenmerk_dec srtkenmerk_dec, kms.cnt_srtkenmerk_nmin srtkenmerk_nmin, kms.cnt_srtkenmerk_nmax srtkenmerk_nmax, kms.cnt_srtkenmerk_dimensie srtkenmerk_dimensie, NULL kenmerk_type, km.cnt_kenmerk_niveau kenmerk_niveau, km.cnt_kenmerk_verplicht kenmerk_verplicht, km.cnt_kenmerk_groep kenmerk_groep, km.cnt_kenmerk_volgnummer kenmerk_volgnummer, km.cnt_kenmerk_default kenmerk_default, km.cnt_kenmerk_toonbaar kenmerk_toonbaar, km.cnt_kenmerk_uniek kenmerk_uniek, km.cnt_kenmerk_hint kenmerk_hint, km.cnt_kenmerk_regexp kenmerk_regexp, km.cnt_kenmerk_show_expr kenmerk_show_expr, km.cnt_kenmerk_code kenmerk_code, km.cnt_kenmerk_omschrijving kenmerk_omschr, TO_CHAR (km.cnt_kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS') kenmerk_verwijder, cd.ins_discipline_omschrijving fclt_f_contractsoort FROM cnt_kenmerk km, cnt_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, cnt_discipline cd WHERE km.cnt_srtkenmerk_key = kms.cnt_srtkenmerk_key AND kms.fac_kenmerkdomein_key = kmd.fac_kenmerkdomein_key(+) AND kmd.fac_usrtab_key = fut.fac_usrtab_key(+) AND km.cnt_srtcontract_key = cd.ins_discipline_key(+) AND km.cnt_kenmerk_verwijder IS NULL AND kms.cnt_srtkenmerk_verwijder IS NULL AND kmd.fac_kenmerkdomein_verwijder IS NULL AND cd.ins_discipline_verwijder IS NULL; -- UWVA#32742: flexkenmerken transport voor objecten CREATE_VIEW(fac_v_exp_flex_ins, 0) AS SELECT fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_usrtab_naam, ins_srtkenmerk_code srtkenmerk_code, ins_srtkenmerk_omschrijving srtkenmerk_omschrijving, ins_srtkenmerk_kenmerktype srtkenmerk_kenmerktype, ins_srtkenmerk_systeem srtkenmerk_systeem, ins_srtkenmerk_lengte srtkenmerk_lengte, ins_srtkenmerk_dec srtkenmerk_dec, ins_srtkenmerk_nmin srtkenmerk_nmin, ins_srtkenmerk_nmax srtkenmerk_nmax, ins_srtkenmerk_dimensie srtkenmerk_dimensie, ins_kenmerk_bewerkniveau kenmerk_type, ins_kenmerk_niveau kenmerk_niveau, ins_kenmerk_verplicht kenmerk_verplicht, ins_kenmerk_groep kenmerk_groep, ins_kenmerk_volgnummer kenmerk_volgnummer, ins_kenmerk_default kenmerk_default, ins_kenmerk_toonbaar kenmerk_toonbaar, ins_kenmerk_uniek kenmerk_uniek, ins_kenmerk_hint kenmerk_hint, ins_kenmerk_regexp kenmerk_regexp, ins_kenmerk_show_expr kenmerk_show_expr, ins_kenmerk_code kenmerk_code, ins_kenmerk_omschrijving kenmerk_omschr, TO_CHAR (ins_kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS') kenmerk_verwijder, ins_discipline_omschrijving fclt_f_discipline, ins_srtgroep_omschrijving fclt_f_groep, ins_srtdeel_omschrijving fclt_f_objectsoort, NULL empty_1, ins_kenmerk_meetwaarde kenmerk_meetwaarde, ins_kenmerk_wissen kenmerk_wissen FROM (SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, vak.ins_discipline_omschrijving, NULL ins_srtgroep_omschrijving, NULL ins_srtdeel_omschrijving FROM ins_kenmerk km, ins_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, ins_discipline vak WHERE ins_kenmerk_niveau = 'D' AND km.ins_srtinstallatie_key = vak.ins_discipline_key AND kms.ins_srtkenmerk_key = km.ins_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND vak.ins_discipline_verwijder IS NULL UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, vak.ins_discipline_omschrijving, grp.ins_srtgroep_omschrijving, NULL ins_srtdeel_omschrijving FROM ins_kenmerk km, ins_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, ins_discipline vak, ins_srtgroep grp WHERE ins_kenmerk_niveau = 'G' AND grp.ins_discipline_key = vak.ins_discipline_key AND km.ins_srtinstallatie_key = grp.ins_srtgroep_key AND kms.ins_srtkenmerk_key = km.ins_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND vak.ins_discipline_verwijder IS NULL AND grp.ins_srtgroep_verwijder IS NULL UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, vak.ins_discipline_omschrijving, grp.ins_srtgroep_omschrijving, sd.ins_srtdeel_omschrijving FROM ins_kenmerk km, ins_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, ins_discipline vak, ins_srtgroep grp, ins_srtdeel sd WHERE ins_kenmerk_niveau = 'S' AND grp.ins_discipline_key = vak.ins_discipline_key AND sd.ins_srtgroep_key = grp.ins_srtgroep_key AND km.ins_srtinstallatie_key = sd.ins_srtdeel_key AND kms.ins_srtkenmerk_key = km.ins_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND vak.ins_discipline_verwijder IS NULL AND grp.ins_srtgroep_verwijder IS NULL AND sd.ins_srtdeel_verwijder IS NULL UNION SELECT kmd.*, kms.*, km.*, fut.fac_usrtab_naam, (SELECT loc.fac_locale_xsl_tekst FROM fac_version v, fac_locale_xsl loc WHERE COALESCE(v.fac_version_lang, 'NL') = LOC.FAC_LOCALE_XSL_LANG AND LOC.FAC_LOCALE_XSL_LABEL = 'lcl_ins_inspectie' ) || ' - ' || (SELECT loc.fac_locale_xsl_tekst FROM fac_version v, fac_locale_xsl loc WHERE COALESCE(v.fac_version_lang, 'NL') = LOC.FAC_LOCALE_XSL_LANG AND LOC.FAC_LOCALE_XSL_LABEL = DECODE(ctr_disc_params_controle_type, 1, 'lcl_ins_srtcontrole_insp', 2, 'lcl_ins_srtcontrole_repl', 3, 'lcl_ins_srtcontrole_cert' , '?') ) ins_discipline_omschrijving, sc.ins_srtcontrole_omschrijving ins_srtgroep_omschrijving, TO_CHAR(cdp.ctr_disc_params_controle_type) ins_srtdeel_omschrijving FROM ins_kenmerk km, ins_srtkenmerk kms, fac_kenmerkdomein kmd, fac_usrtab fut, ins_srtcontrole sc, ctr_disc_params cdp WHERE ins_kenmerk_niveau = 'C' AND km.ins_srtinstallatie_key = sc.ins_srtcontrole_key AND kms.ins_srtkenmerk_key = km.ins_srtkenmerk_key AND kmd.fac_kenmerkdomein_key(+) = kms.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = kmd.fac_usrtab_key AND sc.ctr_discipline_key = cdp.ctr_ins_discipline_key); CREATE_VIEW(fac_v_exp_flex_fin, 0) AS SELECT fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_usrtab_naam, NULL srtkenmerk_code, NULL srtkenmerk_omschrijving, km.fin_kenmerk_kenmerktype srtkenmerk_kenmerktype, km.fin_kenmerk_systeem srtkenmerk_systeem, km.fin_kenmerk_lengte srtkenmerk_lengte, km.fin_kenmerk_dec srtkenmerk_dec, km.fin_kenmerk_nmin srtkenmerk_nmin, km.fin_kenmerk_nmax srtkenmerk_nmax, km.fin_kenmerk_dimensie srtkenmerk_dimensie, km.fin_kenmerk_type kenmerk_type, NULL kenmerk_niveau, km.fin_kenmerk_verplicht kenmerk_verplicht, km.fin_kenmerk_groep kenmerk_groep, km.fin_kenmerk_volgnr kenmerk_volgnummer, km.fin_kenmerk_default kenmerk_default, km.fin_kenmerk_toonbaar kenmerk_toonbaar, km.fin_kenmerk_uniek kenmerk_uniek, km.fin_kenmerk_hint kenmerk_hint, km.fin_kenmerk_regexp kenmerk_regexp, km.fin_kenmerk_show_expr kenmerk_show_expr, km.fin_kenmerk_code kenmerk_code, km.fin_kenmerk_omschrijving kenmerk_omschr, TO_CHAR (km.fin_kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS') kenmerk_verwijder, NULL factuur FROM fin_kenmerk km, fac_kenmerkdomein kmd, fac_usrtab fut WHERE km.fac_kenmerkdomein_key = kmd.fac_kenmerkdomein_key(+) AND kmd.fac_usrtab_key = fut.fac_usrtab_key(+) AND km.fin_kenmerk_verwijder IS NULL AND kmd.fac_kenmerkdomein_verwijder IS NULL; CREATE_VIEW(fac_v_exp_flex_ctr, 0) AS SELECT d.fac_kenmerkdomein_omschrijving , d.fac_kenmerkdomein_objectnaam , d.fac_kenmerkdomein_kolomnaam , d.fac_kenmerkdomein_kolomtxt , t.fac_usrtab_naam , s.ins_srtkenmerk_code srtkenmerk_code , s.ins_srtkenmerk_omschrijving srtkenmerk_omschrijving , s.ins_srtkenmerk_kenmerktype srtkenmerk_kenmerktype , s.ins_srtkenmerk_systeem srtkenmerk_systeem , s.ins_srtkenmerk_lengte srtkenmerk_lengte , s.ins_srtkenmerk_dec srtkenmerk_dec , s.ins_srtkenmerk_nmin srtkenmerk_nmin , s.ins_srtkenmerk_nmax srtkenmerk_nmax , s.ins_srtkenmerk_dimensie srtkenmerk_dimensie , k.ins_kenmerk_bewerkniveau kenmerk_type , k.ins_kenmerk_niveau kenmerk_niveau , k.ins_kenmerk_verplicht kenmerk_verplicht , k.ins_kenmerk_groep kenmerk_groep , k.ins_kenmerk_volgnummer kenmerk_volgnummer , k.ins_kenmerk_default kenmerk_default , k.ins_kenmerk_toonbaar kenmerk_toonbaar , k.ins_kenmerk_uniek kenmerk_uniek , k.ins_kenmerk_hint kenmerk_hint , k.ins_kenmerk_regexp kenmerk_regexp , k.ins_kenmerk_show_expr kenmerk_show_expr , k.ins_kenmerk_code kenmerk_code , k.ins_kenmerk_omschrijving kenmerk_omschr , TO_CHAR(k.ins_kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS') kenmerk_verwijder , p.ins_discipline_omschrijving fclt_f_discipline , c.ins_srtcontrole_omschrijving fclt_f_srtcontrole , NULL empty_1 , NULL empty_2 , NULL empty_3 , ins_kenmerk_wissen kenmerk_wissen FROM ins_kenmerk k , ins_srtkenmerk s , ins_srtcontrole c , ctr_discipline p , fac_kenmerkdomein d , fac_usrtab t WHERE k.ins_srtkenmerk_key = s.ins_srtkenmerk_key AND k.ins_srtinstallatie_key = c.ins_srtcontrole_key AND c.ctr_discipline_key = p.ins_discipline_key AND s.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key(+) AND d.fac_usrtab_key = t.fac_usrtab_key(+) AND k.ins_kenmerk_niveau = 'C' AND k.ins_kenmerk_bewerkniveau = 'D'; -- Rapporten worden niet standaard aangemaakt bij gebruikers CREATE_VIEW(fac_v_rap_lcl_lang, 0) AS SELECT nl.fac_locale_xsl_label fclt_f_label, nl.fac_locale_xsl_module module, nl.fac_locale_xsl_lang fclt_f_language1, nl.fac_locale_xsl_tekst translation1, en.fac_locale_xsl_lang fclt_f_language2, en.fac_locale_xsl_tekst translation2, de.fac_locale_xsl_lang fclt_f_language3, de.fac_locale_xsl_tekst translation3, fr.fac_locale_xsl_lang fclt_f_language4, fr.fac_locale_xsl_tekst translation4 FROM fac_locale_xsl nl, fac_locale_xsl en, fac_locale_xsl de, fac_locale_xsl fr WHERE nl.fac_locale_xsl_lang = 'NL' AND en.fac_locale_xsl_lang = 'EN' AND de.fac_locale_xsl_lang = 'DE' AND fr.fac_locale_xsl_lang = 'FR' AND en.fac_locale_xsl_label = nl.fac_locale_xsl_label AND de.fac_locale_xsl_label = nl.fac_locale_xsl_label AND fr.fac_locale_xsl_label = nl.fac_locale_xsl_label AND en.fac_locale_xsl_module = nl.fac_locale_xsl_module AND de.fac_locale_xsl_module = nl.fac_locale_xsl_module AND fr.fac_locale_xsl_module = nl.fac_locale_xsl_module; CREATE_VIEW(fac_v_rap_lcl_xref, 0) AS SELECT fac_locale_xref_filepath FCLT_F_BESTAND, fac_locale_xsl_label FCLT_F_LABEL, fac_locale_xsl_tekst FCLT_F_TEKST, fac_locale_xsl_cust OVERRULE, fac_locale_xref_client CLIENTSIDE FROM fac_locale_xsl xsl, fac_locale_xref xref WHERE xsl.fac_locale_xsl_key = xref.fac_locale_xsl_key AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP'; -- Standard sample report shows GUI usage (bookmark, menu, reports, search) stats of last 100 days CREATE_VIEW(fac_v_rap_gui_usage_last100, 0) AS SELECT c.fac_gui_counter_group fclt_f_action, COALESCE (c.fac_gui_counter_info, m.fac_menu_altlabel, lcl.l (mi.fac_menuitems_label), r.fac_usrrap_omschrijving) detail, COALESCE (b.fac_bookmark_path, r.fac_usrrap_view_name, m.fac_menu_alturl, mi.fac_menuitems_url) techdetail, DECODE (COALESCE ( (CASE WHEN UPPER(b.fac_bookmark_path) LIKE 'APPL/PDA/%' THEN 3 END) , m.fac_menu_altgroep , mi.fac_menuitems_groep ), 3, 'Mobile', 'Default') device, SUM (fac_gui_counter_count) total FROM fac_gui_counter c LEFT JOIN fac_menu m ON c.fac_gui_counter_group = 'menu' AND c.fac_gui_counter_refkey = m.fac_menu_key LEFT JOIN fac_bookmark b ON c.fac_gui_counter_group = 'bookmark' AND c.fac_gui_counter_refkey = b.fac_bookmark_key LEFT OUTER JOIN fac_menuitems mi ON m.fac_menuitems_key = mi.fac_menuitems_key LEFT JOIN fac_usrrap r ON c.fac_gui_counter_group = 'report' AND c.fac_gui_counter_refkey = r.fac_usrrap_key WHERE c.fac_gui_counter_group NOT IN ('searchresult', 'searchchoice') AND c.fac_gui_counter_date > SYSDATE - 100 GROUP BY c.fac_gui_counter_group, c.fac_gui_counter_info, m.fac_menu_altlabel, mi.fac_menuitems_label, r.fac_usrrap_omschrijving, r.fac_usrrap_view_name, m.fac_menu_alturl, mi.fac_menuitems_url, b.fac_bookmark_path, m.fac_menu_altgroep, mi.fac_menuitems_groep HAVING SUM (fac_gui_counter_count) > 1; CREATE_VIEW(fac_v_rap_gui_usage_device, 0) ( action, fclt_f_device, total ) AS SELECT COALESCE (fac_gui_counter_info, fac_menu_altlabel, lcl.l (fac_menuitems_label)) detail, DECODE (COALESCE ( (CASE WHEN UPPER(b.fac_bookmark_path) LIKE 'APPL/PDA/%' THEN 3 END) , m.fac_menu_altgroep , mi.fac_menuitems_groep ), 3, 'Mobile', 'Default') device, SUM (fac_gui_counter_count) total FROM fac_gui_counter c LEFT JOIN fac_menu m ON c.fac_gui_counter_group = 'menu' AND c.fac_gui_counter_refkey = m.fac_menu_key LEFT JOIN fac_bookmark b ON c.fac_gui_counter_group = 'bookmark' AND c.fac_gui_counter_refkey = b.fac_bookmark_key LEFT OUTER JOIN fac_menuitems mi ON m.fac_menuitems_key = mi.fac_menuitems_key WHERE fac_gui_counter_group IN ('menu', 'bookmark') AND c.fac_gui_counter_date > SYSDATE - 100 GROUP BY fac_gui_counter_group, fac_gui_counter_info, fac_menu_altlabel, fac_menuitems_label, m.fac_menu_altgroep, mi.fac_menuitems_groep, b.fac_bookmark_path; CREATE_VIEW(fac_v_rap_language, 0) ( label, module, fclt_f_language, translation, fclt_f_undefined ) AS SELECT fac_locale_xsl_label, fac_locale_xsl_module, fac_locale_xsl_lang, fac_locale_xsl_tekst, CASE WHEN fac_locale_xsl_isvalid <> 1 THEN 'X' ELSE '' END FROM fac_locale_xsl; CREATE_VIEW(fac_v_rap_auditfail, 0) AS SELECT * FROM fac_auditfail; CREATE_VIEW(fac_v_rap_auditusage, 0) AS SELECT fac_gui_counter_date fclt_f_datum, prs_perslid_naam_friendly fclt_f_naam, fac_gui_counter_info detail FROM fac_gui_counter c, prs_v_perslid_fullnames p WHERE fac_gui_counter_group = 'audit' AND c.prs_perslid_key = p.prs_perslid_key; CREATE_VIEW(fac_v_udr_faq, 1) AS SELECT f.fac_faq_key kb_key, f.fac_faq_question vraag, f.fac_faq_answer antwoord, f.fac_faq_answer2 info, f.fac_faq_datum datum, f.fac_faq_wijzigdatum wijzigdatum, f.fac_faq_source oorsprong, f.fac_faq_url url, f.fac_faq_lang taal, DECODE (f.fac_faq_level, 1, lcl.l ('lcl_faq_level1'), 2, lcl.l ('lcl_faq_level2'), 3, lcl.l ('lcl_faq_level3')) zichtbaar, f.fac_faq_level zichtbaar_code, (SELECT MIN ( CASE WHEN sd.ins_srtdiscipline_prefix IS NULL THEN '' ELSE sd.ins_srtdiscipline_prefix || '-' END || m1.ins_discipline_omschrijving) /* zou lcl() moeten zijn */ FROM mld_v_aanwezigdiscipline m1, ins_srtdiscipline sd, mld_stdmeldingfaq mf WHERE m1.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND m1.ins_discipline_key = mf.ins_discipline_key AND mf.fac_faq_key = f.fac_faq_key) productgroep, (SELECT MIN (sm.mld_stdmelding_omschrijving) /* zou lcl() moeten zijn */ FROM mld_stdmeldingfaq mf, mld_stdmelding sm WHERE mf.mld_stdmelding_key = sm.mld_stdmelding_key(+) AND mf.fac_faq_key = f.fac_faq_key) subproductgroep, fac_faq_hint zoekwoorden, pf.prs_perslid_naam_full invoerder, (SELECT MIN (NVL (o.alg_type, 'L')) FROM alg_v_allonroerendgoed o, alg_algfaq af WHERE af.alg_onroerendgoed_keys = o.alg_onroerendgoed_keys(+) AND af.fac_faq_key = f.fac_faq_key) scope, (SELECT MIN ( l.alg_locatie_code || DECODE (o.alg_plaatsaanduiding, NULL, NULL, '-' || o.alg_plaatsaanduiding)) FROM alg_v_aanweziglocatie l, alg_v_onroerendgoed_gegevens o, alg_algfaq af WHERE af.alg_onroerendgoed_keys = o.alg_onroerendgoed_keys(+) AND af.alg_locatie_key = l.alg_locatie_key AND af.fac_faq_key = f.fac_faq_key) plaats, (SELECT COUNT (*) FROM mld_stdmeldingfaq mf WHERE mf.fac_faq_key = f.fac_faq_key) aantalmeldingen, (SELECT COUNT (*) FROM alg_algfaq af WHERE af.fac_faq_key = f.fac_faq_key) aantalplaatsen FROM fac_faq f, prs_v_perslid_fullnames_all pf WHERE f.prs_perslid_key = pf.prs_perslid_key; CREATE_VIEW(fac_v_udr_faqkenmerk_cnd, 1) AS SELECT f.*, lcl.x ('km.faq_kenmerk_omschrijving', km.faq_kenmerk_key, faq_kenmerk_omschrijving) kenmerk, CASE WHEN km.faq_kenmerk_kenmerktype = 'R' OR km.faq_kenmerk_kenmerktype = 'r' OR km.faq_kenmerk_kenmerktype = 'S' THEN flx.getdomeinwaarde (km.fac_kenmerkdomein_key, kw.faq_kenmerkwaarde_waarde) WHEN km.faq_kenmerk_kenmerktype = 'C' OR km.faq_kenmerk_kenmerktype = 'F' THEN kw.faq_kenmerkwaarde_waarde ELSE NULL END waarde_c, CASE WHEN km.faq_kenmerk_kenmerktype = 'N' THEN TO_NUMBER (kw.faq_kenmerkwaarde_waarde) ELSE TO_NUMBER (NULL) END waarde_n, CASE WHEN km.faq_kenmerk_kenmerktype = 'D' THEN TO_DATE (kw.faq_kenmerkwaarde_waarde, 'DD-MM-YYYY') ELSE TO_DATE (NULL) END waarde_d, CASE WHEN km.faq_kenmerk_kenmerktype IN ('R', 'r', 'S') THEN flx.getdomeinwaarde (km.fac_kenmerkdomein_key, kw.faq_kenmerkwaarde_waarde) ELSE kw.faq_kenmerkwaarde_waarde END waarde_x FROM fac_v_udr_faq f, faq_kenmerkwaarde kw, faq_kenmerk km WHERE kw.fac_faq_key = f.kb_key AND kw.faq_kenmerk_key = km.faq_kenmerk_key AND kw.faq_kenmerkwaarde_verwijder IS NULL AND km.faq_kenmerk_verwijder IS NULL; CREATE_VIEW(fac_v_bijlagen, 0) AS SELECT b.fac_bijlagen_key, b.fac_bijlagen_module, b.fac_bijlagen_refkey, b.fac_bijlagen_kenmerk_key, b.fac_bijlagen_description, b.fac_bijlagen_digest, b.fac_bijlagen_content_type, b.fac_bijlagen_file_size, b.fac_bijlagen_root_key, b.fac_bijlagen_aanmaak, b.fac_bijlagen_verwijder, b.fac_bijlagen_filename, r.fac_bijlagen_disk_directory, COALESCE (r.fac_bijlagen_disk_filename, r.fac_bijlagen_filename) disk_filename FROM fac_bijlagen r, fac_bijlagen b WHERE b.fac_bijlagen_root_key = r.fac_bijlagen_key; REGISTERRUN('$Id$')