orderDetails.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. module.exports = {
  2. display: function(order){
  3. openSidebar(document.querySelector("#orderDetails"));
  4. document.querySelector("#removeOrderBtn").onclick = ()=>{this.remove(order)};
  5. document.getElementById("orderDetailName").innerText = order.name;
  6. document.getElementById("orderDetailDate").innerText = order.date.toLocaleDateString("en-US");
  7. document.getElementById("orderDetailTime").innerText = order.date.toLocaleTimeString("en-US");
  8. let ingredientList = document.querySelector("#orderIngredients");
  9. while(ingredientList.children.length > 0){
  10. ingredientList.removeChild(ingredientList.firstChild);
  11. }
  12. let template = document.querySelector("#orderIngredient").content.children[0];
  13. let grandTotal = 0;
  14. for(let i = 0; i < order.ingredients.length; i++){
  15. let ingredientDiv = template.cloneNode(true);
  16. let price = (order.ingredients[i].quantity * order.ingredients[i].price) / 100;
  17. grandTotal += price;
  18. let ingredient = order.ingredients[i].ingredient;
  19. let priceText = ingredient.convert(order.ingredients[i].quantity).toFixed(2) + " " +
  20. ingredient.unit.toUpperCase() + " x $" +
  21. (order.convertPrice(ingredient.unitType, ingredient.unit, order.ingredients[i].price) / 100).toFixed(2);
  22. ingredientDiv.children[0].innerText = order.ingredients[i].ingredient.name;
  23. ingredientDiv.children[1].innerText = priceText;
  24. ingredientDiv.children[2].innerText = `$${price.toFixed(2)}`;
  25. ingredientList.appendChild(ingredientDiv);
  26. }
  27. document.querySelector("#orderTotalPrice p").innerText = `$${grandTotal.toFixed(2)}`;
  28. },
  29. remove: function(order){
  30. let loader = document.getElementById("loaderContainer");
  31. loader.style.display = "flex";
  32. fetch(`/order/${order.id}`, {
  33. method: "DELETE",
  34. headers: {
  35. "Content-Type": "application/json;charset=utf-8"
  36. }
  37. })
  38. .then((response) => response.json())
  39. .then((response)=>{
  40. if(typeof(response) === "string"){
  41. banner.createError(response);
  42. }else{
  43. merchant.editOrders([order], true);
  44. banner.createNotification("ORDER REMOVED");
  45. }
  46. })
  47. .catch((err)=>{
  48. banner.createError("SOMETHING WENT WRONG. PLEASE REFRESH THE PAGE");
  49. })
  50. .finally(()=>{
  51. loader.style.display = "none";
  52. });
  53. }
  54. }