diff --git a/app/assets/javascripts/admin/bulk_product_update.js.coffee b/app/assets/javascripts/admin/bulk_product_update.js.coffee index 711db5b93e..cccee68bee 100644 --- a/app/assets/javascripts/admin/bulk_product_update.js.coffee +++ b/app/assets/javascripts/admin/bulk_product_update.js.coffee @@ -261,7 +261,9 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout product = BulkProducts.find product.id variant.unit_value = parseFloat(match[1].replace(",", ".")) variant.unit_value = null if isNaN(variant.unit_value) - variant.unit_value *= product.variant_unit_scale if variant.unit_value && product.variant_unit_scale + if variant.unit_value && product.variant_unit_scale + variant_unit_value = variant.unit_value * product.variant_unit_scale + variant.unit_value = parseFloat(variant_unit_value.toFixed(8)) variant.unit_description = match[3] $scope.incrementLimit = -> diff --git a/app/assets/javascripts/admin/services/bulk_products.js.coffee b/app/assets/javascripts/admin/services/bulk_products.js.coffee index 02b1b60e35..0ac0d02af0 100644 --- a/app/assets/javascripts/admin/services/bulk_products.js.coffee +++ b/app/assets/javascripts/admin/services/bulk_products.js.coffee @@ -65,7 +65,8 @@ angular.module("ofn.admin").factory "BulkProducts", (ProductResource, dataFetche variantUnitValue: (product, variant) -> if variant.unit_value? if product.variant_unit_scale - @divideAsInteger variant.unit_value, product.variant_unit_scale + variant_unit_value = @divideAsInteger variant.unit_value, product.variant_unit_scale + parseFloat(variant_unit_value.toFixed(8)) else variant.unit_value else diff --git a/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee b/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee index 09b0ce3ecd..f3499e21d9 100644 --- a/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee +++ b/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee @@ -676,6 +676,15 @@ describe "AdminProductEditCtrl", -> unit_description: '' unit_value_with_description: "250,5" + it "rounds off the unit_value upto 8 decimal places and removes the trailing zeroes", -> + testProduct = {id: 123, variant_unit_scale: 28.35} + testVariant = {unit_value_with_description: "1234.5"} + $scope.packVariant(testProduct, testVariant) + expect(testVariant).toEqual + unit_value: 34998.075 + unit_description: '' + unit_value_with_description: "1234.5" + describe "filtering products", -> beforeEach -> diff --git a/spec/javascripts/unit/admin/services/bulk_products_spec.js.coffee b/spec/javascripts/unit/admin/services/bulk_products_spec.js.coffee index ece9d1f244..cb87cc8f91 100644 --- a/spec/javascripts/unit/admin/services/bulk_products_spec.js.coffee +++ b/spec/javascripts/unit/admin/services/bulk_products_spec.js.coffee @@ -152,6 +152,11 @@ describe "BulkProducts service", -> variant = {unit_value: 5} expect(BulkProducts.variantUnitValue(product, variant)).toEqual 5000 + it "returns the scaled value rounded off upto 8 decimal points removing the trailing zeroes", -> + product = {variant_unit_scale: 28.35} + variant = {unit_value: 1234.5} + expect(BulkProducts.variantUnitValue(product, variant)).toEqual 43.54497354 + it "returns the unscaled value when the product has no scale", -> product = {} variant = {unit_value: 5}