mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-01 02:03:22 +00:00
On load, scale from base unit to chosen unit (eg. g to kg)
This commit is contained in:
@@ -190,7 +190,15 @@ productsApp.controller "AdminBulkProductsCtrl", [
|
||||
|
||||
if product.variants
|
||||
for variant in product.variants
|
||||
variant.unit_value_with_description = "#{variant.unit_value || ''} #{variant.unit_description || ''}".trim()
|
||||
unit_value = $scope.variantUnitValue product, variant
|
||||
variant.unit_value_with_description = "#{unit_value || ''} #{variant.unit_description || ''}".trim()
|
||||
|
||||
|
||||
$scope.variantUnitValue = (product, variant) ->
|
||||
if variant.unit_value
|
||||
variant.unit_value / product.variant_unit_scale
|
||||
else
|
||||
null
|
||||
|
||||
|
||||
$scope.updateOnHand = (product) ->
|
||||
|
||||
@@ -395,6 +395,7 @@ describe "AdminBulkProductsCtrl", ->
|
||||
describe "setting variant unit_value_with_description", ->
|
||||
it "sets by combining unit_value and unit_description", ->
|
||||
product =
|
||||
variant_unit_scale: 1.0
|
||||
variants: [{id: 1, unit_value: 1, unit_description: '(bottle)'}]
|
||||
scope.loadVariantUnit product
|
||||
expect(product.variants[0]).toEqual
|
||||
@@ -405,16 +406,37 @@ describe "AdminBulkProductsCtrl", ->
|
||||
|
||||
it "uses unit_value when description is missing", ->
|
||||
product =
|
||||
variant_unit_scale: 1.0
|
||||
variants: [{id: 1, unit_value: 1}]
|
||||
scope.loadVariantUnit product
|
||||
expect(product.variants[0].unit_value_with_description).toEqual '1'
|
||||
|
||||
it "uses unit_description when value is missing", ->
|
||||
product =
|
||||
variant_unit_scale: 1.0
|
||||
variants: [{id: 1, unit_description: 'Small'}]
|
||||
scope.loadVariantUnit product
|
||||
expect(product.variants[0].unit_value_with_description).toEqual 'Small'
|
||||
|
||||
it "converts values from base value to chosen unit", ->
|
||||
product =
|
||||
variant_unit_scale: 1000.0
|
||||
variants: [{id: 1, unit_value: 2500}]
|
||||
scope.loadVariantUnit product
|
||||
expect(product.variants[0].unit_value_with_description).toEqual '2.5'
|
||||
|
||||
|
||||
describe "calculating the scaled unit value for a variant", ->
|
||||
it "returns the scaled value when variant has a unit_value", ->
|
||||
product = {variant_unit_scale: 0.001}
|
||||
variant = {unit_value: 5}
|
||||
expect(scope.variantUnitValue(product, variant)).toEqual 5000
|
||||
|
||||
it "returns null when the variant has no unit_value", ->
|
||||
product = {}
|
||||
variant = {}
|
||||
expect(scope.variantUnitValue(product, variant)).toEqual null
|
||||
|
||||
|
||||
describe "getting on_hand counts when products have variants", ->
|
||||
p1 = undefined
|
||||
|
||||
Reference in New Issue
Block a user