UWVA#37540 Lunch en andere blokkades

svn path=/Website/trunk/; revision=32019
This commit is contained in:
Jos Groot Lipman
2016-12-19 13:34:07 +00:00
parent 34c2cccfc1
commit 17bca68b38
2 changed files with 29 additions and 35 deletions

View File

@@ -1507,30 +1507,9 @@ res = {
? " AND res_ruimte_key_1=" + params.res_ruimte_key
: "")
+ " AND res_ruimte_key_1 IN (SELECT res_ruimte_key FROM (" + room_sql + "))"
// Middag blokkades toevoegen
+ " UNION "
+ "SELECT " + params.res_van.beginToSQL() + " + (res_ruimte_begintijdblok/24)"
+ " , " + params.res_tot.beginToSQL() + " + (res_ruimte_eindtijdblok/24)"
+ " , 0"
+ " , res_ruimte_key"
+ " , 3"
+ " , null, null, null, null"
+ " , res_ruimte_key"
+ " , null, null, null"
+ " , 0, 0"
+ " FROM (" + room_sql + ")"
+ " WHERE res_ruimte_begintijdblok IS NOT NULL"
+ " AND res_ruimte_eindtijdblok IS NOT NULL"
+ " AND ( " + params.res_van.beginToSQL() + " + (res_ruimte_begintijdblok/24) > " + params.res_tot.toSQL()
+ " OR " + params.res_tot.beginToSQL() + " + (res_ruimte_eindtijdblok/24) < " + params.res_van.toSQL()
+ " )";
sql = "SELECT *"
+ " FROM (" + sql + ")"
// Op volgorde zetten
+ " ORDER BY res_ruimte_key_1"
+ " , (res_rsv_ruimte_tot - res_rsv_ruimte_van) DESC" // langste reserveringen eerst/onderop
+ " , res_rsv_ruimte_dirtlevel ASC"
+ " ORDER BY res_ruimte_key_1"
+ " , (res_rsv_ruimte_tot - res_rsv_ruimte_van) DESC" // langste reserveringen eerst/onderop
+ " , rv.res_rsv_ruimte_dirtlevel ASC"
var existing_res = {};
var nnres = 0;

View File

@@ -25,19 +25,34 @@ function set_will_fit(plan_rooms_info, plan_bezet_info, params)
var room = plan_rooms_info[i_room];
var ar = plan_bezet_info[room.res_ruimte_key];
for (var ci=0; ar != null && ci<ar.length; ci++)
var df = params.res_van.getHours() + params.res_van.getMinutes()/60;
var dt = params.res_tot.getHours() + params.res_tot.getMinutes()/60;
if (df < room.begintijd || dt > room.eindtijd)
{
if (ar[ci].rsv_ruimte_key == params.rsv_ruimte_key)
{ // we zijn het zelf
is_selected = true;
}
else
{
if (params.res_van.getTime() - room.prepost_time*60*60*1000 < ar[ci].res_tot.getTime()
&& params.res_tot.getTime() + room.prepost_time*60*60*1000 > ar[ci].res_van.getTime())
is_nofit = true; // Overlap!
}
is_nofit = true; // Buiten openingstijden
}
else if (room.begintijdblok && room.eindtijdblok && df < room.eindtijdblok && dt > room.begintijdblok)
{
is_nofit = true; // Tijdens lunch
}
if (!is_nofit)
{
for (var ci=0; ar != null && ci<ar.length; ci++)
{
if (ar[ci].rsv_ruimte_key == params.rsv_ruimte_key)
{ // we zijn het zelf
is_selected = true;
}
else
{
if (params.res_van.getTime() - room.prepost_time*60*60*1000 < ar[ci].res_tot.getTime()
&& params.res_tot.getTime() + room.prepost_time*60*60*1000 > ar[ci].res_van.getTime())
is_nofit = true; // Overlap!
}
}
}
room.will_fit = !is_nofit;
room.existing_res = ar;
any_nofit |= is_nofit;