booking_dob); $calculation_messages[] = t('Processing eligible Leader/helper with id !id and age !age', array('!id' => $person->nid, '!age' => $age) ); //if someone is 22 or over, they're a leader if ($age >= 22) { $next_group_index = $groups[_booking_get_next_studygroup('leader_nid', $groups)]; $calculation_messages[] = t('Assigning id !id to study group !group as a leader', array('!id' => $person->nid, '!group' => $next_group_index) ); $groups[$next_group_index]->leader_nid = $person->nid; } //if someone is under 22, they're a helper //left over people become a reserve leader } watchdog('booking', "
Study Group Leader/Helper calculation\n" . implode("\n", $calculation_messages) . "
"); //input the data to the database } function _booking_get_next_studygroup($type, $studygroups) { $count = count($studygroups) - 1; for ($i = 0; $i < $count; $i++) { $group = $studygroups[$i]; $leader = $group->leader_nid; //watchdog('booking_debug', "
Study Group Element at index $i:\n@info
", array('@info' => print_r( $group, true))); //watchdog('booking_debug', "
Study Group Leader NID at index $i:\n@info
", array('@info' => var_dump($group))); if ($leader == 0) { return $i; } } } /** * Function for */ function _booking_studygroups_retrieve_eligible_people() { global $event; $attendees = array(); //select males that are booked in $query = db_select('booking_person', 'p'); $db_and = db_and(); $db_and->condition('p.booking_event_id', $event->eid, '='); $db_and->condition('p.booking_gender', 'M', '='); $db_and->condition('p.booking_status', 1, '='); $query->condition($db_and); $query->fields('p'); $bookedin_result = $query->execute(); //iterate over the attendee associative array and add some fields foreach ($bookedin_result as $person) { $person->processed = 0; $person->leading = array(); $person->helping = array(); $person->reserve_leading = array(); $attendees[] = $person; } //select males that are on the waiting list up to position number 100 $result2 = db_query('SELECT DISTINCT nid, booking_firstname, booking_lastname, booking_state, booking_readinggroup, booking_country, booking_status, booking_dob, booking_gender FROM ( SELECT p.nid, p.booking_firstname, p.booking_lastname, p.booking_state, p.booking_country, p.booking_readinggroup, pay.booking_payment_date, p.booking_status, p.booking_gender, p.booking_dob FROM {booking_person} p, {booking_payment} pay WHERE booking_event_id = :eid and p.nid = pay.booking_person_nid and ( booking_status = 2 or booking_status = 4) LIMIT 100 ) AS booking WHERE booking_gender = \'M\' ORDER BY booking_status, booking_payment_date', array(':eid' => $event->eid)); //iterate over the attendee associative array and add some fields foreach ($result2 as $person) { $person->processed = 0; $person->leading = array(); $person->helping = array(); $person->reserve_leading = array(); $attendees[] = $person; } //watchdog('booking', "
Eligible Leaders/Helpers List:\n@info
", array('@info' => print_r( $attendees, true))); return $attendees; } /** * Function for */ function _booking_studygroups_retrieve_groups() { global $event; $groups = array(); //select all the study groups for this event id $studygroup = db_query("SELECT * FROM {booking_studygroup_list} WHERE booking_eventid = :eid", array(':eid' => $event->eid)); $group_mapping = $studygroup->fetchAllAssoc('sid'); //select the number of study group sessions //assume they all have the same number of sessions //$num_sessions = $studygroup->booking_num_group_sessions; foreach ($group_mapping as $group) { //watchdog('booking_debug', "
Study Group Element:\n@info
", array('@info' => print_r( $group, true))); for ($i = 1; $i <= 16; $i++) { $new_group = clone $group; $new_group->session_id = $i; $new_group->leader_nid = -1; $new_group->helper_nid = 0; $new_group->reserve_nid = 0; $new_group->processed = 0; $groups[] = $new_group; } } watchdog('booking', "
Study Group Sessions:\n@info
", array('@info' => print_r( $groups, true))); return $groups; }