Fix: Recipe quantity was not having any effect or being updated.

This commit is contained in:
Amritanshu 2014-04-30 13:42:31 +05:30
parent a5ec16b644
commit 1f8b6f0c63
1 changed files with 10 additions and 5 deletions

View File

@ -85,7 +85,7 @@ def save(request):
menu_item = MenuItem(0, name, units=units, is_semi=is_semi, fraction=fraction, fraction_units=fraction_units,
product_group_id=product_group_id, ledger_id=Ledger.all_purchases(),
price=recipe_cost, is_active=True).create()
price=round(recipe_cost / recipe_quantity, 2), is_active=True).create()
recipe = Recipe(date=date, product_id=menu_item.id, quantity=recipe_quantity, sale_price=sale_price, notes='')
recipe.product = menu_item
@ -150,7 +150,7 @@ def update(request):
rate = ingredient_price / (product.fraction * product.product_yield)
recipe_cost += rate * quantity
recipe_items.append(RecipeItem(None, product.id, quantity, ingredient_price))
recipe.product.price = recipe_cost
recipe.product.price = round(recipe_cost / recipe.quantity, 2)
for i in range(len(recipe.recipe_items), 0, -1):
recipe_item = recipe.recipe_items.pop()
DBSession.delete(recipe_item)
@ -167,6 +167,12 @@ def update(request):
raise ValidationError("Sale Price must be a decimal >= 0")
except (ValueError, InvalidOperation):
raise ValidationError("Sale Price must be a decimal >= 0")
try:
recipe_quantity = Decimal(json.get('Quantity', 0))
if recipe_quantity < 0:
raise ValidationError("Quantity must be a decimal >= 0")
except (ValueError, InvalidOperation):
raise ValidationError("Quantity must be a decimal >= 0")
recipe_items = []
for item in json['RecipeItems']:
product = ProductBase.by_id(uuid.UUID(item['Product']['ProductID']))
@ -177,15 +183,14 @@ def update(request):
recipe_items.append(RecipeItem(None, product.id, quantity, ingredient_price))
menu_item = recipe.product
print(menu_item.id)
recipe = Recipe(date=date, product_id=menu_item.id, quantity=1, sale_price=sale_price, notes='')
recipe = Recipe(date=date, product_id=menu_item.id, quantity=recipe_quantity, sale_price=sale_price, notes='')
recipe.product = menu_item
menu_item.price = round(recipe_cost / recipe_quantity, 2)
DBSession.add(recipe)
for item in recipe_items:
item.recipe_id = recipe.id
recipe.recipe_items.append(item)
DBSession.add(item)
print('One')
transaction.commit()
return recipe_info(recipe.id)