Merge pull request #2390 from luisramos0/buk_prod_edit_rounding_issue

fixed number rounding issue in product bulk edit
This commit is contained in:
Pau Pérez Fabregat
2018-07-16 16:44:59 +02:00
committed by GitHub
2 changed files with 13 additions and 1 deletions

View File

@@ -66,8 +66,13 @@ angular.module("ofn.admin").factory "BulkProducts", (PagedFetcher, dataFetcher,
variantUnitValue: (product, variant) ->
if variant.unit_value?
if product.variant_unit_scale
variant.unit_value / product.variant_unit_scale
@divideAsInteger variant.unit_value, product.variant_unit_scale
else
variant.unit_value
else
null
# forces integer division to avoid javascript floating point imprecision
# using one billion as the multiplier so that it works for numbers with up to 9 decimal places
divideAsInteger: (a, b) ->
(a * 1000000000) / (b * 1000000000)

View File

@@ -160,6 +160,13 @@ describe "BulkProducts service", ->
BulkProducts.loadVariantUnitValues product, product.variants[0]
expect(product.variants[0].unit_value_with_description).toEqual '2.5'
it "converts values from base value to chosen unit without breaking precision", ->
product =
variant_unit_scale: 0.001
variants: [{id: 1, unit_value: 0.35}]
BulkProducts.loadVariantUnitValues product, product.variants[0]
expect(product.variants[0].unit_value_with_description).toEqual '350'
it "displays a unit_value of zero", ->
product =
variant_unit_scale: 1.0