statistique.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const { Ticket } = require('../models/ticket.model');
  2. //get all users
  3. exports.getStatistique = async (req, res, next) => {
  4. try {
  5. //une entrée ou un dessert au choix
  6. const e_ou_d_c_total = await Ticket.countDocuments({ gains: 'une entrée ou un dessert au choix' })
  7. console.log(JSON.stringify(e_ou_d_c_total));
  8. const e_ou_d_c_used = await Ticket.countDocuments({ gains: 'une entrée ou un dessert au choix', isUsed: true })
  9. const e_ou_d_c_served = await Ticket.countDocuments({ gains: 'une entrée ou un dessert au choix', isServed: true })
  10. console.log(JSON.stringify(e_ou_d_c_served));
  11. //un burger au choix
  12. const b_c_total = await Ticket.countDocuments({ gains: 'un burger au choix' })
  13. const b_c_used = await Ticket.countDocuments({ gains: 'un burger au choix', isUsed: true })
  14. const b_c_served = await Ticket.countDocuments({ gains: 'un burger au choix', isServed: true })
  15. //un menu du jour
  16. const m_j_total = await Ticket.countDocuments({ gains: 'un menu du jour' })
  17. const m_j_used = await Ticket.countDocuments({ gains: 'un menu du jour', isUsed: true })
  18. const m_j_served = await Ticket.countDocuments({ gains: 'un menu du jour', isServed: true })
  19. //un menu au choix
  20. const m_c_total = await Ticket.countDocuments({ gains: 'un menu au choix' })
  21. const m_c_used = await Ticket.countDocuments({ gains: 'un menu au choix', isUsed: true })
  22. const m_c_served = await Ticket.countDocuments({ gains: 'un menu au choix', isServed: true })
  23. //70% de réduction
  24. const r_total = await Ticket.countDocuments({ gains: '70% de réduction' })
  25. const r_used = await Ticket.countDocuments({ gains: '70% de réduction', isUsed: true })
  26. const r_served = await Ticket.countDocuments({ gains: '70% de réduction', isServed: true })
  27. res.status(200).json({
  28. success: true,
  29. data: [{ gain: 'une entrée ou un dessert au choix', used: e_ou_d_c_used, served: e_ou_d_c_served, total: e_ou_d_c_total },
  30. { gain: 'un burger au choix', used: b_c_used, served: b_c_served, total: b_c_total },
  31. { gain: 'un menu du jour', used: m_j_used, served: m_j_served, total: m_j_total },
  32. { gain: 'un menu au choix', used: m_c_used, served: m_c_served, total: m_c_total },
  33. { gain: '70% de réduction', used: r_used, served: r_served, total: r_total }
  34. ]
  35. })
  36. }
  37. catch (err) {
  38. res.status(500).json({ success: false, message: err.message })
  39. }
  40. };