You are here

function uc_fedex_address_validate in FedEx Shipping 7.2

Same name and namespace in other branches
  1. 6.2 uc_fedex.aval.inc \uc_fedex_address_validate()

Validates delivery address entered into uc_cart_checkout_form().

See also

uc_cart_checkout_form()

File

./uc_fedex.aval.inc, line 226
FedEx Web Services Rate / Available Services Quote.

Code

function uc_fedex_address_validate($form, &$form_state) {

  // Build $address object from $form_state.
  foreach ($form_state['values']['panes']['delivery'] as $key => $value) {
    if (substr($key, 0, 9) == 'delivery_') {
      $field = substr($key, 9);
      $address->{$field} = $value;
    }
  }
  drupal_set_message('<pre>address to validate: ' . var_export($address, TRUE) . '</pre>');

  // Call FedEx Address Validation Web Service.
  $response = uc_fedex_address_request($address);
  $address_details = $response->AddressResults->ProposedAddressDetails;
  drupal_set_message('<pre>proposed address after validation: ' . var_export($address_details->Address, TRUE) . '</pre>');
  drupal_set_message('<pre>response: ' . var_export($address_details->Address->StreetLines, TRUE) . '</pre>');
  drupal_set_message('<pre>response: ' . var_export($form['panes']['delivery']['delivery_street1'], TRUE) . '</pre>');
  $form_state['values']['panes']['delivery']['delivery_street1'] = 'HELLO';

  // If Address Validation succeedes, rewrite address in canonical form.
  form_set_value($form['panes']['delivery']['delivery_street1'], $address_details->Address->StreetLines, $form_state);
  $form_state['rebuild'] = TRUE;

  //form_set_error('', t("Delivery address has been changed to standard form. Please verify that your delivery address is correct then re-submit this form."));

  // If Address Validation fails, highlight errors.
  //  if (!$response['valid']) form_set_error('', t('Error here!'));
  form_set_error('panes][delivery][delivery_company', t("Company Name doesn't match address"));
}