diff --git a/app/Import/Transformer/BaseTransformer.php b/app/Import/Transformer/BaseTransformer.php index ee9b137dcff5..81d38ba75e75 100644 --- a/app/Import/Transformer/BaseTransformer.php +++ b/app/Import/Transformer/BaseTransformer.php @@ -315,14 +315,11 @@ class BaseTransformer public function getFloat($data, $field) { if (array_key_exists($field, $data)) { - //$number = preg_replace('/[^0-9-.]+/', '', $data[$field]); return Number::parseFloat($data[$field]); - } else { - //$number = 0; - return 0; - } - - // return Number::parseFloat($number); + } + + return 0; + } /** diff --git a/app/Utils/Number.php b/app/Utils/Number.php index 67568d6da81b..2fa7e64a462a 100644 --- a/app/Utils/Number.php +++ b/app/Utils/Number.php @@ -95,6 +95,14 @@ class Number */ public static function parseFloat($value) { + if(!$value) + return 0; + + $multiplier = false; + + if(substr($value, 0,1) == '-') + $multiplier = -1; + // convert "," to "." $s = str_replace(',', '.', $value); @@ -108,7 +116,9 @@ class Number // remove all separators from first part and keep the end $s = str_replace('.', '', substr($s, 0, -3)).substr($s, -3); - // return float + if($multiplier) + $s = floatval($s)*-1; + return (float) $s; }