diff --git a/booking.helper.inc b/booking.helper.inc index 62646ab..f8506ce 100644 --- a/booking.helper.inc +++ b/booking.helper.inc @@ -1253,45 +1253,52 @@ function _booking_details_email_summary($node) { * Helper function to format travel form summary */ function _booking_travelform_email_summary($node) { - $output = ''; - - //look up the actual name if a boyfriend/girlfriend is defined - if ($node->booking_bf_gf_nid != 0) - { - $query = db_query("Select booking_firstname, booking_lastname from {booking_person} where nid = :nid", - array(':nid' => $node->booking_bf_gf_nid)) - ->fetchObject(); - $bf_gf = $query->booking_firstname . " " . $query->booking_lastname; - } - else - $bf_gf = "N/A"; - - $rows = array(); - - $rows[] = t('Name: !first !last', array('!first' => $node->booking_firstname, '!last' => $node->booking_lastname)); - $rows[] = t('Transport Type: !transport', array('!transport' => $node->booking_transport_type)); - - if ($node->booking_transport_type == 'Flying') - { - $rows[] = t('Catching the train to Study Week: !value', array('!value' => $node->booking_transport_from_morriset_reqd == 1 ? 'Yes' : 'No')); - $rows[] = t('Inbound Flight Number: ' . $node->booking_flightnum_inbound); - $rows[] = t('Flight Arrival: !date', array('!date' => format_date($node->booking_flight_datetime_inbound, 'custom', 'd/m/Y H:i'))); - $rows[] = t('Outbound Flight Number: ' . $node->booking_flightnum_outbound); - $rows[] = t('Flight Departure: !date', array('!date' => format_date($node->booking_flight_datetime_outbound, 'custom', 'd/m/Y H:i'))); - } - $rows[] = t('Accommodation before Study Week Required: !value', array('!value' => $node->booking_accom_before_reqd == 1 ? 'Yes' : 'No')); - $rows[] = t('Accommodation after Study Week Required: !value', array('!value' => $node->booking_accom_after_reqd == 1 ? 'Yes' : 'No')); - //fields from booking_person - if (variable_get('booking_enable_dietary', 0) == 1) - $rows[] = t('Special Dietary Requirements: ' . $node->booking_dietary); - if (variable_get('booking_enable_roommate', 0) == 1) - $rows[] = t('Special Medical Conditions: ' . $node->booking_medical_conditions); - $rows[] = t('Boyfriend/Girlfriend: ' . $bf_gf); - $rows[] = t('Requested room mate(s): ' . $node->booking_room_mate1); + global $event; + $rows = array(); + if (! empty($node->tid)) + { + //look up the actual name if a boyfriend/girlfriend is defined + if ($node->booking_bf_gf_nid != 0) + { + $query = db_query("Select booking_firstname, booking_lastname from {booking_person} where nid = :nid", + array(':nid' => $node->booking_bf_gf_nid)) + ->fetchObject(); + $bf_gf = $query->booking_firstname . " " . $query->booking_lastname; + } + else + $bf_gf = "N/A"; - foreach ($rows as $key => $value) - $rows[$key] = wordwrap($value); + $rows = array(); + + $rows[] = t('Name: !first !last', array('!first' => $node->booking_firstname, '!last' => $node->booking_lastname)); + $rows[] = t('Transport Type: !transport', array('!transport' => $node->booking_transport_type)); + + if ($node->booking_transport_type == 'Flying') + { + $rows[] = t('Catching the train to Study Week: !value', + array('!value' => $node->booking_transport_from_morriset_reqd == 1 ? 'Yes' : 'No')); + $rows[] = t('Inbound Flight Number: ' . $node->booking_flightnum_inbound); + $rows[] = t('Flight Arrival: !date', array('!date' => format_date($node->booking_flight_datetime_inbound, 'custom', 'd/m/Y H:i'))); + $rows[] = t('Outbound Flight Number: ' . $node->booking_flightnum_outbound); + $rows[] = t('Flight Departure: !date', array('!date' => format_date($node->booking_flight_datetime_outbound, 'custom', 'd/m/Y H:i'))); + } + $rows[] = t('Accommodation before Study Week Required: !value', array('!value' => $node->booking_accom_before_reqd == 1 ? 'Yes' : 'No')); + $rows[] = t('Accommodation after Study Week Required: !value', array('!value' => $node->booking_accom_after_reqd == 1 ? 'Yes' : 'No')); + + //fields from booking_person + if (variable_get('booking_enable_dietary', 0) == 1) + $rows[] = t('Special Dietary Requirements: ' . $node->booking_dietary); + + if (variable_get('booking_enable_roommate', 0) == 1) + $rows[] = t('Special Medical Conditions: ' . $node->booking_medical_conditions); + + $rows[] = t('Boyfriend/Girlfriend: ' . $bf_gf); + $rows[] = t('Requested room mate(s): ' . $node->booking_room_mate1); + + foreach ($rows as $key => $value) + $rows[$key] = wordwrap($value); + } return implode("\n", $rows); } diff --git a/booking.register.inc b/booking.register.inc index e2ee289..bcb3dba 100644 --- a/booking.register.inc +++ b/booking.register.inc @@ -1324,7 +1324,7 @@ function booking_load($nodes) { } } - //watchdog('booking', 'Final loaded node: @info', array('@info' => var_export($nodes, TRUE))); + watchdog('booking', 'Final loaded node: @info', array('@info' => var_export($nodes, TRUE))); // no return necessary since $nodes array members reference objects global to this function } diff --git a/booking.tokens.inc b/booking.tokens.inc index c64d540..905d498 100644 --- a/booking.tokens.inc +++ b/booking.tokens.inc @@ -676,7 +676,7 @@ function booking_define_personspecific_tokens($node) //get a count of the total number of people booked in to this event //but don't include people who haven't paid or have withdrawn their booking $result = db_query("SELECT count(*) as num_ppl FROM {booking_person} where booking_event_id = :eventid and (booking_status = 1 or booking_status = 2)", - array(':eventid' => $event->eid)) + array(':eventid' => $event->eid)) ->fetchObject(); //calcalate a new temp id to be configured for this user if required @@ -712,20 +712,24 @@ function booking_define_personspecific_tokens($node) $tokens['waitinglist-position'] = $result->num_ppl - variable_get('booking_regn_limit',350) + 1; $tokens['payment-transaction-desc'] = $node->nid . ' ' . $node->booking_lastname; $tokens['balance-payment-link'] = url('balance/' . $tempid, array('absolute' => TRUE)); - $tokens['confirm-payment-link'] = url('confirm/' . $tempid, array('absolute' => TRUE)); - $tokens['travel-link'] = url('travel/' . $tempid, array('absolute' => TRUE)); + $tokens['confirm-payment-link'] = url('confirm/' . $tempid, array('absolute' => TRUE)); $tokens['paypal-total-amount'] = _booking_amount_owing($node, $amount_paid); //$tokens['paypal-total-amount'] = _booking_amount_owing($node->nid, $amount_paid); $tokens['paypal-deposit-amount'] = _booking_deposit_amount(); - $tokens['regn-summary'] = _booking_details_email_summary($node); - $tokens['travel-summary'] = _booking_travelform_email_summary($node); - $tokens['studygroup-summary'] = _booking_studygroup_email_summary($node); - $tokens['leaderhelper-pair'] = _booking_leader_helper_email_summary($node); + $tokens['regn-summary'] = _booking_details_email_summary($node); + if (variable_get('booking_enable_travelform', 0) == 1) { + $tokens['travel-link'] = url('travel/' . $tempid, array('absolute' => TRUE)); + $tokens['travel-summary'] = _booking_travelform_email_summary($node); + } + if (variable_get('booking_enable_studygroups', 0) == 1) { + $tokens['studygroup-summary'] = _booking_studygroup_email_summary($node); + $tokens['leaderhelper-pair'] = _booking_leader_helper_email_summary($node); + } if (variable_get('booking_enable_roomallocations', 0) == 1) { $tokens['room-allocation'] = _booking_room_email_summary($node); - $tokens['bed-type'] = _booking_room_bedtype_lookup($node->booking_room_bedtype); + $tokens['bed-type'] = _booking_room_bedtype_lookup(empty($node->booking_room_bedtype) ? '0' : $node->booking_room_bedtype); } return $tokens;