function commerce_avatax_order_admin_calculate_tax_form_submit in Drupal Commerce Connector for AvaTax 7.5
Form submit callback for commerce_avatax_order_admin_calculate_tax_form().
File
- includes/
commerce_avatax.admin.inc, line 494 - Administrative callbacks for the Commerce Avatax module.
Code
function commerce_avatax_order_admin_calculate_tax_form_submit($form, &$form_state) {
if (!($order = commerce_order_load($form_state['values']['order_id']))) {
return;
}
$order_wrapper = entity_metadata_wrapper('commerce_order', $order);
// Store a copy of the original order to see if it changes later.
$original_order = clone $order_wrapper
->value();
// Check if the request didn't fail.
if (!($request = commerce_avatax_calculate_tax($order_wrapper)) || empty($request['response'])) {
drupal_set_message(t('The taxes could not be calculated for this order.'), 'error');
$form_state['redirect'] = 'admin/commerce/orders/' . $order->order_id . '/edit';
return;
}
$response = $request['response'];
// Save the order if the tax calculation was performed.
if (!empty($response['success'])) {
drupal_set_message(t('Taxes have been applied and the order updated.'));
}
else {
$error = t('Unknown error.');
// Display a detailed error message if available.
if (!empty($response['error'])) {
$error = '';
if (!empty($response['error']['message'])) {
$error .= filter_xss_admin($response['error']['message']) . ' ';
}
if (!empty($response['error']['details'])) {
foreach ($response['error']['details'] as $detail) {
if (!empty($detail['message'])) {
$error .= filter_xss_admin("{$detail['code']} ({$detail['number']}): {$detail['message']}");
}
}
}
}
drupal_set_message(t('The taxes could not be calculated for this order (!error)', array(
'!error' => $error,
)), 'error');
}
// Save the order once here if it has changed.
if ($order_wrapper
->value() != $original_order) {
commerce_order_save($order_wrapper
->value());
}
$form_state['redirect'] = 'admin/commerce/orders/' . $order->order_id . '/edit';
}