You are here

function commerce_vat_order_rate in Commerce VAT 7

1 call to commerce_vat_order_rate()
commerce_vat_rules_order_rate in ./commerce_vat.rules.inc
Rules action: loads and applies a vat rate to the given line item.

File

./commerce_vat.module, line 634
Defines VAT rates and Rules integration for configuring vat rules for applicability and display.

Code

function commerce_vat_order_rate($order) {
  $component_types = commerce_vat_commerce_price_component_type_info();
  $order_wrapper = entity_metadata_wrapper('commerce_order', $order);
  $rates = array();
  foreach ($order_wrapper->commerce_line_items as $line_item_wrapper) {
    if ($line_item_wrapper->type
      ->value() != 'shipping') {
      $commerce_total = $line_item_wrapper->commerce_total
        ->value();
      foreach ($commerce_total['data']['components'] as $component) {
        $component_name = explode('|', $component['name']);
        if ($component_name[0] == 'vat') {
          $rates[$component_name[1]] = $component['price']['data']['vat_rate_info']['rate'];
        }
      }
    }
  }
  if (!empty($rates)) {
    arsort($rates);
    $rate = key($rates);
  }
  else {
    $rate = FALSE;
  }
  return $rate;
}