diff --git a/booking.variety_form.inc b/booking.variety_form.inc index a705fe8..1021936 100644 --- a/booking.variety_form.inc +++ b/booking.variety_form.inc @@ -23,12 +23,16 @@ function booking_variety_regn_form($node, &$form_state) ->orderBy('v.booking_variety_start'); $result = $timeslot_query->execute(); - $form['booking_variety_regn_feedback_wrapper'] = array( + $form['identity'] = array( + '#type' => 'fieldset', + '#title' => 'Select Person', + ); + $form['identity']['booking_variety_regn_feedback_wrapper'] = array( '#markup' => '
Please enter your booking number from your lanyard.
', ); - $form['booking_nid'] = array( + $form['identity']['booking_nid'] = array( '#type' => 'textfield', - '#title' => t('Booking ID'), + '#title' => t('Booking Number'), '#size' => 60, '#required' => TRUE, '#default_value' => !empty($data->booking_nid) ? $data->booking_nid : '', @@ -41,12 +45,9 @@ function booking_variety_regn_form($node, &$form_state) ), ); - // TODO: Update the whole form when booking ID is updated $form['variety-sessions'] = array( '#type' => 'fieldset', '#title' => 'Select Variety Sessions', - //'#prefix' => '
', - //'#suffix' => '
', ); //for each entry in the variety timeslot table, create a new form select item @@ -80,9 +81,43 @@ function booking_variety_session_callback($form, &$form_state) { $data = $form_state['input']; //watchdog('booking_debug', 'booking_variety_session_callback:
@info
', array('@info' => print_r( $data, true))); - // TODO : Update the wrapper for booking ID validity + // --- Update the wrapper for booking ID validity --- + //verify that user-entered data is a number + if (! preg_match('/^[0-9]+$/', $data['booking_nid'])) { + watchdog('booking_debug', "
booking_variety_session_callback non-numerical input
"); + $markup = '
' . + 'You have not entered a valid booking reference number.
'; + $commands[] = ajax_command_replace('#booking_variety_regn_feedback_wrapper', $markup); + } + // Perform lookup on barcode to make sure it matches someone attending the current event + $db_and = db_and(); + $db_and->condition('p.booking_eventid', $event->eid, '='); + $db_and->condition('p.booking_status', 1, '='); + $db_and->condition('p.nid', $data['booking_nid'], '='); + $query = db_select('booking_person', 'p'); + $query->condition($db_and) + ->fields('p'); + $person = $query->execute() + ->fetchObject(); + + if ($person) { + watchdog('booking_debug', "
booking_variety_session_callback found valid attendee
"); + + $markup = '
' . + 'Matched booking reference number.
'; + $commands[] = ajax_command_replace('#booking_variety_regn_feedback_wrapper', $markup); + } + else { + watchdog('booking_debug', "
booking_variety_session_callback did not find valid attendee
"); + + $markup = '
' . + 'You have not entered a valid booking reference number.
'; + $commands[] = ajax_command_replace('#booking_variety_regn_feedback_wrapper', $markup); + } + + // --- Update the wrapper for available variety sessions --- // Query the variety timeslot table $timeslot_query = db_select('booking_variety_times', 'v'); $timeslot_query->condition('v.booking_eventid', $event->eid, '=')