Enhance state verification in regn form

This commit is contained in:
2015-09-17 10:22:21 +10:00
parent 270dd5b43f
commit 96f3122b93
2 changed files with 47 additions and 34 deletions

View File

@@ -1160,44 +1160,57 @@ function _booking_validate($node, &$form_state) {
form_set_error('booking_dob', t('Unfortunately you are too young to attend !event.',
array ('!event' => variable_get('booking_event_name','this event'))));
}
//check the terms and conditions have been agreed to
if ($form_state['booking_agreement'] == 0)
form_set_error('booking_agreement', t('You must read and agree with the aims and expectations prior to submitting this form.'));
//check the medicare number for people in Australia
if (variable_get('booking_enable_medicare', 1) == 1 && $form_state['booking_country'] == 'Australia')
{
//proper validation routine at http://dyball.wordpress.com/2007/12/05/validation-of-medicare-numbers/
if (! _valid_medicare_number($form_state['booking_medicare']))
{
if (variable_get('booking_enforce_medicare_verification', 1) == 1) {
form_set_error('booking_medicare',
t('You have entered an invalid medicare number. Please check your medicare card and re-enter the number. ' .
'If you believe this to be incorrect, please !contact.',
array('!contact' => l('send us an email', 'mailto:' . variable_get('booking_contact_email') .
'?subject=Invalid Medicare Number'))
)
);
}
else {
drupal_set_message(
t('You have entered an invalid medicare number. Please ensure you check your medicare card' .
' and send us the correct information via !contact.',
array('!contact' => l('email', 'mailto:' . variable_get('booking_contact_email') .
'?subject=Invalid Medicare Number'))
), 'error', FALSE
);
}
}
//proper validation routine at http://dyball.wordpress.com/2007/12/05/validation-of-medicare-numbers/
if ( (variable_get('booking_enforce_medicare_verification', 1) == 1) && (! _valid_medicare_number($form_state['booking_medicare'])) )
{
form_set_error(
'booking_medicare',
t('You have entered an invalid medicare number. Please check your medicare card and re-enter the number. If you believe this to be incorrect, please !contact.',
array('!contact' => l('send us an email', 'mailto:' . variable_get('booking_contact_email') . '?subject=Invalid Medicare Number'))
)
);
}
elseif ( (variable_get('booking_enforce_medicare_verification', 1) == 0) && (! _valid_medicare_number($form_state['booking_medicare'])) )
{
drupal_set_message(
t('You have entered an invalid medicare number. Please ensure you check your medicare card and send us the correct information via !contact.',
array('!contact' => l('email', 'mailto:' . variable_get('booking_contact_email') . '?subject=Invalid Medicare Number'))
),
'error', FALSE
);
}
}
//verify state information with the new few checks
//make sure state field is not blank
if ($form_state['booking_state'] == '_blank_' )
{
form_set_error('booking_state',
t('You must enter your State in the address section of the Contact details. ' .
'Please choose a state of Other and specify N/A if your country does not have states, or choose NZ if you reside in New Zealand.'));
}
//verify international address has updated the state field
if ((strcasecmp($form_state['booking_country'], 'Australia') !== 0) && (strcasecmp($form_state['booking_state'], 'Other') !== 0) && (strcasecmp($form_state['booking_state'], 'NZ') !== 0))
if ((strcasecmp($form_state['booking_country'], 'New Zealand') == 0) && (strcasecmp($form_state['booking_state'], 'NZ') !== 0))
{
form_set_error('booking_state', t('You must enter your State in the address section of the Contact details. Please choose a state of Other and specify N/A if your country does not have states.'));
form_set_error('booking_state',
t('You have indicated you reside in New Zealand. Please select NZ as your state.'));
}
elseif ((strcasecmp($form_state['booking_country'], 'Australia') !== 0) && (strcasecmp($form_state['booking_state'], 'Other') !== 0) && (strcasecmp($form_state['booking_state'], 'NZ') !== 0))
{
form_set_error('booking_state',
t('You must enter your State in the address section of the Contact details. Please choose a state of Other and specify N/A if your country does not have states.'));
}
//verify that a state has been entered if "Other" was selected
if (($form_state['booking_state'] == 'Other' ) && ($form_state['booking_other_state'] == ''))
form_set_error('booking_other_state', t('You must enter your State in the address section of the Contact details. Please put N/A if your country does not have states.'));
//verify passport number
if (variable_get('booking_enable_passport', 0) == 1 && $form_state['booking_country'] == 'Australia')
{
@@ -1223,14 +1236,13 @@ function _booking_validate($node, &$form_state) {
if (($form_state['booking_mobile'] != '' ) && ($form_state['booking_country'] == 'Australia') && (!_valid_australian_mobile_number($form_state['booking_mobile'])))
form_set_error('booking_mobile', t('You have entered an invalid mobile phone number.'));
//verify guardian phone number(s)
if (($form_state['booking_guardian_phone'] != '' ) && (!_valid_phone_number($form_state['booking_guardian_phone'])))
form_set_error('booking_guardian_phone', t('You have entered an contact phone number for your emergency contact.'));
//verify that a state has been entered if "Other" was selected
if (($form_state['booking_state'] == 'Other' ) && ($form_state['booking_other_state'] == ''))
form_set_error('booking_other_state', t('You must enter your State in the address section of the Contact details. Please put N/A if your country does not have states.'));
//check the terms and conditions have been agreed to. Do this one last so it stands out more
if ($form_state['booking_agreement'] == 0)
form_set_error('booking_agreement', t('You must read and agree with the aims and expectations prior to submitting this form.'));
//if there are any errors then log the data the user entered so we can check it later
if (form_get_errors()) {