Filter products for submit includes master variant

This commit is contained in:
Rohan Mitchell
2014-02-11 19:23:27 +11:00
parent e845c0dc06
commit b2ad6c7d57
2 changed files with 39 additions and 17 deletions

View File

@@ -466,6 +466,7 @@ productEditModule.filter "rangeArray", ->
input.push(i) for i in [start..end]
input
filterSubmitProducts = (productsToFilter) ->
filteredProducts = []
if productsToFilter instanceof Object
@@ -475,23 +476,16 @@ filterSubmitProducts = (productsToFilter) ->
filteredVariants = []
if product.hasOwnProperty("variants")
angular.forEach product.variants, (variant) ->
if not variant.deleted_at? and variant.hasOwnProperty("id")
hasUpdateableProperty = false
filteredVariant = {}
filteredVariant.id = variant.id
if variant.hasOwnProperty("on_hand")
filteredVariant.on_hand = variant.on_hand
hasUpdatableProperty = true
if variant.hasOwnProperty("price")
filteredVariant.price = variant.price
hasUpdatableProperty = true
if variant.hasOwnProperty("unit_value")
filteredVariant.unit_value = variant.unit_value
hasUpdatableProperty = true
if variant.hasOwnProperty("unit_description")
filteredVariant.unit_description = variant.unit_description
hasUpdatableProperty = true
filteredVariants.push filteredVariant if hasUpdatableProperty
result = filterSubmitVariant variant
filteredVariant = result.filteredVariant
hasUpdatableProperty = result.hasUpdatableProperty
filteredVariants.push filteredVariant if hasUpdatableProperty
if product.hasOwnProperty("master")
result = filterSubmitVariant product.master
filteredMaster = result.filteredVariant
hasUpdatableProperty = result.hasUpdatableProperty
filteredProduct.master = filteredMaster if hasUpdatableProperty
hasUpdatableProperty = false
filteredProduct.id = product.id
@@ -525,6 +519,26 @@ filterSubmitProducts = (productsToFilter) ->
filteredProducts
filterSubmitVariant = (variant) ->
hasUpdatableProperty = false
filteredVariant = {}
if not variant.deleted_at? and variant.hasOwnProperty("id")
filteredVariant.id = variant.id
if variant.hasOwnProperty("on_hand")
filteredVariant.on_hand = variant.on_hand
hasUpdatableProperty = true
if variant.hasOwnProperty("price")
filteredVariant.price = variant.price
hasUpdatableProperty = true
if variant.hasOwnProperty("unit_value")
filteredVariant.unit_value = variant.unit_value
hasUpdatableProperty = true
if variant.hasOwnProperty("unit_description")
filteredVariant.unit_description = variant.unit_description
hasUpdatableProperty = true
{filteredVariant: filteredVariant, hasUpdatableProperty: hasUpdatableProperty}
addDirtyProperty = (dirtyObjects, objectID, parsedPropertyName, propertyValue) ->
if !dirtyObjects.hasOwnProperty(objectID)
dirtyObjects[objectID] = {}

View File

@@ -171,6 +171,10 @@ describe "filtering products for submission to database", ->
group_buy: null
group_buy_unit_size: null
on_demand: false
master:
id: 2
unit_value: 250
unit_description: "foo"
variants: [
id: 1
on_hand: 2
@@ -191,6 +195,10 @@ describe "filtering products for submission to database", ->
variant_unit_scale: 1
variant_unit_name: 'loaf'
available_on: available_on
master:
id: 2
unit_value: 250
unit_description: "foo"
variants_attributes: [
id: 1
on_hand: 2