|
|
@@ -449,6 +449,8 @@ class Order{
|
|
|
quantity: ingredients[i].quantity,
|
|
|
price: ingredients[i].price
|
|
|
});
|
|
|
+
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1248,8 +1250,6 @@ let home = {
|
|
|
if(typeof(response) === "string"){
|
|
|
banner.createError(response);
|
|
|
}else{
|
|
|
-
|
|
|
-
|
|
|
merchant.editIngredients(changes);
|
|
|
banner.createNotification("INGREDIENTS UPDATED");
|
|
|
}
|
|
|
@@ -1732,17 +1732,16 @@ let newOrder = {
|
|
|
ingredientList.appendChild(ingredient);
|
|
|
}
|
|
|
|
|
|
- document.getElementById("submitNewOrder").onclick = ()=>{this.submit()};
|
|
|
+ document.getElementById("submitNewOrder").onclick = ()=>{this.submit(Order)};
|
|
|
},
|
|
|
|
|
|
addIngredient: function(ingredient, element){
|
|
|
element.style.display = "none";
|
|
|
|
|
|
let div = document.getElementById("selectedIngredient").content.children[0].cloneNode(true);
|
|
|
+ div.ingredient = ingredient;
|
|
|
div.children[0].children[0].innerText = `${ingredient.name} (${ingredient.unit.toUpperCase()})`;
|
|
|
div.children[0].children[1].onclick = ()=>{this.removeIngredient(div, element)};
|
|
|
- div.children[1].children[0].placeholder = "QUANTITY";
|
|
|
- div.children[1].children[1].placeholder = "PRICE PER UNIT";
|
|
|
document.getElementById("selectedIngredientList").appendChild(div);
|
|
|
},
|
|
|
|
|
|
@@ -1751,8 +1750,80 @@ let newOrder = {
|
|
|
element.style.display = "block";
|
|
|
},
|
|
|
|
|
|
- submit: function(){
|
|
|
- console.log("something");
|
|
|
+ submit: function(Order){
|
|
|
+ let date = document.getElementById("newOrderDate").value;
|
|
|
+ let time = document.getElementById("newOrderTime").value;
|
|
|
+ let ingredients = document.getElementById("selectedIngredientList").children;
|
|
|
+
|
|
|
+ if(date === ""){
|
|
|
+ banner.createError("DATE IS REQUIRED FOR ORDERS");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(time !== ""){
|
|
|
+ date = `${date}T${time}`;
|
|
|
+ }
|
|
|
+
|
|
|
+ let data = {
|
|
|
+ name: document.getElementById("newOrderName").value,
|
|
|
+ date: date,
|
|
|
+ ingredients: []
|
|
|
+ }
|
|
|
+
|
|
|
+ for(let i = 0; i < ingredients.length; i++){
|
|
|
+ let quantity = ingredients[i].children[1].children[0].value;
|
|
|
+ let price = ingredients[i].children[1].children[1].value;
|
|
|
+
|
|
|
+ if(quantity === "" || price === ""){
|
|
|
+ banner.createError("MUST PROVIDE QUANTITY AND PRICE PER UNIT FOR ALL INGREDIENTS");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(quantity < 0 || price < 0){
|
|
|
+ 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
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ let loader = document.getElementById("loaderContainer");
|
|
|
+ loader.style.display = "flex";
|
|
|
+
|
|
|
+ fetch("/order/create", {
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json;charset=utf-8"
|
|
|
+ },
|
|
|
+ body: JSON.stringify(data)
|
|
|
+ })
|
|
|
+ .then((response)=>response.json())
|
|
|
+ .then((response)=>{
|
|
|
+ if(typeof(response) === "string"){
|
|
|
+ banner.createError(response);
|
|
|
+ }else{
|
|
|
+ let order = new Order(
|
|
|
+ response._id,
|
|
|
+ response.name,
|
|
|
+ response.date,
|
|
|
+ response.ingredients,
|
|
|
+ merchant
|
|
|
+ );
|
|
|
+
|
|
|
+ merchant.editOrders([order]);
|
|
|
+ merchant.editIngredients(order.ingredients, false, true);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err)=>{
|
|
|
+ console.log(err);
|
|
|
+ banner.createError("SOMETHING WENT WRONG, PLEASE REFRESH THE PAGE");
|
|
|
+ })
|
|
|
+ .finally(()=>{
|
|
|
+ loader.style.display = "none";
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|