orderCalculator.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. let orderCalculator = {
  2. display: function(){
  3. let calculatorItems = document.getElementById("calculatorItems");
  4. let template = document.getElementById("calculatorItem").content.children[0];
  5. let calculations = this.getDailyAverages();
  6. for(let i = 0; i < calculations.length; i++){
  7. let item = template.cloneNode(true);
  8. item.children[0].innerText = calculations[i].ingredient.name,
  9. item.children[1].innerText = `${calculations[i].output.toFixed(2)} ${calculations[i].ingredient.unit.toUpperCase()}`;
  10. calculatorItems.appendChild(item);
  11. }
  12. },
  13. getDailyAverages: function(){
  14. let now = new Date();
  15. let yesterday = new Date();
  16. yesterday.setHours(0, 0, 0, 0);
  17. let monthAgo = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 30);
  18. let weekAgo = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 7);
  19. let calculations = [];
  20. let month = merchant.getIngredientsSold(monthAgo, yesterday);
  21. let week = merchant.getIngredientsSold(weekAgo, yesterday);
  22. let weights = {
  23. month: 0.33,
  24. week: 0.67
  25. }
  26. for(let i = 0; i < month.length; i++){
  27. for(let j = 0; j < week.length; j++){
  28. if(month[i].ingredient.id === week[j].ingredient.id){
  29. let monthAverage = (month[i].quantity / 30) * weights.month;
  30. let weekAverage = (week[i].quantity / 7) * weights.week;
  31. let calc = {
  32. ingredient: month[i].ingredient,
  33. output: monthAverage + weekAverage
  34. };
  35. calculations.push(calc);
  36. }
  37. }
  38. }
  39. return calculations;
  40. }
  41. }
  42. module.exports = orderCalculator;