diff --git a/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee b/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee index df4cb42df4..77960b295c 100644 --- a/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee +++ b/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee @@ -1,5 +1,5 @@ angular.module("admin.products") - .controller "unitsCtrl", ($scope, VariantUnitManager, OptionValueNamer, UnitPrices) -> + .controller "unitsCtrl", ($scope, VariantUnitManager, OptionValueNamer, UnitPrices, unlocalizeCurrencyFilter) -> $scope.product = { master: {} } $scope.product.master.product = $scope.product $scope.placeholder_text = "" @@ -26,9 +26,9 @@ angular.module("admin.products") $scope.processUnitValueWithDescription = -> if $scope.product.master.hasOwnProperty("unit_value_with_description") - match = $scope.product.master.unit_value_with_description.match(/^([\d\.]+(?= *|$)|)( *)(.*)$/) + match = $scope.product.master.unit_value_with_description.match(/^([\d\.,]+(?= *|$)|)( *)(.*)$/) if match - $scope.product.master.unit_value = parseFloat(match[1]) + $scope.product.master.unit_value = unlocalizeCurrencyFilter(match[1]) $scope.product.master.unit_value = null if isNaN($scope.product.master.unit_value) $scope.product.master.unit_value *= $scope.product.variant_unit_scale if $scope.product.master.unit_value && $scope.product.variant_unit_scale $scope.product.master.unit_description = match[3] diff --git a/spec/javascripts/unit/admin/products/units_controller_spec.js.coffee b/spec/javascripts/unit/admin/products/units_controller_spec.js.coffee index 7e7ea03888..72046716cc 100644 --- a/spec/javascripts/unit/admin/products/units_controller_spec.js.coffee +++ b/spec/javascripts/unit/admin/products/units_controller_spec.js.coffee @@ -75,3 +75,21 @@ describe "unitsCtrl", -> scope.processUnitValueWithDescription() expect(scope.product.master.unit_value).toEqual 123 expect(scope.product.master.unit_description).toEqual "54 boxes" + + it "handle final point as decimal separator", -> + scope.product.master.unit_value_with_description = "22.22" + scope.processUnitValueWithDescription() + expect(scope.product.master.unit_value).toEqual 22.22 + expect(scope.product.master.unit_description).toEqual "" + + it "handle comma as decimal separator", -> + scope.product.master.unit_value_with_description = "22,22" + scope.processUnitValueWithDescription() + expect(scope.product.master.unit_value).toEqual 22.22 + expect(scope.product.master.unit_description).toEqual "" + + it "handle comma as decimal separator with description", -> + scope.product.master.unit_value_with_description = "22,22 things" + scope.processUnitValueWithDescription() + expect(scope.product.master.unit_value).toEqual 22.22 + expect(scope.product.master.unit_description).toEqual "things"