From d0ec914d5b7e058049cff583a7d17b2d7ce731f2 Mon Sep 17 00:00:00 2001 From: Jos Groot Lipman Date: Sun, 23 Sep 2012 09:21:31 +0000 Subject: [PATCH] Merge DB16a patches Ik heb in de LOG alleen de effectieve wijzigingen geselecteerd, om mij onduidelijke redenen wilde hij anders *alle* bestanden mergen. svn path=/Database/trunk/; revision=12478 --- CAD/CAD_VIE.SRC | 95 +++++++++++++++++++++++++++++++++++++++++++++++++ RES/RES_PAC.SRC | 5 +++ 2 files changed, 100 insertions(+) diff --git a/CAD/CAD_VIE.SRC b/CAD/CAD_VIE.SRC index 77866f2e..f501dfef 100644 --- a/CAD/CAD_VIE.SRC +++ b/CAD/CAD_VIE.SRC @@ -571,6 +571,101 @@ AS AND pwp.prs_werkplek_key(+) = wp.prs_werkplek_key GROUP BY wp.prs_werkplek_key; +-- Reserveerbare ruimtes kleurenthema (waarde = aantal minuten nog vrij) +CREATE_VIEW(cad_v_thema_ruimte_reservering,0) +(ALG_RUIMTE_KEY, WAARDE) +AS + SELECT alg_ruimte_key alg_ruimte_key, + COALESCE (MIN (TRUNC ( (tijdvrij) * 24 * 60) - 1), 999999) waarde -- MIN want pessimistisch + FROM (SELECT rar.alg_ruimte_key, res_rsv_ruimte_van - SYSDATE tijdvrij + FROM res_ruimte_opstelling rro, + res_ruimte rr, + res_alg_ruimte rar, + res_opstelling ro, + (SELECT res_ruimte_opstel_key, res_rsv_ruimte_van + FROM res_v_aanwezigrsv_ruimte rrr + WHERE SYSDATE BETWEEN TRUNC (res_rsv_ruimte_van) + AND res_rsv_ruimte_tot) blokkerend -- vandaag en nog niet afgelopen + WHERE rro.res_ruimte_key = rr.res_ruimte_key + AND rro.res_opstelling_key = ro.res_opstelling_key + AND rar.res_alg_ruimte_verwijder IS NULL + AND rar.res_ruimte_key = rr.res_ruimte_key + AND rro.res_ruimte_opstel_key = + blokkerend.res_ruimte_opstel_key(+)) + GROUP BY alg_ruimte_key; + +-- Reserveerbare ruimtes label thema +-- Let op: Toont *eerstvolgende* reservering als die binnen een uur begint +CREATE_VIEW(cad_v_label_ruimte_reservering,0) +(ALG_RUIMTE_KEY, WAARDE) +AS + SELECT rar.alg_ruimte_key, MAX (res_ruimte_nr || res_info.tekst) waarde + FROM res_ruimte_opstelling rro, + res_ruimte rr, + res_alg_ruimte rar, + res_opstelling ro, + ( SELECT res_ruimte_opstel_key, + MAX( '[br]' + || TO_CHAR (res_rsv_ruimte_van, 'HH24:MI') + || '-' + || TO_CHAR (res_rsv_ruimte_tot, 'HH24:MI') + || '[br][s50]host: ' + || prs_perslid_naam_full + || '[br][s80][b]' + || res_rsv_ruimte_omschrijving) + tekst + FROM res_v_aanwezigrsv_ruimte rrr, prs_v_perslid_fullnames pp + WHERE pp.prs_perslid_key = res_rsv_ruimte_host_key + AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24) + AND res_rsv_ruimte_tot + GROUP BY res_ruimte_opstel_key) res_info + WHERE res_info.res_ruimte_opstel_key(+) = rro.res_ruimte_opstel_key + AND rro.res_ruimte_key = rr.res_ruimte_key + AND rro.res_opstelling_key = ro.res_opstelling_key + AND rar.res_ruimte_key = rr.res_ruimte_key + AND rar.res_alg_ruimte_verwijder IS NULL + GROUP BY rar.alg_ruimte_key; + +-- Reserveerbare delen kleurenthema (waarde = aantal minuten nog vrij) +CREATE_VIEW(cad_v_thema_deel_reservering,0) +( + INS_DEEL_KEY, + WAARDE +) +AS + SELECT ins_deel_key, + COALESCE (MIN (TRUNC (tijdvrij * 24 * 60)-1), 999999) waarde -- MIN want perssimistisch + FROM (SELECT res_ins_deel_key ins_deel_key, + res_rsv_deel_van - SYSDATE tijdvrij + FROM res_v_aanwezigdeel r, + (SELECT res_deel_key, res_rsv_deel_van, res_rsv_deel_tot + FROM res_v_aanwezigrsv_deel rrd + WHERE SYSDATE BETWEEN TRUNC (res_rsv_deel_van) + AND res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen + WHERE r.res_deel_key = blokkerend.res_deel_key(+)) + GROUP BY ins_deel_key; + +-- Reserveerbare delen label thema +CREATE_VIEW(cad_v_label_deel_reservering,0) +( + INS_DEEL_KEY, + WAARDE +) +AS + SELECT ins_deel_key, prs_perslid_naam_full + FROM ins_v_aanwezigdeel isd, + (SELECT res_ins_deel_key, prs_perslid_naam_full + FROM res_v_aanwezigdeel r, + res_v_aanwezigrsv_deel rrd, + res_rsv_ruimte rrr, + prs_v_perslid_fullnames p + WHERE r.res_deel_key = rrd.res_deel_key + AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key + AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key + AND SYSDATE BETWEEN res_rsv_deel_van - 1 / 24 / 60 + AND res_rsv_deel_tot - 1 / 24 / 60) res -- NU bezig + WHERE isd.ins_deel_key = res.res_ins_deel_key(+); + REGISTERRUN('$Workfile: CAD_VIE.SRC $','$Revision$') #endif // CAD diff --git a/RES/RES_PAC.SRC b/RES/RES_PAC.SRC index 916a6cbb..fe6d50d5 100644 --- a/RES/RES_PAC.SRC +++ b/RES/RES_PAC.SRC @@ -381,6 +381,11 @@ AS THEN preposttime := 0; END IF; + -- Als *nu* gereserveerd negeren we schoonmaaktijd. Handig voor pda-reserveringen met noshow + IF prsv_ruimte.res_rsv_ruimte_van BETWEEN SYSDATE - 5/60/24 AND SYSDATE + 5/60/24 + THEN + preposttime := 0; + END IF; -- Oke, hoeveel overlappende alg_ruimte hebben we nu SELECT COUNT (DISTINCT rb.res_ruimte_key) INTO n_overlap