Bug fixes

This commit is contained in:
2014-11-12 15:02:43 +11:00
parent 09291b99fc
commit eab80a1fdf
3 changed files with 160 additions and 73 deletions

View File

@@ -119,6 +119,13 @@ function booking_admin() {
'#options' => _booking_gender_options(), '#options' => _booking_gender_options(),
'#default_value' => variable_get('booking_default_gender', 'M'), '#default_value' => variable_get('booking_default_gender', 'M'),
); );
$form['misc']['booking_allow_couples'] = array (
'#type' => 'radios',
'#title' => t('Allow married couples?'),
'#description' => t('Select whether to cater for married couples in the registration form'),
'#options' => array (0 => t('No'), t('Yes')),
'#default_value' => variable_get('booking_allow_couples', 0),
);
$form['misc']['booking_default_country'] = array ( $form['misc']['booking_default_country'] = array (
'#type' => 'select', '#type' => 'select',
'#title' => t('Select Default Country'), '#title' => t('Select Default Country'),

View File

@@ -1,7 +1,7 @@
<?php <?php
// $Id$ // $Id$
function booking_update_7100() { function booking_update_7100() {
$spec = array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '5', 'scale' => '2'); $spec = array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2');
db_add_field( 'booking_price', 'booking_late_price', $spec); db_add_field( 'booking_price', 'booking_late_price', $spec);
} }
@@ -513,7 +513,7 @@ $result = db_insert('booking_event')
*/ */
function booking_uninstall() { function booking_uninstall() {
// Remove tables. // Remove tables.
drupal_uninstall_schema('booking'); //drupal_uninstall_schema('booking');
} }
@@ -529,6 +529,7 @@ function booking_schema() {
'booking_tempid' => array('type' => 'varchar', 'length' => '40', 'not null' => FALSE), 'booking_tempid' => array('type' => 'varchar', 'length' => '40', 'not null' => FALSE),
'booking_timestamp' => array('type' => 'int', 'not null' => TRUE, 'disp-width' => '11'), 'booking_timestamp' => array('type' => 'int', 'not null' => TRUE, 'disp-width' => '11'),
'booking_status' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE), 'booking_status' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE),
'booking_committee_member' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'),
'booking_welfare_required' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'), 'booking_welfare_required' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'),
'booking_barcode' => array('type' => 'varchar', 'length' => '20', 'not null' => FALSE), 'booking_barcode' => array('type' => 'varchar', 'length' => '20', 'not null' => FALSE),
'booking_firstname' => array('type' => 'varchar', 'length' => '50', 'not null' => TRUE), 'booking_firstname' => array('type' => 'varchar', 'length' => '50', 'not null' => TRUE),
@@ -564,6 +565,18 @@ function booking_schema() {
'booking_help_readgroup_lead' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), 'booking_help_readgroup_lead' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_help_praying' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), 'booking_help_praying' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_help_meditations' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), 'booking_help_meditations' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
//other helping areas
'booking_has_mission_experience' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_mission_experience_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE),
'booking_skills_builder' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_skills_cooking' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_skills_childminding' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_skills_language' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_skills_language_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE),
'booking_skills_other' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_skills_other_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE),
//emergency contact info //emergency contact info
'booking_guardian_name' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE), 'booking_guardian_name' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE),
'booking_guardian_type' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE), 'booking_guardian_type' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE),
@@ -584,6 +597,31 @@ function booking_schema() {
'booking_total_pay_reqd' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'), 'booking_total_pay_reqd' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'),
'booking_amount_paid' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'), 'booking_amount_paid' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'),
'booking_deposit_timestamp' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'), 'booking_deposit_timestamp' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'),
'booking_refund_processed' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'),
'booking_refund_due' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'),
//passport info
'booking_passport_expiry_date' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'),
'booking_passport_num' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE),
'booking_passport_issue_location' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE),
'booking_passport_issue_name' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE),
//flight info
'booking_outflight_bookingnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_outflight_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_outflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_outflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_outflight_origin_ts' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'),
'booking_outflight_connecting_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_outflight_destination' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_outflight_destination_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_rtrnflight_bookingnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_rtrnflight_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_rtrnflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_rtrnflight_origin_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_rtrnflight_connecting_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_rtrnflight_destination' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
'booking_rtrnflight_destination_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE),
), ),
'primary key' => array('nid'), 'primary key' => array('nid'),
); );
@@ -650,6 +688,27 @@ function booking_schema() {
'primary key' => array('vid'), 'primary key' => array('vid'),
); );
$schema['booking_variety_times'] = array(
'fields' => array(
'tid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_eventid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_variety_status' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE),
'booking_variety_time_descrip' => array('type' => 'varchar', 'length' => '500', 'not null' => TRUE),
'booking_variety_start' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'),
'booking_variety_end' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'),
),
'primary key' => array('tid'),
);
$schema['booking_variety_regn'] = array(
'fields' => array(
'rid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_variety_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_node_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
),
'primary key' => array('rid'),
);
$schema['booking_travel'] = array( $schema['booking_travel'] = array(
'fields' => array( 'fields' => array(
'tid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'), 'tid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
@@ -669,6 +728,31 @@ function booking_schema() {
'primary key' => array('tid'), 'primary key' => array('tid'),
); );
//This lists all the study groups
$schema['booking_studygroup_list'] = array(
'fields' => array(
'sid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_eventid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_studygroup_descrip' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE),
'booking_num_group_sessions' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10', 'default' => 1),
),
'primary key' => array('sid'),
);
//this maps people to particular study groups
$schema['booking_studygroup_mapping'] = array(
'fields' => array(
'sid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_eventid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_node_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_studygroup_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'),
'booking_session_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10', default => 0),
'booking_is_leader' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
'booking_is_helper' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE),
),
'primary key' => array('sid'),
);
return $schema; return $schema;
} }

