orders.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. let orders = {
  2. display: function(){
  3. document.getElementById("orderFilterBtn").addEventListener("click", ()=>{controller.openSidebar("orderFilter")});
  4. document.getElementById("newOrderBtn").addEventListener("click", ()=>{controller.openSidebar("newOrder")});
  5. document.getElementById("orderCalcBtn").addEventListener("click", ()=>{controller.openSidebar("orderCalculator")});
  6. let orderList = document.getElementById("orderList");
  7. let template = document.getElementById("order").content.children[0];
  8. while(orderList.children.length > 0){
  9. orderList.removeChild(orderList.firstChild);
  10. }
  11. for(let i = 0; i < merchant.orders.length; i++){
  12. let orderDiv = template.cloneNode(true);
  13. orderDiv.order = merchant.orders[i];
  14. orderDiv.children[0].innerText = merchant.orders[i].name;
  15. orderDiv.children[1].innerText = `${merchant.orders[i].ingredients.length} ingredients`;
  16. orderDiv.children[2].innerText = merchant.orders[i].date.toLocaleDateString("en-US");
  17. orderDiv.children[3].innerText = `$${merchant.orders[i].getTotalCost().toFixed(2)}`;
  18. orderDiv.onclick = ()=>{
  19. controller.openSidebar("orderDetails", merchant.orders[i]);
  20. orderDiv.classList.add("active");
  21. }
  22. orderList.appendChild(orderDiv);
  23. }
  24. },
  25. getOrders: function(Order){
  26. let loader = document.getElementById("loaderContainer");
  27. loader.style.display = "flex";
  28. let to = new Date();
  29. let from = new Date(to.getFullYear(), to.getMonth(), to.getDate() - 30);
  30. from.setHours(0, 0, 0, 0);
  31. let body = {
  32. to: to.toUTCString(),
  33. from: from.toUTCString(),
  34. ingredients: []};
  35. return fetch("/orders/get", {
  36. method: "post",
  37. body: JSON.stringify(body),
  38. headers: {
  39. "Content-Type": "application/json;charset=utf-8"
  40. }
  41. })
  42. .then(response => response.json())
  43. .then((response)=>{
  44. if(typeof(response) === "string"){
  45. controller.createBanner(response, "error");
  46. }else{
  47. let orders = [];
  48. for(let i = 0; i < response.length; i++){
  49. orders.push(new Order(
  50. response[i]._id,
  51. response[i].name,
  52. response[i].date,
  53. response[i].taxes,
  54. response[i].fees,
  55. response[i].ingredients,
  56. merchant
  57. ));
  58. }
  59. if(merchant.orders.length === 0){
  60. merchant.setOrders(orders);
  61. }
  62. return orders;
  63. }
  64. })
  65. .catch((err)=>{
  66. controller.createBanner("SOMETHING WENT WRONG. PLEASE REFRESH THE PAGE", "error");
  67. })
  68. .finally(()=>{
  69. loader.style.display = "none";
  70. });
  71. }
  72. }
  73. module.exports = orders;