Просмотр исходного кода

Merge branch 'smallRefactors' into development

Lee Morgan 5 лет назад
Родитель
Сommit
20b6b0baa9

+ 17 - 4
views/dashboardPage/bundle.js

@@ -176,6 +176,10 @@ class MerchantIngredient{
         this._quantity = quantity;
     }
 
+    updateQuantity(quantity){
+        this._quantity += this.convertToBase(quantity);
+    }
+
     convertToBase(quantity){
         switch(this._ingredient.unit){
             case "g": return quantity;
@@ -439,14 +443,14 @@ class Merchant{
                 }else{
                     ingredients[ingredient.ingredient.id] = recipe.quantity * ingredient.quantity;
                 }
-            } 
+            }
         }
 
         const keys = Object.keys(ingredients);
         for(let i = 0; i < keys.length; i++){
             for(let j = 0; j < this._ingredients.length; j++){
                 if(keys[i] === this._ingredients[j].ingredient.id){
-                    this._ingredients.quantity -= ingredients[keys[i]];
+                    this._ingredients[j].updateQuantity(-ingredients[keys[i]]);
                 }
             }
         }
@@ -503,8 +507,8 @@ class Merchant{
         if(isNew){
             for(let i = 0; i < order.ingredients.length; i++){
                 for(let j = 0; j < this._ingredients.length; j++){
-                    if(order.ingredients[i] === this._ingredients[j].ingredient){
-                        this._ingredients[j].quantity += order.ingredients[i].quantity;
+                    if(order.ingredients[i].ingredient === this._ingredients[j].ingredient){
+                        this._ingredients[j].updateQuantity(order.ingredients[i].quantity);
                         break;
                     }
                 }
@@ -3047,6 +3051,15 @@ let newTransaction = {
                     recipe: recipe.id,
                     quantity: quantity
                 });
+
+                for(let j = 0; j < recipe.ingredients.length; j++){
+                    let ingredient = recipe.ingredients[j];
+                    if(data.ingredientUpdates[ingredient.ingredient.id]){
+                        data.ingredientUpdates[ingredient.ingredient.id] += ingredient.convertToBase(ingredient.quantity) * quantity;
+                    }else{
+                        data.ingredientUpdates[ingredient.ingredient.id] = ingredient.convertToBase(ingredient.quantity) * quantity;
+                    }
+                }
             }else if(quantity < 0){
                 banner.createError("CANNOT HAVE NEGATIVE VALUES");
                 return;

+ 8 - 4
views/dashboardPage/js/Merchant.js

@@ -49,6 +49,10 @@ class MerchantIngredient{
         this._quantity = quantity;
     }
 
+    updateQuantity(quantity){
+        this._quantity += this.convertToBase(quantity);
+    }
+
     convertToBase(quantity){
         switch(this._ingredient.unit){
             case "g": return quantity;
@@ -312,14 +316,14 @@ class Merchant{
                 }else{
                     ingredients[ingredient.ingredient.id] = recipe.quantity * ingredient.quantity;
                 }
-            } 
+            }
         }
 
         const keys = Object.keys(ingredients);
         for(let i = 0; i < keys.length; i++){
             for(let j = 0; j < this._ingredients.length; j++){
                 if(keys[i] === this._ingredients[j].ingredient.id){
-                    this._ingredients.quantity -= ingredients[keys[i]];
+                    this._ingredients[j].updateQuantity(-ingredients[keys[i]]);
                 }
             }
         }
@@ -376,8 +380,8 @@ class Merchant{
         if(isNew){
             for(let i = 0; i < order.ingredients.length; i++){
                 for(let j = 0; j < this._ingredients.length; j++){
-                    if(order.ingredients[i] === this._ingredients[j].ingredient){
-                        this._ingredients[j].quantity += order.ingredients[i].quantity;
+                    if(order.ingredients[i].ingredient === this._ingredients[j].ingredient){
+                        this._ingredients[j].updateQuantity(order.ingredients[i].quantity);
                         break;
                     }
                 }

+ 9 - 0
views/dashboardPage/js/newTransaction.js

@@ -41,6 +41,15 @@ let newTransaction = {
                     recipe: recipe.id,
                     quantity: quantity
                 });
+
+                for(let j = 0; j < recipe.ingredients.length; j++){
+                    let ingredient = recipe.ingredients[j];
+                    if(data.ingredientUpdates[ingredient.ingredient.id]){
+                        data.ingredientUpdates[ingredient.ingredient.id] += ingredient.convertToBase(ingredient.quantity) * quantity;
+                    }else{
+                        data.ingredientUpdates[ingredient.ingredient.id] = ingredient.convertToBase(ingredient.quantity) * quantity;
+                    }
+                }
             }else if(quantity < 0){
                 banner.createError("CANNOT HAVE NEGATIVE VALUES");
                 return;