View File

@@ -10,6 +10,10 @@ function booking_register_page() {
$output = ""; $output = "";
$return_array = array(); $return_array = array();
//set the page title
$bookingTitle = !empty($event->booking_eventname) ? $event->booking_eventname : 'Event';
drupal_set_title($bookingTitle . ' Booking Form');
//figure out if we're allowed to accept bookings //figure out if we're allowed to accept bookings
$booking_times = db_query("SELECT booking_register_open, booking_register_close FROM {booking_event} where eid = :eid", $booking_times = db_query("SELECT booking_register_open, booking_register_close FROM {booking_event} where eid = :eid",
array(':eid' => $event->eid))->fetchObject(); array(':eid' => $event->eid))->fetchObject();
@@ -125,18 +129,7 @@ function booking_form($node, &$form_state, $inserting = FALSE) {
'#default_value' => variable_get('booking_gender', empty($data->booking_gender) ? variable_get('booking_default_gender') : $data->booking_gender), '#default_value' => variable_get('booking_gender', empty($data->booking_gender) ? variable_get('booking_default_gender') : $data->booking_gender),
'#options' => _booking_gender_options(), '#options' => _booking_gender_options(),
); );
/*
$form['your-details']['booking_gender'] = array(
'#type' => 'select',
'#title' => t('Gender'),
'#required' => TRUE,
'#default_value' => variable_get('booking_gender', empty($data->booking_gender) ? 'M' : $data->booking_gender),
'#options' => array(
'M' => 'Male',
'F' => 'Female',
),
);
*/
//If we're loading this from an existing node, we need to convert the timestamp into the proper format //If we're loading this from an existing node, we need to convert the timestamp into the proper format
$form['your-details']['booking_dob'] = array( $form['your-details']['booking_dob'] = array(
'#type' => 'date_select', '#type' => 'date_select',
@@ -234,34 +227,19 @@ function booking_form($node, &$form_state, $inserting = FALSE) {
'#title' => t('I am baptised'), '#title' => t('I am baptised'),
'#default_value' => (!empty($data->booking_baptised) && $data->booking_baptised == 'Y') ? 1 : 0 '#default_value' => (!empty($data->booking_baptised) && $data->booking_baptised == 'Y') ? 1 : 0
); );
$form['your-details']['booking_married'] = array(
'#type' => 'checkbox',
'#title' => t('I am married'),
'#default_value' => (!empty($data->booking_married) && $data->booking_married == 'Y') ? 1 : 0
);
$form['your-details']['booking_partner_name'] = array(
'#type' => 'textfield',
'#title' => t('If your partner is coming to !event also, please enter their name here. They must register and pay seperately.',
array('!event' => $event->booking_eventname)),
'#maxlength' => 120,
'#required' => FALSE,
'#states' => array(
// Only show this field when the 'booking_married' checkbox is enabled.
'visible' => array(
':input[name="booking_married"]' => array('checked' => TRUE),
),
),
'#default_value' => !empty($data->booking_partner_name) ? $data->booking_partner_name : ''
);
if ($inserting == TRUE) if (variable_get('booking_allow_couples', 0) == 1)
{ {
$form['your-details']['booking_partner_id'] = array( $form['your-details']['booking_married'] = array(
'#type' => 'checkbox',
'#title' => t('I am married'),
'#default_value' => (!empty($data->booking_married) && $data->booking_married == 'Y') ? 1 : 0
);
$form['your-details']['booking_partner_name'] = array(
'#type' => 'textfield', '#type' => 'textfield',
'#title' => t('If your partner has already registered for !event, please enter their registration id (number only) from the email they were sent. Otherwise, leave blank', '#title' => t('If your partner is coming to !event also, please enter their name here. They must register and pay seperately.',
array('!event' => $event->booking_eventname)), array('!event' => $event->booking_eventname)),
'#maxlength' => 15, '#maxlength' => 120,
'#size' => 4,
'#required' => FALSE, '#required' => FALSE,
'#states' => array( '#states' => array(
// Only show this field when the 'booking_married' checkbox is enabled. // Only show this field when the 'booking_married' checkbox is enabled.
@@ -271,39 +249,57 @@ function booking_form($node, &$form_state, $inserting = FALSE) {
), ),
'#default_value' => !empty($data->booking_partner_name) ? $data->booking_partner_name : '' '#default_value' => !empty($data->booking_partner_name) ? $data->booking_partner_name : ''
); );
}
else
{
//add the empty element first
$partner_options[] = '';
//get a list of possible partners if ($inserting == TRUE)
$partners = db_query("SELECT nid, booking_firstname, booking_lastname, booking_partner_id FROM {booking_person} " . {
"where booking_event_id = :eid and booking_married='Y' order by booking_lastname, booking_firstname", $form['your-details']['booking_partner_id'] = array(
array(':eid' => $event->eid)); '#type' => 'textfield',
'#title' => t('If your partner has already registered for !event, please enter their registration id (number only) from the email they were sent. Otherwise, leave blank',
array('!event' => $event->booking_eventname)),
'#maxlength' => 15,
'#size' => 4,
'#required' => FALSE,
'#states' => array(
// Only show this field when the 'booking_married' checkbox is enabled.
'visible' => array(
':input[name="booking_married"]' => array('checked' => TRUE),
),
),
'#default_value' => !empty($data->booking_partner_name) ? $data->booking_partner_name : ''
);
}
else //not inserting so allow administrator to choose a person
{
//add the empty element first
$partner_options[] = '';
//convert that into an array //get a list of possible partners
foreach($partners as $row) $partners = db_query("SELECT nid, booking_firstname, booking_lastname, booking_partner_id FROM {booking_person} " .
$partner_options[$row->nid] = $row->booking_firstname . ' ' . $row->booking_lastname; "where booking_event_id = :eid and booking_married='Y' order by booking_lastname, booking_firstname",
//create a select field array(':eid' => $event->eid));
$form['your-details']['booking_partner_id'] = array(
'#type' => 'select',
'#title' => t('Choose Spouse'),
'#default_value' => $data->booking_partner_id,
'#options' => $partner_options,
);
//add the boyfriend/girlfriend field in here too //convert that into an array
$form['your-details']['booking_bf_gf_nid'] = array( foreach($partners as $row)
'#type' => 'textfield', $partner_options[$row->nid] = $row->booking_firstname . ' ' . $row->booking_lastname;
'#title' => t('Registration ID of Boyfriend/Girlfriend to be placed in the same discussion groups as you.'), //create a select field
'#maxlength' => 15, $form['your-details']['booking_partner_id'] = array(
'#size' => 4, '#type' => 'select',
'#required' => FALSE, '#title' => t('Choose Spouse'),
'#default_value' => !empty($data->booking_bf_gf_nid) ? $data->booking_bf_gf_nid : '', '#default_value' => $data->booking_partner_id,
); '#options' => $partner_options,
} );
//add the boyfriend/girlfriend field in here too
$form['your-details']['booking_bf_gf_nid'] = array(
'#type' => 'textfield',
'#title' => t('Registration ID of Boyfriend/Girlfriend to be placed in the same discussion groups as you.'),
'#maxlength' => 15,
'#size' => 4,
'#required' => FALSE,
'#default_value' => !empty($data->booking_bf_gf_nid) ? $data->booking_bf_gf_nid : '',
);
}
} //end allow couples check
//watchdog('booking', 'Booking registration form payment type: @info. Payment id: !id', //watchdog('booking', 'Booking registration form payment type: @info. Payment id: !id',
// array('@info' => $payment_type_options[$data->booking_payment_id], '!id' => $data->booking_payment_id )); // array('@info' => $payment_type_options[$data->booking_payment_id], '!id' => $data->booking_payment_id ));
@@ -951,7 +947,7 @@ function _booking_validate($node, &$form_state) {
} }
//verify partner id is in the correct format //verify partner id is in the correct format
if ($form_state['booking_partner_id'] != '') if (isset($form_state['booking_partner_id']) && $form_state['booking_partner_id'] != '')
{ {
if (! is_numeric($form_state['booking_partner_id'] )) if (! is_numeric($form_state['booking_partner_id'] ))