function commerce_avatax_delete_avatax_line_items in Drupal Commerce Connector for AvaTax 7.3
Same name and namespace in other branches
- 7.4 commerce_avatax.rules.inc \commerce_avatax_delete_avatax_line_items()
Deletes all AvaTax line items on an order.
Parameters
$order: The order object to delete the avatax line items from.
2 calls to commerce_avatax_delete_avatax_line_items()
- commerce_avatax_calculate_sales_tax in ./
commerce_avatax.module - Calculate sales tax using regular web site checkout.
- commerce_avatax_commerce_order_update in ./
commerce_avatax.module - Implements hook_commerce_order_update().
File
- ./
commerce_avatax.module, line 428 - Calculate Sales Tax using AvaTax Calc service from Avalara, Inc.
Code
function commerce_avatax_delete_avatax_line_items($order) {
$order_wrapper = entity_metadata_wrapper('commerce_order', $order);
// When deleting more than one line item, metadata_wrapper will give problems
// if deleting while looping through the line items. So first remove from order
// and then delete the line items.
$line_item_ids = array();
foreach ($order_wrapper->commerce_line_items as $delta => $line_item_wrapper) {
// If this line item is an avatax saas line item...
if ($line_item_wrapper->type
->value() == 'avatax') {
// Store its ID for later deletion and remove the reference from the line
// item reference field.
$line_item_ids[] = $line_item_wrapper->line_item_id
->value();
$order_wrapper->commerce_line_items
->offsetUnset($delta);
}
}
// If we found any avatax line items...
if (!empty($line_item_ids)) {
// First save the order to update the line item reference field value.
commerce_order_save($order);
// Then delete the line items.
commerce_line_item_delete_multiple($line_item_ids);
}
}