diff --git a/APPL/RES/res.inc b/APPL/RES/res.inc index b9d6dfc0a6..635b4372be 100644 --- a/APPL/RES/res.inc +++ b/APPL/RES/res.inc @@ -157,6 +157,8 @@ res = { + " , ins_discipline_kpnverplicht" + " , COALESCE(res_ruimte_begintijd, " + S("res_t1") + ") begintijd" + " , COALESCE(res_ruimte_eindtijd, " + S("res_t2") + ") eindtijd" + + " , res_ruimte_begintijdblok" + + " , res_ruimte_eindtijdblok" + " , rr.res_discipline_key" + " , rr.res_status_fo_key" + " , res_ruimte_vervaldatum" @@ -188,6 +190,8 @@ res = { result.discipline_key = oRs("res_discipline_key").Value; result.begintijd = oRs("begintijd").Value; result.eindtijd = oRs("eindtijd").Value; + result.begintijdblok = oRs("res_ruimte_begintijdblok").Value; + result.eindtijdblok = oRs("res_ruimte_eindtijdblok").Value; if (result.begintijd < S("res_t1")) result.begintijd = S("res_t1"); if (result.eindtijd > S("res_t2")) result.eindtijd = S("res_t2"); if (result.begintijd > result.eindtijd) result.begintijd = result.eindtijd; @@ -1295,6 +1299,8 @@ res = { + " , " + lcl.xsqla('fr.res_ruimte_omschrijving', 'fr.res_ruimte_key') + " , fr.res_ruimte_begintijd" + " , fr.res_ruimte_eindtijd" + + " , fr.res_ruimte_begintijdblok" + + " , fr.res_ruimte_eindtijdblok" + " , fr.res_ruimte_image" + " , res_disc_params_preposttime" + " , fr.res_ruimte_prijs" @@ -1417,6 +1423,8 @@ res = { prepost_time : oRs("res_disc_params_preposttime").Value, begintijd : oRs("res_ruimte_begintijd").Value || S("res_t1"), eindtijd : oRs("res_ruimte_eindtijd").Value || S("res_t2"), + begintijdblok : oRs("res_ruimte_begintijdblok").Value, + eindtijdblok : oRs("res_ruimte_eindtijdblok").Value, image : oRs("res_ruimte_image").Value, omschrijving : oRs("res_ruimte_omschrijving").Value, locatie : oRs("alg_locatie_omschrijving").Value, diff --git a/APPL/RES/res_edit_rsv_ruimte_save.asp b/APPL/RES/res_edit_rsv_ruimte_save.asp index b28abe862c..12134e224e 100644 --- a/APPL/RES/res_edit_rsv_ruimte_save.asp +++ b/APPL/RES/res_edit_rsv_ruimte_save.asp @@ -123,6 +123,8 @@ if (restype == "R") var kostenplaats_key = getFParamInt("account",-1); var sql = "SELECT COALESCE(res_ruimte_begintijd, " + S("res_t1") + ") begintijd" + " , COALESCE(res_ruimte_eindtijd, " + S("res_t2") + ") eindtijd" + + " , rr.res_ruimte_begintijdblok" + + " , rr.res_ruimte_eindtijdblok" + " , rr.res_discipline_key" + " , rr.res_ruimte_vervaldatum" + " , rr.res_ruimte_min_duur" @@ -156,11 +158,19 @@ if (restype == "R") // Openingstijden ruimte var df = date_from.getHours() + date_from.getMinutes()/60; var dt = date_to.getHours() + date_to.getMinutes()/60; - if (df < oRs("begintijd").value || df > oRs("eindtijd").value || - dt < oRs("begintijd").value || dt > oRs("eindtijd").value) + if (df < oRs("begintijd").value || dt > oRs("eindtijd").value) { abort_with_warning(L("lcl_res_date_room_closed")); } + // Overlap met de blokkade + if ( oRs("res_ruimte_eindtijdblok").Value + && oRs("res_ruimte_begintijdblok").Value + && df < oRs("res_ruimte_eindtijdblok").Value + && dt > oRs("res_ruimte_begintijdblok").Value) + { + abort_with_warning(L("lcl_res_date_room_blocked").format(toTimeString(oRs("res_ruimte_begintijdblok").Value), + toTimeString(oRs("res_ruimte_eindtijdblok").Value))); + } // Te last-minute voor de ruimte zelf if (rsv_ruimte_key == -1 && // (update controle komt later wel) diff --git a/APPL/RES/res_plan_room.inc b/APPL/RES/res_plan_room.inc index eb82ba75ca..92e0530038 100644 --- a/APPL/RES/res_plan_room.inc +++ b/APPL/RES/res_plan_room.inc @@ -67,6 +67,15 @@ function make_plan_regel(room, ar, params, nr_days, hour_px) for (dagen = 0; dagen < nr_days; dagen++) { html.push('
' + (begintijd_mask?begintijd_mask:"") + (eindtijd_mask?eindtijd_mask:"")); + if (room.begintijdblok && room.eindtijdblok) + { + var px_start = (room.begintijdblok - S("res_t1")) * hour_px; + var px_end = (room.eindtijdblok - S("res_t1")) * hour_px; + var px_width = px_end - px_start; + var div = "
 
"; + html.push("\n" + div); + } + for (ci = 0; ar && ci < ar.length; ci++) { var h_start = (ar[ci].res_van.getTime() - vanmidnight) /1000/60/60 - 24*dagen;