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

Fix bugs in the spreadsheet uploading for orders.

Lee Morgan 5 лет назад
Родитель
Сommit
67ee795947
4 измененных файлов с 49 добавлено и 47 удалено
  1. 42 42
      controllers/orderData.js
  2. 1 1
      routes.js
  3. 3 2
      views/dashboardPage/bundle.js
  4. 3 2
      views/dashboardPage/js/sidebars/newOrder.js

+ 42 - 42
controllers/orderData.js

@@ -146,46 +146,6 @@ module.exports = {
             .catch(()=>{});
     },
 
-    /*
-    DELETE - Remove an order from the database
-    */
-    removeOrder: function(req, res){
-        if(!req.session.user){
-            req.session.error = "MUST BE LOGGED IN TO DO THAT";
-            return res.redirect("/");
-        }
-
-        let merchant = {};
-        let order = {}
-        Merchant.findOne({_id: req.session.user})
-            .then((response)=>{
-                merchant = response;
-                return Order.findOne({_id: req.params.id});
-            })
-            .then((response)=>{
-                order = response;
-
-                return Order.deleteOne({_id: req.params.id})
-            })
-            .then((response)=>{
-                res.json({});
-
-                for(let i = 0; i < order.ingredients.length; i++){
-                    for(let j = 0; j < merchant.inventory.length; j++){
-                        if(order.ingredients[i].ingredient.toString() === merchant.inventory[j].ingredient.toString()){
-                            merchant.inventory[j].quantity -= order.ingredients[i].quantity;
-                            break;
-                        }
-                    }
-                }
-
-                return merchant.save();
-            })
-            .catch((err)=>{
-                return res.json("ERROR: UNABLE TO REMOVE ORDER");
-            });
-    },
-
     createFromSpreadsheet: function(req, res){
         if(!req.session.user){
             req.session.error = "MUST BE LOGGED IN TO DO THAT";
@@ -232,7 +192,7 @@ module.exports = {
                 let orders = [];
                 let currentOrder = {};
                 for(let i = 1; i < array.length; i++){
-                    if(array[i].length === 0){
+                    if(array[i].length === 0 || array[i][locations.ingredients] === undefined){
                         continue;
                     }
 
@@ -256,7 +216,7 @@ module.exports = {
 
                     let exists = false;
                     for(let j = 0; j < merchant.inventory.length; j++){
-                        if(merchant.inventory[j].ingredient.name.toLowerCase() === array[i][locations.ingredients]){
+                        if(merchant.inventory[j].ingredient.name.toLowerCase() === array[i][locations.ingredients].toLowerCase()){
                             const baseQuantity = helper.convertQuantityToBaseUnit(array[i][locations.quantity], merchant.inventory[j].defaultUnit);
                             currentOrder.ingredients.push({
                                 ingredient: merchant.inventory[j].ingredient._id,
@@ -331,5 +291,45 @@ module.exports = {
                 });
             })
             .catch((err)=>{});
+    },
+
+    /*
+    DELETE - Remove an order from the database
+    */
+    removeOrder: function(req, res){
+        if(!req.session.user){
+            req.session.error = "MUST BE LOGGED IN TO DO THAT";
+            return res.redirect("/");
+        }
+
+        let merchant = {};
+        let order = {}
+        Merchant.findOne({_id: req.session.user})
+            .then((response)=>{
+                merchant = response;
+                return Order.findOne({_id: req.params.id});
+            })
+            .then((response)=>{
+                order = response;
+
+                return Order.deleteOne({_id: req.params.id})
+            })
+            .then((response)=>{
+                res.json({});
+
+                for(let i = 0; i < order.ingredients.length; i++){
+                    for(let j = 0; j < merchant.inventory.length; j++){
+                        if(order.ingredients[i].ingredient.toString() === merchant.inventory[j].ingredient.toString()){
+                            merchant.inventory[j].quantity -= order.ingredients[i].quantity;
+                            break;
+                        }
+                    }
+                }
+
+                return merchant.save();
+            })
+            .catch((err)=>{
+                return res.json("ERROR: UNABLE TO REMOVE ORDER");
+            });
     }
 }

+ 1 - 1
routes.js

@@ -47,9 +47,9 @@ module.exports = function(app){
     app.get("/order", orderData.getOrders);
     app.post("/order", orderData.orderFilter);
     app.post("/order/create", orderData.createOrder);
-    app.delete("/order/:id", orderData.removeOrder);
     app.post("/orders/create/spreadsheet", upload.single("orders"), orderData.createFromSpreadsheet);
     app.get("/orders/download/spreadsheet", orderData.spreadsheetTemplate);
+    app.delete("/order/:id", orderData.removeOrder);
 
     //Transactions
     app.post("/transaction", transactionData.getTransactions);

+ 3 - 2
views/dashboardPage/bundle.js

@@ -2227,6 +2227,7 @@ let newOrder = {
             });
     },
 
+    //TODO: Remove this function, it should be on the order
     convertPrice: function(ingredient, price){
         if(ingredient.specialUnit === "bottle"){
             return price / ingredient.unitSize;
@@ -2278,12 +2279,12 @@ let newOrder = {
                         merchant.addOrder(response[i], true);
                     }
 
-                    banner.createNotification("ORDERS CREATED AND INGREDIENTS UPDATE SUCCESSFULLY");
+                    banner.createNotification("ORDER CREATED AND INGREDIENTS UPDATED SUCCESSFULLY");
                     controller.openStrand("orders");
                 }
             })
             .catch((err)=>{
-                banner.createError("UNABLE TO DISPLAY NEW ORDERS. PLEASE REFRESH THE PAGE.");
+                banner.createError("UNABLE TO DISPLAY NEW ORDER. PLEASE REFRESH THE PAGE.");
             })
             .finally(()=>{
                 loader.style.display = "none";

+ 3 - 2
views/dashboardPage/js/sidebars/newOrder.js

@@ -123,6 +123,7 @@ let newOrder = {
             });
     },
 
+    //TODO: Remove this function, it should be on the order
     convertPrice: function(ingredient, price){
         if(ingredient.specialUnit === "bottle"){
             return price / ingredient.unitSize;
@@ -174,12 +175,12 @@ let newOrder = {
                         merchant.addOrder(response[i], true);
                     }
 
-                    banner.createNotification("ORDERS CREATED AND INGREDIENTS UPDATE SUCCESSFULLY");
+                    banner.createNotification("ORDER CREATED AND INGREDIENTS UPDATED SUCCESSFULLY");
                     controller.openStrand("orders");
                 }
             })
             .catch((err)=>{
-                banner.createError("UNABLE TO DISPLAY NEW ORDERS. PLEASE REFRESH THE PAGE.");
+                banner.createError("UNABLE TO DISPLAY NEW ORDER. PLEASE REFRESH THE PAGE.");
             })
             .finally(()=>{
                 loader.style.display = "none";