diff --git a/booking.constants.inc b/booking.constants.inc index c5e62ab..c42963b 100644 --- a/booking.constants.inc +++ b/booking.constants.inc @@ -132,7 +132,7 @@ function _booking_room_bedtype_lookup($input = NULL) if ($input != NULL) return $bed[$input]; else - return $role; + return $bed; } /** diff --git a/booking.module b/booking.module index 5a98885..341e483 100644 --- a/booking.module +++ b/booking.module @@ -400,6 +400,14 @@ function booking_menu() { 'access arguments' => array("view room allocations"), 'type' => MENU_NORMAL_ITEM, ); + + $items['admin/booking/rooms/report'] = array( + 'title' => 'View All Room Allocations', + 'description' => 'View All Room Allocations', + 'page callback' => 'booking_roomallocations_view_summary', + 'access arguments' => array("view room allocations"), + 'type' => MENU_LOCAL_ACTION, + ); $items['admin/booking/rooms/%/assign'] = array( 'title' => 'Assign Rooms', diff --git a/booking.rooms.inc b/booking.rooms.inc index 4864848..04ef545 100644 --- a/booking.rooms.inc +++ b/booking.rooms.inc @@ -39,6 +39,70 @@ function booking_room_view_summary() { return $output; } + + +/** + * Function for viewing a printable format of who belongs to which study group + */ +function booking_roomallocations_view_summary() { + global $event; + + $rows = array(); + + $header = array( + 'booking_firstname' => array('data' => t('First Name'), 'field' => 'p.booking_firstname'), + 'booking_lastname' => array('data' => t('Last Name'), 'field' => 'p.booking_lastname', 'sort' => 'asc'), + 'booking_gender' => array('data' => t('Gender'), 'field' => 'p.booking_gender'), + 'booking_age' => array('data' => t('Age'), 'field' => 'p.booking_dob'), + 'booking_roomlocation' => array('data' => t('Room Location'), 'field' => 'r.booking_room_location_id'), + 'booking_room_num' => array('data' => t('Room Number'), 'field' => 'r.booking_room_number'), + 'booking_room_bedtype' => array('data' => t('Bed Type'), 'field' => 'm.booking_room_bedtype') + ); + + $query = db_select('booking_person', 'p'); + $query->leftJoin('booking_room_mapping', 'm', 'm.booking_nodeid = p.nid'); + $query->leftJoin('booking_room_definition', 'r', 'r.rid = m.booking_roomid'); + $db_and = db_and(); + $db_and->condition('p.booking_event_id', $event->eid, '='); + $db_and->condition('p.booking_status', 1, '='); + $query->condition($db_and); + $query->fields('p')->fields('m')->fields('r'); + $table_sort = $query->extend('TableSort')->orderbyHeader($header); + $result = $table_sort->execute(); + + foreach($result as $data) + { + $rows[] = array ( + 'data' => array( + $data->booking_firstname, + $data->booking_lastname, + $data->booking_gender == 'M' ? 'Male' : 'Female', + _booking_get_age_years($data->booking_dob), + _booking_room_location_lookup($data->booking_room_location_id), + $data->booking_room_number, + _booking_room_bedtype_lookup($data->booking_room_bedtype), + ), + ); + } + + $prefix = t("

Room Allocations

"); + + $result = array ( + 'first_para' => array ( + '#type' => 'markup', + '#markup' => $prefix, + ), + 'table' => array ( + '#theme' => 'table', + '#header' => $header, + '#rows' => $rows, + '#attributes' => array('id' => 'sort-table'), + //'#sticky' => FALSE, + ) + ); + + return $result; +} /** * Function to define the form for configuring room definitions and also display existing room definitions