|
|
@@ -183,7 +183,7 @@ class MerchantIngredient{
|
|
|
convertToBase(quantity){
|
|
|
switch(this._ingredient.unit){
|
|
|
case "g": return quantity;
|
|
|
- case "kg": return quantity * 1000;
|
|
|
+ case "kg": return quantity * 1000;
|
|
|
case "oz": return quantity * 28.3495;
|
|
|
case "lb": return quantity * 453.5924;
|
|
|
case "ml": return quantity / 1000;
|
|
|
@@ -529,7 +529,8 @@ class Merchant{
|
|
|
for(let i = 0; i < order.ingredients.length; i++){
|
|
|
for(let j = 0; j < this._ingredients.length; j++){
|
|
|
if(order.ingredients[i].ingredient === this._ingredients[j].ingredient){
|
|
|
- this._ingredients[j].quantity -= order.ingredients[i].quantity;
|
|
|
+ this._ingredients[j].updateQuantity(-order.ingredients[i].quantity);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -837,26 +838,34 @@ class OrderIngredient{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ updateQuantity(quantity){
|
|
|
+ if(quantity < 0){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ this._quantity += this.convertToBase(quantity);
|
|
|
+ }
|
|
|
+
|
|
|
convertToBase(quantity){
|
|
|
switch(this._ingredient.unit){
|
|
|
case "g": return quantity;
|
|
|
- case "kg": return quantity / 1000;
|
|
|
- case "oz": return quantity / 28.3495;
|
|
|
- case "lb": return quantity / 453.5924;
|
|
|
- case "ml": return quantity *= 1000;
|
|
|
+ case "kg": return quantity * 1000;
|
|
|
+ case "oz": return quantity * 28.3495;
|
|
|
+ case "lb": return quantity * 453.5924;
|
|
|
+ case "ml": return quantity / 1000;
|
|
|
case "l": return quantity;
|
|
|
- case "tsp": return quantity * 202.8842;
|
|
|
- case "tbsp": return quantity * 67.6278;
|
|
|
- case "ozfl": return quantity * 33.8141;
|
|
|
- case "cup": return quantity * 4.1667;
|
|
|
- case "pt": return quantity * 2.1134;
|
|
|
- case "qt": return quantity * 1.0567;
|
|
|
- case "gal": return quantity / 3.7854;
|
|
|
- case "mm": return quantity * 1000;
|
|
|
- case "cm": return quantity * 100;
|
|
|
+ case "tsp": return quantity / 202.8842;
|
|
|
+ case "tbsp": return quantity / 67.6278;
|
|
|
+ case "ozfl": return quantity / 33.8141;
|
|
|
+ case "cup": return quantity / 4.1667;
|
|
|
+ case "pt": return quantity / 2.1134;
|
|
|
+ case "qt": return quantity / 1.0567;
|
|
|
+ case "gal": return quantity * 3.7854;
|
|
|
+ case "mm": return quantity / 1000;
|
|
|
+ case "cm": return quantity / 100;
|
|
|
case "m": return quantity;
|
|
|
- case "in": return quantity * 39.3701;
|
|
|
- case "ft": return quantity * 3.2808;
|
|
|
+ case "in": return quantity / 39.3701;
|
|
|
+ case "ft": return quantity / 3.2808;
|
|
|
default: return quantity;
|
|
|
}
|
|
|
}
|