transactions.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. let transactions = {
  2. isPopulated: false,
  3. display: function(Transaction){
  4. if(!this.isPopulated){
  5. let transactionsList = document.getElementById("transactionsList");
  6. let template = document.getElementById("transaction").content.children[0];
  7. document.getElementById("filterTransactionsButton").onclick = ()=>{controller.openSidebar("transactionFilter")};
  8. document.getElementById("newTransactionButton").onclick = ()=>{controller.openSidebar("newTransaction")};
  9. while(transactionsList.children.length > 0){
  10. transactionsList.removeChild(transactionsList.firstChild);
  11. }
  12. let i = 0;
  13. const transactions = merchant.getTransactions();
  14. while(i < transactions.length && i < 100){
  15. let transactionDiv = template.cloneNode(true);
  16. let transaction = transactions[i];
  17. transactionDiv.onclick = ()=>{
  18. controller.openSidebar("transactionDetails", transaction);
  19. transactionDiv.classList.add("active");
  20. }
  21. transactionsList.appendChild(transactionDiv);
  22. let totalRecipes = 0;
  23. let totalPrice = 0;
  24. for(let j = 0; j < transactions[i].recipes.length; j++){
  25. totalRecipes += transactions[i].recipes[j].quantity;
  26. totalPrice += transactions[i].recipes[j].recipe.price * transactions[i].recipes[j].quantity;
  27. }
  28. transactionDiv.children[0].innerText = `${transactions[i].date.toLocaleDateString()} ${transactions[i].date.toLocaleTimeString()}`;
  29. transactionDiv.children[1].innerText = `${totalRecipes} recipes sold`;
  30. transactionDiv.children[2].innerText = `$${totalPrice.toFixed(2)}`;
  31. i++;
  32. }
  33. this.isPopulated = true;
  34. }
  35. }
  36. }
  37. module.exports = transactions;