You are here

function commerce_vat_countries in Commerce VAT 7

Returns an array of vat country objects keyed by name.

5 calls to commerce_vat_countries()
commerce_vat_calculate_place_of_supply in ./commerce_vat.module
Calculates the Country.
commerce_vat_default_rules_configuration in ./commerce_vat.rules_defaults.inc
Implements hook_default_rules_configuration().
commerce_vat_field_commerce_product_type_insert in commerce_vat_field/commerce_vat_field.module
Implements hook_commerce_product_type_insert().
commerce_vat_field_flush_caches in commerce_vat_field/commerce_vat_field.module
Implements hook_flush_caches().
commerce_vat_reference_field_settings_form in commerce_vat_reference/commerce_vat_reference.module
Implements hook_field_settings_form().
1 string reference to 'commerce_vat_countries'
commerce_vat_countries_reset in ./commerce_vat.module
Resets the cached list of vat rates.

File

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

Code

function commerce_vat_countries() {

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

  // If it did not exist, fetch the types now.
  if (!isset($vat_countries)) {

    // Necessary for country_get_list().
    require_once DRUPAL_ROOT . '/includes/locale.inc';
    $countries = country_get_list();
    $vat_countries = array();

    // Find vat rates defined by hook_commerce_vat_rate_info().
    foreach (module_implements('commerce_vat_country_info') as $module) {
      foreach (module_invoke($module, 'commerce_vat_country_info') as $iso2 => $vat_country) {

        // Initialize vat rate properties if necessary.
        $defaults = array(
          'title' => $countries[drupal_strtoupper($iso2)],
          'iso2' => drupal_strtoupper($iso2),
          'rules_component_profile' => 'commerce_vat_profile_address_' . drupal_strtolower($iso2),
          'rules_component_place' => 'commerce_vat_place_of_supply_' . drupal_strtolower($iso2),
          'rules_component' => 'commerce_vat_' . drupal_strtolower($iso2),
          'default_profile_rules_component' => TRUE,
          'default_place_rules_component' => TRUE,
          'default_rules_component' => TRUE,
          'default_field' => TRUE,
          'module' => $module,
        );
        $vat_countries[$iso2] = array_merge($defaults, $vat_country);
      }
    }

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