transactions.js 1.8 KB

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