Order.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. class Order{
  2. constructor(id, name, date, ingredients, parent){
  3. this.id = id;
  4. this.name = name;
  5. this.date = new Date(date);
  6. this.ingredients = [];
  7. this.parent = parent;
  8. for(let i = 0; i < ingredients.length; i++){
  9. for(let j = 0; j < parent.ingredients.length; j++){
  10. if(ingredients[i].ingredient === parent.ingredients[j].ingredient.id){
  11. this.ingredients.push({
  12. ingredient: parent.ingredients[j].ingredient,
  13. quantity: ingredients[i].quantity,
  14. price: ingredients[i].price
  15. });
  16. }
  17. }
  18. }
  19. }
  20. convertPrice(unitType, unit, price){
  21. if(unitType === "mass"){
  22. switch(unit){
  23. case "g": break;
  24. case "kg": price *= 1000; break;
  25. case "oz": price *= 28.3495; break;
  26. case "lb": price *= 453.5924; break;
  27. }
  28. }else if(unitType === "volume"){
  29. switch(unit){
  30. case "ml": price /= 1000; break;
  31. case "l": break;
  32. case "tsp": price /= 202.8842; break;
  33. case "tbsp": price /= 67.6278; break;
  34. case "ozfl": price /= 33.8141; break;
  35. case "cup": price /= 4.1667; break;
  36. case "pt": price /= 2.1134; break;
  37. case "qt": price /= 1.0567; break;
  38. case "gal": price *= 3.7854; break;
  39. }
  40. }else if(unitType === "length"){
  41. switch(unit){
  42. case "mm": price /= 1000; break;
  43. case "cm": price /= 100; break;
  44. case "m": break;
  45. case "in": price /= 39.3701; break;
  46. case "ft": price /= 3.2808; break;
  47. }
  48. }
  49. return price;
  50. }
  51. }
  52. module.exports = Order;