You are here

function commerce_vat_rates in Commerce VAT 7

Returns an array of vat rate objects keyed by name.

10 calls to commerce_vat_rates()
commerce_vat_calculate_rates in ./commerce_vat.module
Calculates vates of a particular type by invoking any components that match the vat type.
commerce_vat_commerce_price_component_type_info in ./commerce_vat.module
Implements hook_commerce_price_component_type_info().
commerce_vat_country_rates in ./commerce_vat.module
Returns vat rates for a country.
commerce_vat_default_rules_configuration in ./commerce_vat.rules_defaults.inc
Implements hook_default_rules_configuration().
commerce_vat_field_default_rules_configuration_alter in commerce_vat_field/commerce_vat_field.rules_defaults.inc
Implimentation of hook_default_rules_configuration_alter().

... See full list

1 string reference to 'commerce_vat_rates'
commerce_vat_rates_reset in ./commerce_vat.module
Resets the cached list of vat rates.

File

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

Code

function commerce_vat_rates() {

  // First check the static cache for a vat rates array.
  $vat_rates =& drupal_static(__FUNCTION__);

  // If it did not exist, fetch the types now.
  if (!isset($vat_rates)) {
    $vat_rates = array();

    // Find vat rates defined by hook_commerce_vat_rate_info().
    foreach (module_implements('commerce_vat_rate_info') as $module) {
      foreach (module_invoke($module, 'commerce_vat_rate_info') as $name => $vat_rate) {

        // Initialize vat rate properties if necessary.
        $defaults = array(
          'title' => $name,
          'description' => '',
          'rates' => array(),
          'country' => '',
          'rules_component' => 'commerce_vat_rate_' . $name,
          'default_rules_component' => TRUE,
          'price_component' => 'vat|' . $name,
          'calculation_callback' => 'commerce_vat_rate_calculate',
          'module' => $module,
        );
        $vat_rates[$name] = array_merge($defaults, $vat_rate);
      }
    }

    // Last allow the info to be altered by other modules.
    drupal_alter('commerce_vat_rate_info', $vat_rates);
  }
  return $vat_rates;
}