From f2445623584866e11ec6b6c21193075bb2748ec5 Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Wed, 2 May 2018 13:30:42 +1000 Subject: [PATCH] update --- booking.variety_form.inc | 119 +++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 61 deletions(-) diff --git a/booking.variety_form.inc b/booking.variety_form.inc index 5438678..a705fe8 100644 --- a/booking.variety_form.inc +++ b/booking.variety_form.inc @@ -9,15 +9,15 @@ function booking_variety_regn_form($node, &$form_state) { - global $event; - $form = array (); - $data = $node; - - //$query = db_query("SELECT * FROM {booking_variety_times} WHERE booking_eventid = :eid AND booking_variety_status = 1", + global $event; + $form = array (); + $data = $node; + + //$query = db_query("SELECT * FROM {booking_variety_times} WHERE booking_eventid = :eid AND booking_variety_status = 1", // array(':eid' => $event->eid)); // Query the variety timeslot table - $timeslot_query = db_select('booking_variety_times', 'v'); + $timeslot_query = db_select('booking_variety_times', 'v'); $timeslot_query->condition('v.booking_eventid', $event->eid, '=') ->fields('v') ->orderBy('v.booking_variety_start'); @@ -29,7 +29,7 @@ function booking_variety_regn_form($node, &$form_state) $form['booking_nid'] = array( '#type' => 'textfield', '#title' => t('Booking ID'), - '#size' => 60, + '#size' => 60, '#required' => TRUE, '#default_value' => !empty($data->booking_nid) ? $data->booking_nid : '', '#ajax' => array( @@ -45,71 +45,68 @@ function booking_variety_regn_form($node, &$form_state) $form['variety-sessions'] = array( '#type' => 'fieldset', '#title' => 'Select Variety Sessions', - '#prefix' => '
', - '#suffix' => '
', + //'#prefix' => '
', + //'#suffix' => '
', ); //for each entry in the variety timeslot table, create a new form select item - foreach($result as $timeslot) { - //create the form element for this timeslot - $form['variety-sessions']['select-variety-' . $timeslot->tid] = array( - '#type' => 'select', - '#title' => t('Variety Session: ' . $timeslot->booking_variety_time_descrip), - '#required' => TRUE, - '#default_value' => '', + foreach($result as $timeslot) { + //create the form element for this timeslot + $form['variety-sessions']['select-variety-' . $timeslot->tid] = array( + '#type' => 'select', + '#title' => t('Variety Session: ' . $timeslot->booking_variety_time_descrip), + '#required' => TRUE, + '#default_value' => '', '#options' => _booking_get_variety_timeslot_options($timeslot->tid), '#prefix' => '
', '#suffix' => '
', ); - } - - $form['submit'] = array( - '#type' => 'submit', - '#value' => t('Submit'), - ); + } + + $form['submit'] = array( + '#type' => 'submit', + '#value' => t('Submit'), + ); - return array ( - 'form' => $form, - ); + return array ( + 'form' => $form, + ); } function booking_variety_session_callback($form, &$form_state) { global $event; + $commands = array(); //$node = $form_state['values']['form_id']; $data = $form_state['input']; - watchdog('booking_debug', 'booking_variety_session_callback:
@info
', array('@info' => print_r( $data, true))); - $commands = array(); + //watchdog('booking_debug', 'booking_variety_session_callback:
@info
', array('@info' => print_r( $data, true))); + + // TODO : Update the wrapper for booking ID validity + // Query the variety timeslot table - $timeslot_query = db_select('booking_variety_times', 'v'); + $timeslot_query = db_select('booking_variety_times', 'v'); $timeslot_query->condition('v.booking_eventid', $event->eid, '=') ->fields('v') ->orderBy('v.booking_variety_start'); $result = $timeslot_query->execute(); //for each entry in the variety timeslot table, create a new form select item - foreach($result as $timeslot) { + foreach($result as $timeslot) { $fieldname = 'select-variety-' . $timeslot->tid; - //re-create the form element for this timeslot + //re-create the form element for this timeslot $form['variety-sessions'][$fieldname] = array( - '#type' => 'select', - '#title' => t('Variety Session: ' . $timeslot->booking_variety_time_descrip), - '#required' => TRUE, - //'#default_value' => '', - //'#options' => _booking_get_variety_timeslot_options($timeslot->tid), + '#type' => 'select', + '#title' => t('Variety Session: ' . $timeslot->booking_variety_time_descrip), + '#required' => TRUE, + '#options' => _booking_get_variety_timeslot_options($timeslot->tid), '#prefix' => '
', '#suffix' => '
', - - '#options' => array('--'), - '#default_value' => '--', - //isset($form_state['values'][$fieldname]) ? $form_state['values'][$fieldname] : '--', + '#default_value' => isset($form_state['values'][$fieldname]) ? $form_state['values'][$fieldname] : '--', ); - + // Tell drupal to update the wrapper for this field $commands[] = ajax_command_replace('#booking_variety_session_' . $timeslot->tid . 'wrapper', drupal_render($form['variety-sessions'][$fieldname])); - - } $form_state['rebuild'] = TRUE; @@ -124,20 +121,20 @@ function booking_variety_session_callback($form, &$form_state) { */ function _booking_get_variety_timeslot_options($timeslot_id) { $session_options = array(); - $session_options[] = "--"; - - $session_query = db_query("SELECT * FROM {booking_variety_options} WHERE booking_variety_timeslot_id = :tid AND booking_variety_status = 1", - array(':tid' => $timeslot_id)); + $session_options[] = "--"; + + $session_query = db_query("SELECT * FROM {booking_variety_options} WHERE booking_variety_timeslot_id = :tid AND booking_variety_status = 1", + array(':tid' => $timeslot_id)); // Only add sessions that aren't full to the return result - foreach($session_query as $session) { + foreach($session_query as $session) { if ($session->booking_variety_regncount < $session->booking_variety_maxsize) { $session_options[$session->vid] = $session->booking_variety_descrip; } - } - watchdog('booking_debug', "
Variety Session Options:\n@info
", array('@info' => print_r( $session_options, true))); - - return $session_options; + } + watchdog('booking_debug', "
Variety Session Options:\n@info
", array('@info' => print_r( $session_options, true))); + + return $session_options; } /** @@ -149,24 +146,24 @@ function booking_variety_regn_callback($form, &$form_state) { $data = $form_state['input']; watchdog('booking', '
booking_variety_regn_callback validation:\n@info
', array('@info' => print_r( $data, true))); - //verify that user-entered data is a number - if (! preg_match('/^[0-9]+$/', $data['booking_nid'])) { + //verify that user-entered data is a number + if (! preg_match('/^[0-9]+$/', $data['booking_nid'])) { watchdog('booking_debug', "
booking_variety_regn_callback non-numerical input
"); return '
' . 'You have not entered a valid booking reference number.
'; - } + } // 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 = 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 = db_select('booking_person', 'p'); $query->condition($db_and) - ->fields('p'); - $person = $query->execute() - ->fetchObject(); + ->fields('p'); + $person = $query->execute() + ->fetchObject(); if ($person) { watchdog('booking_debug', "
booking_variety_regn_callback  found valid attendee
");