Преглед изворни кода

Add storage of data on inventory changes

Lee Morgan пре 6 година
родитељ
комит
6479817ac9
3 измењених фајлова са 44 додато и 3 уклоњено
  1. 19 2
      controllers/home.js
  2. 24 0
      models/inventoryAdjustment.js
  3. 1 1
      views/inventoryPage/inventory.js

+ 19 - 2
controllers/home.js

@@ -6,6 +6,7 @@ const Ingredient = require("../models/ingredient");
 const Recipe = require("../models/recipe");
 const Transaction = require("../models/transaction");
 const nonPosTransaction = require("../models/nonPosTransaction");
+const InventoryAdjustment = require("../models/inventoryAdjustment");
 
 const token = "b48068eb-411a-918e-ea64-52007147e42c";
 
@@ -403,10 +404,10 @@ module.exports = {
         Merchant.findOne({_id: req.session.user})
             .then((merchant)=>{
                 let updateIngredient = merchant.inventory.find(i => i._id.toString() === req.body.ingredientId);
-                updateIngredient.quantity = req.body.quantity;
+                updateIngredient.quantity += req.body.quantityChange;
                 merchant.save()
                     .then((merchant)=>{
-                        return res.json();
+                        res.json();
                     })
                     .catch((err)=>{
                         console.log(err);
@@ -417,6 +418,22 @@ module.exports = {
                 console.log(err);
                 return res.render("error");
             });
+
+        let invAdj = new InventoryAdjustment({
+            date: Date.now(),
+            merchant: req.session.user,
+            ingredient: req.body.ingredientId,
+            quantity: req.body.quantityChange
+        });
+
+        invAdj.save()
+            .then((newAdjustment)=>{
+                return;
+            })
+            .catch((err)=>{
+                console.log(err);
+                return res.render("error");
+            })
     },
 
     addRecipeIngredient: function(req, res){

+ 24 - 0
models/inventoryAdjustment.js

@@ -0,0 +1,24 @@
+const mongoose = require("mongoose");
+
+let inventoryAdjustmentSchema = new mongoose.Schema({
+    date: {
+        type: Date,
+        default: Date.now()
+    },
+    merchant: {
+        type: mongoose.Schema.Types.ObjectId,
+        ref: "Merchant",
+        required: [true, "Must provide the merchant"]
+    },
+    ingredient: {
+        type: mongoose.Schema.Types.ObjectId,
+        ref: "Ingredient",
+        required: [true, "Must provide the ingredient"]
+    },
+    quantity: {
+        type: Number,
+        required: [true, "Must provide a quantity"]
+    }
+});
+
+module.exports = mongoose.model("InventoryAdjustment", inventoryAdjustmentSchema);

+ 1 - 1
views/inventoryPage/inventory.js

@@ -120,7 +120,7 @@ let inventoryObj = {
         if(validator.ingredient.quantity(quantity)){
             let updateIngredient = merchant.inventory.find(i => i._id === id);
             updateIngredient.quantity = quantity;
-            axios.post("/merchant/ingredients/update", {ingredientId: id, quantity: quantity})
+            axios.post("/merchant/ingredients/update", {ingredientId: id, quantityChange: quantity - originalQuantity})
                 .then((merchant)=>{
                     banner.createNotification("The ingredient has been successfully updated");
                 })