diff --git a/app/assets/javascripts/admin/products/services/unit_prices.js.coffee b/app/assets/javascripts/admin/products/services/unit_prices.js.coffee new file mode 100644 index 0000000000..0867d8deb8 --- /dev/null +++ b/app/assets/javascripts/admin/products/services/unit_prices.js.coffee @@ -0,0 +1,25 @@ +angular.module("admin.products").factory "UnitPrices", (VariantUnitManager) -> + class UnitPrices + @price: (price, scale, unit_type, unit_value) -> + price / @denominator(unit_value, variant_unit) + + @denominator: (scale, unit_type, unit_value) -> + unit = @unit(scale, unit_type) + if unit == "lb" + unit_value / 453.6 + else if unit == "kg" + unit_value / 1000 + else + unit_value + + @unit: (scale, unit_type, variant_unit_name = '') -> + if VariantUnitManager.systemOfMeasurement(scale, unit_type) == "imperial" + "lb" + else if unit_type == "weight" + "kg" + else if unit_type == "volume" + "L" + else if variant_unit_name.length > 0 + variant_unit_name + else + "item" diff --git a/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee b/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee index 7875347ac8..31a3a14bd9 100644 --- a/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee +++ b/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee @@ -67,3 +67,9 @@ angular.module("admin.products").factory "VariantUnitManager", (availableUnits) scaleSystem = @units[unitType][scale]['system'] (parseFloat(scale) for scale, scaleInfo of @units[unitType] when scaleInfo['system'] == scaleSystem).sort (a, b) -> a - b + + @systemOfMeasurement: (scale, unitType) -> + if @units[unitType][scale] + @units[unitType][scale]['system'] + else + 'custom'