Эх сурвалжийг харах

Deleted orders now correctly update on the frontend.
Backend already in working order.

Lee Morgan 5 жил өмнө
parent
commit
bf1c4e615d

+ 0 - 1
controllers/transactionData.js

@@ -131,7 +131,6 @@ module.exports = {
                 return merchant.save();
             })
             .catch((err)=>{
-                console.log(err);
                 return res.json("ERROR: UNABLE TO DELETE THE TRANSACTION");
             });
     },

+ 26 - 17
views/dashboardPage/bundle.js

@@ -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;
         }
     }

+ 3 - 2
views/dashboardPage/js/Merchant.js

@@ -56,7 +56,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; 
@@ -402,7 +402,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;
                 }
             }
         }

+ 23 - 15
views/dashboardPage/js/Order.js

@@ -40,26 +40,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;
         }
     }