New travel email
This commit is contained in:
@@ -286,6 +286,7 @@ function booking_manual_email()
|
|||||||
$prefix = t("<p>Send a manual email to people registered for this event.</p>");
|
$prefix = t("<p>Send a manual email to people registered for this event.</p>");
|
||||||
$email_options_array = array();
|
$email_options_array = array();
|
||||||
$email_options_array['registration'] = 'Manual Registration';
|
$email_options_array['registration'] = 'Manual Registration';
|
||||||
|
$email_options_array['travelrequired'] = 'Manual Travel Form Required';
|
||||||
$email_options_array['balance'] = 'Manual Balance Outstanding';
|
$email_options_array['balance'] = 'Manual Balance Outstanding';
|
||||||
$email_options_array['complete'] = 'Manual Payment Complete';
|
$email_options_array['complete'] = 'Manual Payment Complete';
|
||||||
$email_options_array['travelcomplete'] = 'Manual Travel Form Complete';
|
$email_options_array['travelcomplete'] = 'Manual Travel Form Complete';
|
||||||
@@ -413,6 +414,11 @@ function booking_manual_email_submit($form, &$form_state) {
|
|||||||
watchdog('booking', 'Processing a manual registration email to id @info', array ('@info' => $key));
|
watchdog('booking', 'Processing a manual registration email to id @info', array ('@info' => $key));
|
||||||
_booking_registration_email($key, false, true);
|
_booking_registration_email($key, false, true);
|
||||||
}
|
}
|
||||||
|
if ($form_state['values']['email-type'] == 'travelrequired')
|
||||||
|
{
|
||||||
|
watchdog('booking', 'Processing a manual travel form request email to id @info', array ('@info' => $key));
|
||||||
|
_booking_travelform_request_email($key);
|
||||||
|
}
|
||||||
elseif ($form_state['values']['email-type'] == 'balance')
|
elseif ($form_state['values']['email-type'] == 'balance')
|
||||||
{
|
{
|
||||||
watchdog('booking', 'Processing a manual outstanding balance email to id @info', array ('@info' => $key));
|
watchdog('booking', 'Processing a manual outstanding balance email to id @info', array ('@info' => $key));
|
||||||
|
@@ -365,6 +365,49 @@ function _booking_missedpayment_email($nid)
|
|||||||
drupal_mail('booking', 'booking_email_custom', $to, $language, $params, $from);
|
drupal_mail('booking', 'booking_email_custom', $to, $language, $params, $from);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function to generate email to be sent to the attendee requesting them to complete their travel form
|
||||||
|
*
|
||||||
|
* @param $nid - the registration node
|
||||||
|
*/
|
||||||
|
function _booking_travelform_request_email($nid)
|
||||||
|
{
|
||||||
|
global $event;
|
||||||
|
global $user;
|
||||||
|
$language = user_preferred_language($user);
|
||||||
|
|
||||||
|
//return without doing anything if we shouldn't send workflow emails
|
||||||
|
if (variable_get('booking_auto_workflow_email', 0) == 0)
|
||||||
|
{
|
||||||
|
watchdog('booking', 'Not sending travelform confirmation email since that feature is currently disabled.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//load the node matching this id from the database, ignoring the cache
|
||||||
|
$node = node_load($nid, NULL, TRUE);
|
||||||
|
$tokens = booking_define_personspecific_tokens($node);
|
||||||
|
|
||||||
|
watchdog('booking', 'Sending travelform confirmation email to !first !last', array('!first' => $node->booking_firstname, '!last' => $node->booking_lastname));
|
||||||
|
|
||||||
|
//calculate the from email address
|
||||||
|
$from = t('!event Travel <!email>', array('!event' => $event->booking_eventname,
|
||||||
|
'!email' => variable_get('booking_logistics_email', variable_get('site_mail', ini_get('sendmail_from')))
|
||||||
|
));
|
||||||
|
|
||||||
|
//calculate the remaining parameters
|
||||||
|
$to = $node->booking_email;
|
||||||
|
$subject = token_replace(variable_get('booking_email_travel_required_subject', t('!event', array('!event' => $event->booking_eventname))), $tokens);
|
||||||
|
|
||||||
|
$params['subject'] = $subject;
|
||||||
|
$params['headers']['Bcc'] = "it@coadcorp.com, " . variable_get('booking_notify_email', variable_get('site_mail', ini_get('sendmail_from')));
|
||||||
|
|
||||||
|
//retrieve the body of the email
|
||||||
|
$params['body'] = token_replace(variable_get('booking_email_travel_required_text'), $tokens);
|
||||||
|
|
||||||
|
//send the email
|
||||||
|
drupal_mail('booking', 'booking_email_custom', $to, $language, $params, $from);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to generate email to be sent to the attendee once they complete their travel form
|
* Function to generate email to be sent to the attendee once they complete their travel form
|
||||||
*
|
*
|
||||||
|
@@ -55,6 +55,7 @@ function booking_roomallocations_view_summary() {
|
|||||||
'booking_gender' => array('data' => t('Gender'), 'field' => 'p.booking_gender'),
|
'booking_gender' => array('data' => t('Gender'), 'field' => 'p.booking_gender'),
|
||||||
'booking_age' => array('data' => t('Age'), 'field' => 'p.booking_dob'),
|
'booking_age' => array('data' => t('Age'), 'field' => 'p.booking_dob'),
|
||||||
'booking_married' => array('data' => t('Married?'), 'field' => 'p.booking_married'),
|
'booking_married' => array('data' => t('Married?'), 'field' => 'p.booking_married'),
|
||||||
|
'booking_room_request' => array('data' => t('Requested Roommates'), 'field' => 'p.booking_room_mate1'),
|
||||||
'booking_roomlocation' => array('data' => t('Room Location'), 'field' => 'r.booking_room_location_id'),
|
'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_num' => array('data' => t('Room Number'), 'field' => 'r.booking_room_number'),
|
||||||
'booking_room_bedtype' => array('data' => t('Bed Type'), 'field' => 'm.booking_room_bedtype'),
|
'booking_room_bedtype' => array('data' => t('Bed Type'), 'field' => 'm.booking_room_bedtype'),
|
||||||
@@ -74,6 +75,9 @@ function booking_roomallocations_view_summary() {
|
|||||||
|
|
||||||
foreach($result as $data)
|
foreach($result as $data)
|
||||||
{
|
{
|
||||||
|
$location_link = $data->booking_room_location_id > 0 ? _booking_room_location_lookup($data->booking_room_location_id) .
|
||||||
|
l(t(' (Edit)'), t('admin/booking/rooms/!id/assign', array('!id' => $data->booking_room_location_id))) : '';
|
||||||
|
|
||||||
$rows[] = array (
|
$rows[] = array (
|
||||||
'data' => array(
|
'data' => array(
|
||||||
$data->booking_firstname,
|
$data->booking_firstname,
|
||||||
@@ -81,10 +85,11 @@ function booking_roomallocations_view_summary() {
|
|||||||
$data->booking_gender == 'M' ? 'Male' : 'Female',
|
$data->booking_gender == 'M' ? 'Male' : 'Female',
|
||||||
_booking_get_age_years($data->booking_dob),
|
_booking_get_age_years($data->booking_dob),
|
||||||
$data->booking_married == 'Y' ? 'Yes' : 'No',
|
$data->booking_married == 'Y' ? 'Yes' : 'No',
|
||||||
_booking_room_location_lookup($data->booking_room_location_id),
|
$data->booking_room_mate1,
|
||||||
|
$location_link,
|
||||||
$data->booking_room_number,
|
$data->booking_room_number,
|
||||||
_booking_room_bedtype_lookup($data->booking_room_bedtype),
|
_booking_room_bedtype_lookup($data->booking_room_bedtype),
|
||||||
l(t('Edit'), t('admin/booking/!id/edit-room', array('!id' => $data->nid))),
|
l(t('Change Room'), t('admin/booking/!id/edit-room', array('!id' => $data->nid))),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -971,9 +971,9 @@ function booking_studygroups_update() {
|
|||||||
$maximums = array(
|
$maximums = array(
|
||||||
'male' => ceil($gender_ratio),
|
'male' => ceil($gender_ratio),
|
||||||
'female' => ceil($max_people - $gender_ratio),
|
'female' => ceil($max_people - $gender_ratio),
|
||||||
'under20' => ceil(($statistics['under20'] / $limit) * ($max_people)),
|
'under20' => ceil(($statistics['under20'] / $limit) * ($max_people - $fudge_factor)),
|
||||||
'20to25' => ceil(($statistics['20to25'] / $limit) * ($max_people)),
|
'20to25' => ceil(($statistics['20to25'] / $limit) * ($max_people - $fudge_factor)),
|
||||||
'over25' => ceil(($statistics['over25'] / $limit) * ($max_people)),
|
'over25' => ceil(($statistics['over25'] / $limit) * ($max_people - $fudge_factor)),
|
||||||
);
|
);
|
||||||
|
|
||||||
drupal_set_message(t('Aiming for !males males, !females females in group. Made up of !20s under 20, !low20s between 20 and 25, and !high20s over 25. Total count in group is !max.',
|
drupal_set_message(t('Aiming for !males males, !females females in group. Made up of !20s under 20, !low20s between 20 and 25, and !high20s over 25. Total count in group is !max.',
|
||||||
@@ -1058,6 +1058,7 @@ function booking_studygroups_update() {
|
|||||||
$spouse_id = $working_list[$person->booking_node_id]->booking_partner_id;
|
$spouse_id = $working_list[$person->booking_node_id]->booking_partner_id;
|
||||||
$bf_gf_id = $working_list[$person->booking_node_id]->booking_bf_gf_nid;
|
$bf_gf_id = $working_list[$person->booking_node_id]->booking_bf_gf_nid;
|
||||||
$gender = $working_list[$person->booking_node_id]->booking_gender == 'M' ? 'male' : 'female';
|
$gender = $working_list[$person->booking_node_id]->booking_gender == 'M' ? 'male' : 'female';
|
||||||
|
$session_id = $person->booking_session_id;
|
||||||
|
|
||||||
//if the study group id matches the group we're currently looking at, and they have a role defined
|
//if the study group id matches the group we're currently looking at, and they have a role defined
|
||||||
if ($person->booking_studygroup_id == $group->sid && $person->booking_studygroup_role > 0)
|
if ($person->booking_studygroup_id == $group->sid && $person->booking_studygroup_role > 0)
|
||||||
@@ -1069,20 +1070,51 @@ function booking_studygroups_update() {
|
|||||||
|
|
||||||
//mark this position as being used
|
//mark this position as being used
|
||||||
$age = _booking_get_age_years($working_list[$person->booking_node_id]->booking_dob);
|
$age = _booking_get_age_years($working_list[$person->booking_node_id]->booking_dob);
|
||||||
_booking_assign_attendee_group($person->booking_node_id, $person->booking_session_id, 'male', $age, $working_list, $session_count);
|
_booking_assign_attendee_group($person->booking_node_id, $session_id, 'male', $age, $working_list, $session_count);
|
||||||
|
|
||||||
|
//make sure the leader/helper's partner gets updated now, otherwise they could still end up in different groups
|
||||||
|
if ($spouse_id > 0)
|
||||||
|
{
|
||||||
|
//also mark their spouse as allocated to this group
|
||||||
|
drupal_set_message(t('Spouse with id !id assigned to session !session (currently with !num people).',
|
||||||
|
array('!id' => $spouse_id, '!session' => $person->booking_session_id,
|
||||||
|
'!num' => $session_count[$person->booking_session_id]['total'])
|
||||||
|
));
|
||||||
|
$age = _booking_get_age_years($working_list[$spouse_id]->booking_dob);
|
||||||
|
$spouse_gender = $working_list[$spouse_id]->booking_gender == 'M' ? 'male' : 'female';
|
||||||
|
_booking_assign_attendee_group($spouse_id, $session_id, $spouse_gender, $age, $working_list, $session_count);
|
||||||
|
}
|
||||||
|
elseif ($bf_gf_id > 0)
|
||||||
|
{
|
||||||
|
//also mark their boyfriend/girlfriend as allocated to this group
|
||||||
|
drupal_set_message(t('BF/GF with id !id assigned to session !session (currently with !num people).',
|
||||||
|
array('!id' => $bf_gf_id, '!session' => $person->booking_session_id,
|
||||||
|
'!num' => $session_count[$person->booking_session_id]['total'])
|
||||||
|
));
|
||||||
|
$age = _booking_get_age_years($working_list[$bf_gf_id]->booking_dob);
|
||||||
|
$bfgf_gender = $working_list[$bf_gf_id]->booking_gender == 'M' ? 'male' : 'female';
|
||||||
|
_booking_assign_attendee_group($bf_gf_id, $session_id, $bfgf_gender, $age, $working_list, $session_count);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//anyone else already assigned to this group previously
|
//anyone else already assigned to this group previously
|
||||||
elseif ($person->booking_studygroup_id == $group->sid && $working_list[$person->booking_node_id]->processed == 0)
|
elseif ($person->booking_studygroup_id == $group->sid && $working_list[$person->booking_node_id]->processed == 0)
|
||||||
{
|
{
|
||||||
if ($spouse_id > 0)
|
if ($spouse_id > 0)
|
||||||
{
|
{
|
||||||
|
//if the spouse has already been processed due to being a leader or helper, use that session
|
||||||
|
if ($working_list[$spouse_id]->processed == 1)
|
||||||
|
{
|
||||||
|
$session_id = $working_list[$spouse_id]->session;
|
||||||
|
}
|
||||||
|
|
||||||
//mark this person as allocated to this group
|
//mark this person as allocated to this group
|
||||||
drupal_set_message(t('Married person with id !id assigned to session !session (currently with !num people).',
|
drupal_set_message(t('Married person with id !id assigned to session !session (currently with !num people).',
|
||||||
array('!id' => $person->booking_node_id, '!session' => $person->booking_session_id,
|
array('!id' => $person->booking_node_id, '!session' => $person->booking_session_id,
|
||||||
'!num' => $session_count[$person->booking_session_id]['total'])
|
'!num' => $session_count[$person->booking_session_id]['total'])
|
||||||
));
|
));
|
||||||
$age = _booking_get_age_years($working_list[$person->booking_node_id]->booking_dob);
|
$age = _booking_get_age_years($working_list[$person->booking_node_id]->booking_dob);
|
||||||
_booking_assign_attendee_group($person->booking_node_id, $person->booking_session_id, $gender, $age, $working_list, $session_count);
|
_booking_assign_attendee_group($person->booking_node_id, $session_id, $gender, $age, $working_list, $session_count);
|
||||||
|
|
||||||
//also mark their spouse as allocated to this group
|
//also mark their spouse as allocated to this group
|
||||||
drupal_set_message(t('Spouse with id !id assigned to session !session (currently with !num people).',
|
drupal_set_message(t('Spouse with id !id assigned to session !session (currently with !num people).',
|
||||||
@@ -1091,17 +1123,23 @@ function booking_studygroups_update() {
|
|||||||
));
|
));
|
||||||
$age = _booking_get_age_years($working_list[$spouse_id]->booking_dob);
|
$age = _booking_get_age_years($working_list[$spouse_id]->booking_dob);
|
||||||
$spouse_gender = $working_list[$spouse_id]->booking_gender == 'M' ? 'male' : 'female';
|
$spouse_gender = $working_list[$spouse_id]->booking_gender == 'M' ? 'male' : 'female';
|
||||||
_booking_assign_attendee_group($spouse_id, $person->booking_session_id, $spouse_gender, $age, $working_list, $session_count);
|
_booking_assign_attendee_group($spouse_id, $session_id, $spouse_gender, $age, $working_list, $session_count);
|
||||||
}
|
}
|
||||||
elseif ($bf_gf_id > 0)
|
elseif ($bf_gf_id > 0)
|
||||||
{
|
{
|
||||||
|
//if the bf/gf has already been processed due to being a leader or helper, use that session
|
||||||
|
if ($working_list[$bf_gf_id]->processed == 1)
|
||||||
|
{
|
||||||
|
$session_id = $working_list[$bf_gf_id]->session;
|
||||||
|
}
|
||||||
|
|
||||||
//mark this person as allocated to this group
|
//mark this person as allocated to this group
|
||||||
drupal_set_message(t('Person with id !id in relationship assigned to session !session (currently with !num people).',
|
drupal_set_message(t('Person with id !id in relationship assigned to session !session (currently with !num people).',
|
||||||
array('!id' => $person->booking_node_id, '!session' => $person->booking_session_id,
|
array('!id' => $person->booking_node_id, '!session' => $person->booking_session_id,
|
||||||
'!num' => $session_count[$person->booking_session_id]['total'])
|
'!num' => $session_count[$person->booking_session_id]['total'])
|
||||||
));
|
));
|
||||||
$age = _booking_get_age_years($working_list[$person->booking_node_id]->booking_dob);
|
$age = _booking_get_age_years($working_list[$person->booking_node_id]->booking_dob);
|
||||||
_booking_assign_attendee_group($person->booking_node_id, $person->booking_session_id, $gender, $age, $working_list, $session_count);
|
_booking_assign_attendee_group($person->booking_node_id, $session_id, $gender, $age, $working_list, $session_count);
|
||||||
|
|
||||||
//also mark their boyfriend/girlfriend as allocated to this group
|
//also mark their boyfriend/girlfriend as allocated to this group
|
||||||
drupal_set_message(t('BF/GF with id !id assigned to session !session (currently with !num people).',
|
drupal_set_message(t('BF/GF with id !id assigned to session !session (currently with !num people).',
|
||||||
@@ -1110,12 +1148,12 @@ function booking_studygroups_update() {
|
|||||||
));
|
));
|
||||||
$age = _booking_get_age_years($working_list[$bf_gf_id]->booking_dob);
|
$age = _booking_get_age_years($working_list[$bf_gf_id]->booking_dob);
|
||||||
$bfgf_gender = $working_list[$bf_gf_id]->booking_gender == 'M' ? 'male' : 'female';
|
$bfgf_gender = $working_list[$bf_gf_id]->booking_gender == 'M' ? 'male' : 'female';
|
||||||
_booking_assign_attendee_group($bf_gf_id, $person->booking_session_id, $bfgf_gender, $age, $working_list, $session_count);
|
_booking_assign_attendee_group($bf_gf_id, $session_id, $bfgf_gender, $age, $working_list, $session_count);
|
||||||
}
|
}
|
||||||
//for anyone else, just record what session they're currently in
|
//for anyone else, just record what session they're currently in
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$working_list[$person->booking_node_id]->session = $person->booking_session_id;
|
$working_list[$person->booking_node_id]->session = $session_id;
|
||||||
}
|
}
|
||||||
} //end looking at people with spouse or bf/gf
|
} //end looking at people with spouse or bf/gf
|
||||||
} //end searching for people to pre-allocate
|
} //end searching for people to pre-allocate
|
||||||
@@ -1220,9 +1258,11 @@ function booking_studygroups_update() {
|
|||||||
if ($mapping->booking_session_id !== $person->session)
|
if ($mapping->booking_session_id !== $person->session)
|
||||||
{
|
{
|
||||||
drupal_set_message(t('Found existing study group session for user !id. Changing old session !old to !session. Role id is !role',
|
drupal_set_message(t('Found existing study group session for user !id. Changing old session !old to !session. Role id is !role',
|
||||||
array('!id' => $person->nid, '!old' => $mapping->booking_session_id, '!session' => $person->session, '!role' => $person->booking_studygroup_role)));
|
array('!id' => $person->nid, '!old' => $mapping->booking_session_id, '!session' => $person->session,
|
||||||
|
'!role' => $person->booking_studygroup_role)));
|
||||||
|
|
||||||
//update the entry
|
//update the entry
|
||||||
|
|
||||||
db_update('booking_studygroup_mapping')
|
db_update('booking_studygroup_mapping')
|
||||||
->fields(array(
|
->fields(array(
|
||||||
'booking_session_id' => $person->session,
|
'booking_session_id' => $person->session,
|
||||||
|
@@ -355,6 +355,19 @@ $booking_registration_intro_text = variable_get('booking_registration_intro_text
|
|||||||
'#description' => t(''),
|
'#description' => t(''),
|
||||||
'#default_value' => variable_get('booking_email_waitinglist_text', $booking_email_waitinglist_text),
|
'#default_value' => variable_get('booking_email_waitinglist_text', $booking_email_waitinglist_text),
|
||||||
);
|
);
|
||||||
|
$form['emails']['booking_email_travel_required_subject'] = array (
|
||||||
|
'#type' => 'textfield',
|
||||||
|
'#title' => t('Subject line for email requesting attendee to complete the travel form'),
|
||||||
|
'#size' => 150,
|
||||||
|
'#maxlength' => 300,
|
||||||
|
'#default_value' => variable_get('booking_email_travel_required_subject','[booking:eventname] Travel Details Required'),
|
||||||
|
);
|
||||||
|
$form['emails']['booking_email_travel_required_text'] = array(
|
||||||
|
'#title' => t('Email text requesting attendee to complete the travel form.'),
|
||||||
|
'#type' => 'textarea',
|
||||||
|
'#description' => t(''),
|
||||||
|
'#default_value' => variable_get('booking_email_travel_required_text', ''),
|
||||||
|
);
|
||||||
$form['emails']['booking_email_travel_complete_subject'] = array (
|
$form['emails']['booking_email_travel_complete_subject'] = array (
|
||||||
'#type' => 'textfield',
|
'#type' => 'textfield',
|
||||||
'#title' => t('Subject line for email indicating a person has completed the travel form'),
|
'#title' => t('Subject line for email indicating a person has completed the travel form'),
|
||||||
|
Reference in New Issue
Block a user