From 8e45b758ba80d36eeb5bfba6d3a078d8048439a7 Mon Sep 17 00:00:00 2001 From: saunmanoj888 Date: Wed, 19 Oct 2022 22:59:28 +0530 Subject: [PATCH] Fix unit value UI issue --- .../javascripts/admin/bulk_product_update.js.coffee | 4 +++- .../javascripts/admin/services/bulk_products.js.coffee | 3 ++- .../unit/admin/bulk_product_update_spec.js.coffee | 9 +++++++++ .../unit/admin/services/bulk_products_spec.js.coffee | 5 +++++ 4 files changed, 19 insertions(+), 2 deletions(-) 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}