diff --git a/application/controllers/Giftcards.php b/application/controllers/Giftcards.php index 9663d279d..4b37366dd 100644 --- a/application/controllers/Giftcards.php +++ b/application/controllers/Giftcards.php @@ -130,13 +130,8 @@ class Giftcards extends Secure_Controller public function ajax_check_number_giftcard() { - $value = $this->input->post('giftcard_amount'); - $parsed_value = parse_decimals($value); - if(strcmp(strval($parsed_value), strval($value)) != 0) - { - $parsed_value = FALSE; - } - echo json_encode(array('success' => !empty($parsed_value), 'giftcard_amount' => $parsed_value)); + $parsed_value = parse_decimals($this->input->post('giftcard_amount')); + echo json_encode(array('success' => $parsed_value !== FALSE, 'giftcard_amount' => $parsed_value)); } public function delete() diff --git a/application/helpers/locale_helper.php b/application/helpers/locale_helper.php index 68087e4c5..d85351808 100644 --- a/application/helpers/locale_helper.php +++ b/application/helpers/locale_helper.php @@ -308,7 +308,10 @@ function parse_decimals($number) } $config = get_instance()->config; - $fmt = new \NumberFormatter( $config->item('number_locale'), \NumberFormatter::DECIMAL ); + $fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::DECIMAL); + + $fmt->setAttribute(\NumberFormatter::FRACTION_DIGITS, $config->item('currency_decimals')); + if (empty($config->item('thousands_separator'))) { $fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, ''); @@ -318,7 +321,7 @@ function parse_decimals($number) { return $fmt->parse($number); } - catch (Exception $e) + catch(Exception $e) { return FALSE; }