function _commerce_price_rules_data_ui_element_validate in Commerce Core 7
Validates data entered via a price input form in a Rules condition or action.
1 string reference to '_commerce_price_rules_data_ui_element_validate'
- RulesDataUICommercePrice::inputForm in modules/price/ commerce_price.rules.inc 
- Constructs the direct input form.
File
- modules/price/ commerce_price.module, line 1123 
- Defines the Price field with widgets and formatters used to add prices with currency codes to various Commerce entities.
Code
function _commerce_price_rules_data_ui_element_validate($element, &$form_state, $form) {
  $value = drupal_array_get_nested_value($form_state['values'], $element['#parents']);
  $value['amount'] = trim($value['amount']);
  $currency = commerce_currency_load($value['currency_code']);
  // Required elements don't work on these input forms, so instead catch
  // an empty value here and require a numeric amount.
  if ($value['amount'] == '') {
    form_error($element, t('A numeric amount is required for setting and comparing against price field data.'));
  }
  // Only convert price amount to major units if we have a numeric value,
  // otherwise throw an error.
  if (is_numeric($value['amount'])) {
    // Ensure price amount is formatted correctly in major units according to the
    // currency code.
    $minor_unit_amount = number_format($value['amount'], $currency['decimals'], '.', '');
    // Now that the minor unit amount expected by the currency, we can safely
    // convert back to major units for storage.
    $value['amount'] = commerce_currency_decimal_to_amount($minor_unit_amount, $value['currency_code']);
    form_set_value($element, $value, $form_state);
  }
  else {
    form_error($element, t('Price amount must be numeric.'));
  }
}