You are here

public static function UcPrice::valueCallback in Ubercart 8.4

File

uc_store/src/Element/UcPrice.php, line 48

Class

UcPrice
Provides a form element for Ubercart price input.

Namespace

Drupal\uc_store\Element

Code

public static function valueCallback(&$element, $input, FormStateInterface $form_state) {
  if ($input === FALSE && !empty($element['#default_value'])) {
    $exact = rtrim(rtrim(number_format($element['#default_value'], 6, '.', ''), '0'), '.');
    $round = number_format($element['#default_value'], \Drupal::config('uc_store.settings')
      ->get('currency.precision'), '.', '');
    return $exact == rtrim($round, '0') ? $round : $exact;
  }
  elseif (empty($input) && empty($element['#required']) && !empty($element['#empty_zero'])) {

    // Empty non-required prices should be treated as zero.
    return 0;
  }
}