Added confirmation to study group auto updates

This commit is contained in:
2014-06-26 23:41:58 +10:00
parent a61520b72d
commit b51f6a60d1
4 changed files with 206 additions and 147 deletions

View File

@@ -332,67 +332,6 @@ function booking_room_edit_form_validate($form, &$form_state) {
}
}
/**
* Validate there is available capacity for the specified room and bed type
* @return TRUE if there is sufficient capacity, otherwise FALSE
*/
function _booking_room_capacity_check($room_id, $room_bedtype, $room_definition_object = NULL) {
global $event;
$bed_inputs = array(
1 => 'booking_room_singlebeds',
2 => 'booking_room_doublebeds',
3 => 'booking_room_queenbeds',
);
//make sure the value exists before validating it
if (!empty($room_bedtype))
{
//if we already have the object available, don't query for it again
if ($room_definition_object == NULL)
{
$details = db_query("SELECT * FROM {booking_room_definition} WHERE rid = :rid",
array(':rid' => $room_id))->fetchObject();
}
else
$details = $room_definition_object;
//get all person-to-room mappings relating to this room and bed type
$mappings = db_query("SELECT count(*) as num FROM {booking_room_mapping} " .
"WHERE booking_eventid = :eid AND booking_roomid = :rid AND booking_room_bedtype = :type",
array(':eid' => $event->eid, ':rid' => $room_id, ':type' => $room_bedtype))->fetchObject();
$db_field = $bed_inputs[$room_bedtype];
$max_beds = $details->$db_field;
//if the beds are dual occupency, pretend there's twice as many of them
if ($room_bedtype == 2 || $room_bedtype == 3)
{
$max_beds = $max_beds * 2;
}
//check that there is sufficient capacity to allocate another person to this room and bed type
if ($mappings->num < $max_beds)
{
watchdog('booking','Sufficient capacity is available in location !id, room !room, with bed type !type. !count beds remaining of this type',
array('!id' => $details->booking_room_location_id, '!room' => $details->booking_room_number,
'!type' => _booking_room_bedtype_lookup($room_bedtype), '!count' => $max_beds - $mappings->num));
return true;
}
else
{
watchdog('booking',"Couldn't locate sufficient capacity in location !id, room !room, with bed type !type. !count beds remaining of this type",
array('!id' => $details->booking_room_location_id, '!room' => $details->booking_room_number,
'!type' => _booking_room_bedtype_lookup($room_bedtype), '!count' => $max_beds - $mappings->num));
}
}
return false;
}
/**
* Process the submission to update allocated room and bed for a person
*/