Sfoglia il codice sorgente

Update new order to take in price per unit. Only backend stores it correctly. It does not yet display correctly on the front end.

Lee Morgan 5 anni fa
parent
commit
31d1331c9f

+ 0 - 1
controllers/merchantData.js

@@ -310,7 +310,6 @@ module.exports = {
                 return res.json(validation);
             }
         }
-        console.log(req.body);
 
         let adjustments = [];
 

+ 2 - 2
controllers/orderData.js

@@ -96,7 +96,7 @@ module.exports = {
         ingredients: [{
             ingredient: id of the ingredient
             quantity: amount of the ingredient purchased
-            price: price for ingredient
+            pricePerUnit: price per gram
         }]
     } 
     */ 
@@ -131,7 +131,7 @@ module.exports = {
                     }
                 }
 
-                return merchant.save()
+                return merchant.save();
             })
             .then((merchant)=>{
                 return;

+ 1 - 1
models/order.js

@@ -23,7 +23,7 @@ const OrderSchema = new mongoose.Schema({
             required: true,
             min: 0
         },
-        price: {
+        pricePerUnit: {
             type: Number,
             min: 0
         }

+ 49 - 36
views/dashboardPage/bundle.js

@@ -60,7 +60,7 @@ class Merchant{
         this.units = {
             mass: ["g", "kg", "oz", "lb"],
             volume: ["ml", "l", "tsp", "tbsp", "ozfl", "cup", "pt", "qt", "gal"],
-            length: ["mm", "cm", "m", "in", "foot"],
+            length: ["mm", "cm", "m", "in", "ft"],
             other: ["each"]
         }
         
@@ -447,7 +447,7 @@ class Order{
                     this.ingredients.push({
                         ingredient: parent.ingredients[j].ingredient,
                         quantity: ingredients[i].quantity,
-                        price: ingredients[i].price
+                        pricePerUnit: ingredients[i].pricePerUnit
                     });
 
                     break;
@@ -455,39 +455,6 @@ class Order{
             }
         }
     }
-
-    convertPrice(unitType, unit, price){
-        if(unitType === "mass"){
-            switch(unit){
-                case "g": break;
-                case "kg": price *= 1000; break;
-                case "oz":  price *= 28.3495; break;
-                case "lb":  price *= 453.5924; break;
-            }
-        }else if(unitType === "volume"){
-            switch(unit){
-                case "ml": price /= 1000; break;
-                case "l": break;
-                case "tsp": price /= 202.8842; break;
-                case "tbsp": price /= 67.6278; break;
-                case "ozfl": price /= 33.8141; break;
-                case "cup": price /= 4.1667; break;
-                case "pt": price /= 2.1134; break;
-                case "qt": price /= 1.0567; break;
-                case "gal": price *= 3.7854; break;
-            }
-        }else if(unitType === "length"){
-            switch(unit){
-                case "mm": price /= 1000; break;
-                case "cm": price /= 100; break;
-                case "m": break;
-                case "in": price /= 39.3701; break;
-                case "ft": price /= 3.2808; break;
-            }
-        }
-
-        return price;
-    }
 }
 
 module.exports = Order;
@@ -1032,6 +999,10 @@ controller = {
     },
 
     convertToMain: function(unit, quantity){
+        console.log(unit);
+        console.log(quantity);
+        console.log(typeof(quantity));
+        console.log(quantity / 3.2808);
         let converted = 0;
     
         if(merchant.units.mass.includes(unit)){
@@ -1126,6 +1097,46 @@ controller = {
         }
 
         return indices;
+    },
+
+    /*
+    Converts the price of a unit to $/g
+    unitType = type of the unit (i.e. mass, volume)
+    unit = exact unit to convert from
+    price = price of the ingredient per unit in cents
+    */
+    convertPrice(unitType, unit, price){
+
+        if(unitType === "mass"){
+            switch(unit){
+                case "g": break;
+                case "kg": price /= 1000; break;
+                case "oz":  price /= 28.3495; break;
+                case "lb":  price /= 453.5924; break;
+            }
+        }else if(unitType === "volume"){
+            switch(unit){
+                case "ml": price *= 1000; break;
+                case "l": break;
+                case "tsp": price *= 202.8842; break;
+                case "tbsp": price *= 67.6278; break;
+                case "ozfl": price *= 33.8141; break;
+                case "cup": price *= 4.1667; break;
+                case "pt": price *= 2.1134; break;
+                case "qt": price *= 1.0567; break;
+                case "gal": price /= 3.7854; break;
+            }
+        }else if(unitType === "length"){
+            switch(unit){
+                case "mm": price *= 1000; break;
+                case "cm": price *= 100; break;
+                case "m": break;
+                case "in": price *= 39.3701; break;
+                case "ft": price *= 3.2808; break;
+            }
+        }
+
+        return price;
     }
 }
 
@@ -1904,10 +1915,11 @@ let newOrder = {
                 banner.createError("QUANTITY AND PRICE MUST BE NON-NEGATIVE NUMBERS");
             }
 
+            
             data.ingredients.push({
                 ingredient: ingredients[i].ingredient.id,
                 quantity: controller.convertToMain(ingredients[i].ingredient.unit, quantity),
-                price: price * 100
+                pricePerUnit: controller.convertPrice(ingredients[i].ingredient.unitType, ingredients[i].ingredient.unit, price * 100)
             });
         }
 
@@ -1936,6 +1948,7 @@ let newOrder = {
 
                     merchant.editOrders([order]);
                     merchant.editIngredients(order.ingredients, false, true);
+                    banner.createNotification("NEW ORDER CREATED");
                 }
             })
             .catch((err)=>{

+ 1 - 1
views/dashboardPage/js/Merchant.js

@@ -13,7 +13,7 @@ class Merchant{
         this.units = {
             mass: ["g", "kg", "oz", "lb"],
             volume: ["ml", "l", "tsp", "tbsp", "ozfl", "cup", "pt", "qt", "gal"],
-            length: ["mm", "cm", "m", "in", "foot"],
+            length: ["mm", "cm", "m", "in", "ft"],
             other: ["each"]
         }
         

+ 1 - 34
views/dashboardPage/js/Order.js

@@ -12,7 +12,7 @@ class Order{
                     this.ingredients.push({
                         ingredient: parent.ingredients[j].ingredient,
                         quantity: ingredients[i].quantity,
-                        price: ingredients[i].price
+                        pricePerUnit: ingredients[i].pricePerUnit
                     });
 
                     break;
@@ -20,39 +20,6 @@ class Order{
             }
         }
     }
-
-    convertPrice(unitType, unit, price){
-        if(unitType === "mass"){
-            switch(unit){
-                case "g": break;
-                case "kg": price *= 1000; break;
-                case "oz":  price *= 28.3495; break;
-                case "lb":  price *= 453.5924; break;
-            }
-        }else if(unitType === "volume"){
-            switch(unit){
-                case "ml": price /= 1000; break;
-                case "l": break;
-                case "tsp": price /= 202.8842; break;
-                case "tbsp": price /= 67.6278; break;
-                case "ozfl": price /= 33.8141; break;
-                case "cup": price /= 4.1667; break;
-                case "pt": price /= 2.1134; break;
-                case "qt": price /= 1.0567; break;
-                case "gal": price *= 3.7854; break;
-            }
-        }else if(unitType === "length"){
-            switch(unit){
-                case "mm": price /= 1000; break;
-                case "cm": price /= 100; break;
-                case "m": break;
-                case "in": price /= 39.3701; break;
-                case "ft": price /= 3.2808; break;
-            }
-        }
-
-        return price;
-    }
 }
 
 module.exports = Order;

+ 44 - 0
views/dashboardPage/js/dashboard.js

@@ -182,6 +182,10 @@ controller = {
     },
 
     convertToMain: function(unit, quantity){
+        console.log(unit);
+        console.log(quantity);
+        console.log(typeof(quantity));
+        console.log(quantity / 3.2808);
         let converted = 0;
     
         if(merchant.units.mass.includes(unit)){
@@ -276,6 +280,46 @@ controller = {
         }
 
         return indices;
+    },
+
+    /*
+    Converts the price of a unit to $/g
+    unitType = type of the unit (i.e. mass, volume)
+    unit = exact unit to convert from
+    price = price of the ingredient per unit in cents
+    */
+    convertPrice(unitType, unit, price){
+
+        if(unitType === "mass"){
+            switch(unit){
+                case "g": break;
+                case "kg": price /= 1000; break;
+                case "oz":  price /= 28.3495; break;
+                case "lb":  price /= 453.5924; break;
+            }
+        }else if(unitType === "volume"){
+            switch(unit){
+                case "ml": price *= 1000; break;
+                case "l": break;
+                case "tsp": price *= 202.8842; break;
+                case "tbsp": price *= 67.6278; break;
+                case "ozfl": price *= 33.8141; break;
+                case "cup": price *= 4.1667; break;
+                case "pt": price *= 2.1134; break;
+                case "qt": price *= 1.0567; break;
+                case "gal": price /= 3.7854; break;
+            }
+        }else if(unitType === "length"){
+            switch(unit){
+                case "mm": price *= 1000; break;
+                case "cm": price *= 100; break;
+                case "m": break;
+                case "in": price *= 39.3701; break;
+                case "ft": price *= 3.2808; break;
+            }
+        }
+
+        return price;
     }
 }
 

+ 3 - 1
views/dashboardPage/js/newOrder.js

@@ -72,10 +72,11 @@ let newOrder = {
                 banner.createError("QUANTITY AND PRICE MUST BE NON-NEGATIVE NUMBERS");
             }
 
+            
             data.ingredients.push({
                 ingredient: ingredients[i].ingredient.id,
                 quantity: controller.convertToMain(ingredients[i].ingredient.unit, quantity),
-                price: price * 100
+                pricePerUnit: controller.convertPrice(ingredients[i].ingredient.unitType, ingredients[i].ingredient.unit, price * 100)
             });
         }
 
@@ -104,6 +105,7 @@ let newOrder = {
 
                     merchant.editOrders([order]);
                     merchant.editIngredients(order.ingredients, false, true);
+                    banner.createNotification("NEW ORDER CREATED");
                 }
             })
             .catch((err)=>{