diff --git a/app/Import/Transformer/BaseTransformer.php b/app/Import/Transformer/BaseTransformer.php index 03928b2fa698..78de66a65ed9 100644 --- a/app/Import/Transformer/BaseTransformer.php +++ b/app/Import/Transformer/BaseTransformer.php @@ -316,7 +316,7 @@ class BaseTransformer { if (array_key_exists($field, $data)) { //$number = preg_replace('/[^0-9-.]+/', '', $data[$field]); - return Number::parseStringFloat($data[$field]); + return Number::parseFloat($data[$field]); } else { //$number = 0; return 0; @@ -334,7 +334,7 @@ class BaseTransformer public function getFloatOrOne($data, $field) { if (array_key_exists($field, $data)) { - return Number::parseStringFloat($data[$field]) > 0 ? Number::parseStringFloat($data[$field]) : 1; + return Number::parseFloat($data[$field]) > 0 ? Number::parseFloat($data[$field]) : 1; } return 1; diff --git a/tests/Unit/NumberTest.php b/tests/Unit/NumberTest.php index 8cd7f0ccaff4..cb77451996d0 100644 --- a/tests/Unit/NumberTest.php +++ b/tests/Unit/NumberTest.php @@ -20,6 +20,34 @@ use Tests\TestCase; */ class NumberTest extends TestCase { + + public function testConvertDecimalCommaFloats() + { + $value = '22,00'; + + $res = Number::parseFloat($value); + + $this->assertEquals(22.0, $res); + + $value = '22.00'; + + $res = Number::parseFloat($value); + + $this->assertEquals(22.0, $res); + + $value = '1,000.00'; + + $res = Number::parseFloat($value); + + $this->assertEquals(1000.0, $res); + + $value = '1.000,00'; + + $res = Number::parseFloat($value); + + $this->assertEquals(1000.0, $res); + + } public function testFloatPrecision() { $value = 1.1; diff --git a/tests/Unit/WithTypeHelpersTest.php b/tests/Unit/WithTypeHelpersTest.php index d5ec9faeecc2..0bbe5f6acba4 100644 --- a/tests/Unit/WithTypeHelpersTest.php +++ b/tests/Unit/WithTypeHelpersTest.php @@ -20,7 +20,6 @@ use Tests\TestCase; class WithTypeHelpersTest extends TestCase { - use DatabaseMigrations; public function testIsImageHelper(): void {