diff --git a/BLST/BLST.sql b/BLST/BLST.sql index d346a9f12..76f5413ac 100644 --- a/BLST/BLST.sql +++ b/BLST/BLST.sql @@ -9322,116 +9322,143 @@ AS --- BLST#75595 Rapport met afdelingen, gebouwen en reserveerbare ruimten CREATE OR REPLACE VIEW BLST_V_RAP_RECHT_RSVRUIMTE AS - SELECT DISTINCT prs.prs_afdeling_naam afdeling_code, - prs.prs_afdeling_omschrijving afdeling_omschrijving, - r.alg_locatie_code locatie_code, - r.alg_locatie_omschrijving locatie_omschrijving, - r.alg_gebouw_code gebouw_code, - r.alg_gebouw_naam gebouw_naam, - r.ins_discipline_omschrijving catalogus, - r.res_ruimte_nr res_ruimte_naam, - opst.opstelling opstelling - FROM --- personen die een werkplek hebben in dit gebouw - (SELECT a.prs_afdeling_naam, - a.prs_afdeling_omschrijving, - p.prs_perslid_key, - g.alg_gebouw_key - FROM fac_usrtab ut, - fac_usrdata ud, - prs_afdeling a, - prs_perslid p, - prs_v_perslid_fullnames pn, - alg_gebouw g - WHERE ( UPPER (fac_usrtab_naam) = 'WERKPLEKKEN BD' - OR UPPER (fac_usrtab_naam) = 'WERKPLEKKEN EXT') - AND ud.fac_usrtab_key = ut.fac_usrtab_key - AND ( ud.fac_usrdata_vervaldatum IS NULL - OR ud.fac_usrdata_vervaldatum > SYSDATE) - AND ud.fac_usrdata_verwijder IS NULL - AND ud.fac_usrdata_omschr = a.prs_afdeling_naam - AND p.prs_afdeling_key = a.prs_afdeling_key - AND pn.prs_perslid_key = p.prs_perslid_key - AND fac.safe_to_number (g.alg_gebouw_code) = - fac.safe_to_number (ud.fac_usrdata_prijs)) prs, - --- gebouwen met res ruimten - (SELECT l.alg_locatie_code, - l.alg_locatie_omschrijving, - g.alg_gebouw_code, - g.alg_gebouw_naam, - g.alg_gebouw_key, - v.alg_verdieping_code, - r.alg_ruimte_nr, - r.alg_ruimte_omschrijving, - rr.res_ruimte_key, - rr.res_ruimte_nr, - cat.ins_discipline_key, - cat.ins_discipline_omschrijving - FROM alg_locatie l, - alg_gebouw g, - alg_verdieping v, - alg_ruimte r, - res_alg_ruimte ra, - res_ruimte rr, - ins_tab_discipline cat - WHERE l.alg_locatie_key = g.alg_locatie_key - AND v.alg_gebouw_key = g.alg_gebouw_key - AND r.alg_verdieping_key = v.alg_verdieping_key - AND r.alg_ruimte_verwijder IS NULL - AND r.alg_ruimte_key = ra.alg_ruimte_key - AND ra.res_alg_ruimte_verwijder IS NULL - AND ra.res_ruimte_key = rr.res_ruimte_key - AND rr.res_ruimte_verwijder IS NULL - AND cat.ins_discipline_key = rr.res_discipline_key - AND cat.ins_discipline_verwijder IS NULL) r, - --- opstellingen - ( SELECT ro.res_ruimte_key, - LISTAGG ( - o.res_opstelling_omschrijving - || ' (' - || ro.res_ruimte_opstel_bezoekers - || ' bezoekers)', - ' / ') --- scheidingsteken een komma - WITHIN GROUP (ORDER BY o.res_opstelling_omschrijving) opstelling - FROM res_ruimte_opstelling ro, res_opstelling o - WHERE ro.res_opstelling_key = o.res_opstelling_key - AND ro.res_ruimte_opstel_verwijder IS NULL - AND o.res_opstelling_verwijder IS NULL - GROUP BY ro.res_ruimte_key) opst - WHERE r.alg_gebouw_key = prs.alg_gebouw_key - AND opst.res_ruimte_key = r.res_ruimte_key - AND EXISTS - (SELECT g.fac_groep_omschrijving, - c.ins_discipline_key, - pf.prs_perslid_naam_friendly, - pf.prs_perslid_naam_full - FROM fac_groep g, - fac_groeprechten gr, - fac_gebruikersgroep gg, - prs_perslid p, - prs_v_perslid_fullnames pf, - fac_functie f, - ins_tab_discipline c - WHERE c.ins_discipline_key = r.ins_discipline_key - AND p.prs_perslid_key = prs.prs_perslid_key - AND g.fac_groep_key = gr.fac_groep_key - AND UPPER ( - fac.getscopeleveltext ( - gr.fac_gebruiker_alg_level_write, - 'ALG')) NOT IN - ('GEEN') - AND gg.fac_groep_key = g.fac_groep_key - AND p.prs_perslid_key = gg.prs_perslid_key - AND pf.prs_perslid_key = p.prs_perslid_key - AND f.fac_functie_key = gr.fac_functie_key - AND f.fac_functie_discipline = 1 - AND f.fac_functie_code = 'WEB_RESUSE' - AND gr.ins_discipline_key = c.ins_discipline_key - AND c.ins_discipline_verwijder IS NULL - AND c.ins_discipline_module = 'RES' - AND c.ins_discipline_min_level IN (1, - 2, - 3, - 4)); + SELECT DISTINCT prs.prs_afdeling_naam afdeling_code_prs, + prs.prs_afdeling_omschrijving afdeling_omschrijving_prs, + prs.bu_code businessunit_code, + prs.bu_omschrijving businessunit_omschrijving, + prs.afd_code afdeling_code, + prs.afd_omschrijving afdeling_omschrijving, + r.alg_locatie_code locatie_code, + r.alg_locatie_omschrijving locatie_omschrijving, + r.alg_gebouw_code gebouw_code, + r.alg_gebouw_naam gebouw_naam, + r.ins_discipline_omschrijving catalogus, + r.res_ruimte_nr res_ruimte_naam, + opst.opstelling opstelling + FROM --- personen die een werkplek hebben in dit gebouw + (SELECT a.prs_afdeling_naam, + a.prs_afdeling_omschrijving, + a.bu_code, + a.bu_omschrijving, + a.afd_code, + a.afd_omschrijving, + p.prs_perslid_key, + g.alg_gebouw_key, + l.alg_locatie_key + FROM fac_usrtab ut, + fac_usrdata ud, + (SELECT a.prs_afdeling_key, + a.prs_afdeling_naam, + a.prs_afdeling_omschrijving, + ab.prs_afdeling_key1 bu_key, + a1.prs_afdeling_naam bu_code, + a1.prs_afdeling_omschrijving bu_omschrijving, + ab.prs_afdeling_key2 afd_key, + a2.prs_afdeling_naam afd_code, + a2.prs_afdeling_omschrijving afd_omschrijving + FROM prs_v_afdeling_boom ab, + prs_afdeling a, + prs_afdeling a1, + prs_afdeling a2 + WHERE ab.prs_afdeling_key = a.prs_afdeling_key + AND ab.prs_afdeling_key1 = a1.prs_afdeling_key(+) + AND ab.prs_afdeling_key2 = a2.prs_afdeling_key(+)) a, + prs_perslid p, + prs_v_perslid_fullnames pn, + alg_gebouw g, + alg_locatie l + WHERE ( UPPER (fac_usrtab_naam) = 'WERKPLEKKEN BD' + OR UPPER (fac_usrtab_naam) = 'WERKPLEKKEN EXT') + AND ud.fac_usrtab_key = ut.fac_usrtab_key + AND ( ud.fac_usrdata_vervaldatum IS NULL + OR ud.fac_usrdata_vervaldatum > SYSDATE) + AND ud.fac_usrdata_verwijder IS NULL + AND ud.fac_usrdata_omschr = a.prs_afdeling_naam + AND p.prs_afdeling_key = a.prs_afdeling_key + AND l.alg_locatie_key = g.alg_locatie_key + AND pn.prs_perslid_key = p.prs_perslid_key + AND fac.safe_to_number (g.alg_gebouw_code) = + fac.safe_to_number (ud.fac_usrdata_prijs)) prs, + --- gebouwen met res ruimten + (SELECT l.alg_locatie_key, + l.alg_locatie_code, + l.alg_locatie_omschrijving, + g.alg_gebouw_code, + g.alg_gebouw_naam, + g.alg_gebouw_key, + v.alg_verdieping_code, + r.alg_ruimte_nr, + r.alg_ruimte_omschrijving, + rr.res_ruimte_key, + rr.res_ruimte_nr, + cat.ins_discipline_key, + cat.ins_discipline_omschrijving + FROM alg_locatie l, + alg_gebouw g, + alg_verdieping v, + alg_ruimte r, + res_alg_ruimte ra, + res_ruimte rr, + ins_tab_discipline cat + WHERE l.alg_locatie_key = g.alg_locatie_key + AND v.alg_gebouw_key = g.alg_gebouw_key + AND r.alg_verdieping_key = v.alg_verdieping_key + AND r.alg_ruimte_verwijder IS NULL + AND r.alg_ruimte_key = ra.alg_ruimte_key + AND ra.res_alg_ruimte_verwijder IS NULL + AND ra.res_ruimte_key = rr.res_ruimte_key + AND rr.res_ruimte_verwijder IS NULL + AND cat.ins_discipline_key = rr.res_discipline_key + AND cat.ins_discipline_verwijder IS NULL) r, + --- opstellingen + ( SELECT ro.res_ruimte_key, + LISTAGG ( + o.res_opstelling_omschrijving + || ' (' + || ro.res_ruimte_opstel_bezoekers + || ' bezoekers)', + ' / ') --- scheidingsteken een komma + WITHIN GROUP (ORDER BY o.res_opstelling_omschrijving) opstelling + FROM res_ruimte_opstelling ro, res_opstelling o + WHERE ro.res_opstelling_key = o.res_opstelling_key + AND ro.res_ruimte_opstel_verwijder IS NULL + AND o.res_opstelling_verwijder IS NULL + GROUP BY ro.res_ruimte_key) opst + WHERE r.alg_locatie_key = prs.alg_locatie_key + AND opst.res_ruimte_key = r.res_ruimte_key + AND EXISTS + (SELECT g.fac_groep_omschrijving, + c.ins_discipline_key, + pf.prs_perslid_naam_friendly, + pf.prs_perslid_naam_full + FROM fac_groep g, + fac_groeprechten gr, + fac_gebruikersgroep gg, + prs_perslid p, + prs_v_perslid_fullnames pf, + fac_functie f, + ins_tab_discipline c + WHERE c.ins_discipline_key = r.ins_discipline_key + AND p.prs_perslid_key = prs.prs_perslid_key + AND g.fac_groep_key = gr.fac_groep_key + AND UPPER ( + fac.getscopeleveltext ( + gr.fac_gebruiker_alg_level_write, + 'ALG')) NOT IN + ('GEEN') + AND gg.fac_groep_key = g.fac_groep_key + AND p.prs_perslid_key = gg.prs_perslid_key + AND pf.prs_perslid_key = p.prs_perslid_key + AND f.fac_functie_key = gr.fac_functie_key + AND f.fac_functie_discipline = 1 + AND f.fac_functie_code = 'WEB_RESUSE' + AND gr.ins_discipline_key = c.ins_discipline_key + AND c.ins_discipline_verwijder IS NULL + AND c.ins_discipline_module = 'RES' + AND c.ins_discipline_min_level IN (1, + 2, + 3, + 4)); CREATE OR REPLACE VIEW BLST_V_RAP_UITLEEN_OBJ (