From ee8454bd2ccb147cbfc7f194a7aa1b83418265fe Mon Sep 17 00:00:00 2001 From: saunmanoj888 Date: Fri, 21 Oct 2022 21:30:00 +0530 Subject: [PATCH] Use js-big-decimal package for calculation --- .../javascripts/admin/bulk_product_update.js.coffee | 3 +-- .../javascripts/admin/services/bulk_products.js.coffee | 2 +- .../unit/admin/bulk_product_update_spec.js.coffee | 8 ++++---- .../unit/admin/services/bulk_products_spec.js.coffee | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/admin/bulk_product_update.js.coffee b/app/assets/javascripts/admin/bulk_product_update.js.coffee index cccee68bee..f23bae55ad 100644 --- a/app/assets/javascripts/admin/bulk_product_update.js.coffee +++ b/app/assets/javascripts/admin/bulk_product_update.js.coffee @@ -262,8 +262,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout variant.unit_value = parseFloat(match[1].replace(",", ".")) variant.unit_value = null if isNaN(variant.unit_value) 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_value = parseFloat(bigDecimal.multiply(variant.unit_value, product.variant_unit_scale, 2)) 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 0ac0d02af0..2504170023 100644 --- a/app/assets/javascripts/admin/services/bulk_products.js.coffee +++ b/app/assets/javascripts/admin/services/bulk_products.js.coffee @@ -66,7 +66,7 @@ angular.module("ofn.admin").factory "BulkProducts", (ProductResource, dataFetche if variant.unit_value? if product.variant_unit_scale variant_unit_value = @divideAsInteger variant.unit_value, product.variant_unit_scale - parseFloat(variant_unit_value.toFixed(8)) + parseFloat(bigDecimal.round(variant_unit_value, 2)) 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 887609f414..d154b36f17 100644 --- a/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee +++ b/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee @@ -676,14 +676,14 @@ 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", -> + it "rounds off the unit_value upto 2 decimal places", -> testProduct = {id: 123, variant_unit_scale: 28.35} - testVariant = {unit_value_with_description: "1234.5"} + testVariant = {unit_value_with_description: "1234.567"} $scope.packVariant(testProduct, testVariant) expect(testVariant).toEqual - unit_value: 1234.5 + unit_value: 1234.57 unit_description: '' - unit_value_with_description: "1234.5" + unit_value_with_description: "1234.567" describe "filtering products", -> 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 cb87cc8f91..b45a37f995 100644 --- a/spec/javascripts/unit/admin/services/bulk_products_spec.js.coffee +++ b/spec/javascripts/unit/admin/services/bulk_products_spec.js.coffee @@ -152,10 +152,10 @@ 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", -> + it "returns the scaled value rounded off upto 2 decimal points", -> product = {variant_unit_scale: 28.35} variant = {unit_value: 1234.5} - expect(BulkProducts.variantUnitValue(product, variant)).toEqual 43.54497354 + expect(BulkProducts.variantUnitValue(product, variant)).toEqual 43.54 it "returns the unscaled value when the product has no scale", -> product = {}