statistique.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. const e_ou_d_c_used = await Ticket.countDocuments({ gains: 'une entrée ou un dessert au choix', isUsed: true })
  8. const e_ou_d_c_served = await Ticket.countDocuments({ gains: 'une entrée ou un dessert au choix', isUsed: true, isServed: true })
  9. //un burger au choix
  10. const b_c_total = await Ticket.countDocuments({ gains: 'un burger au choix' })
  11. const b_c_used = await Ticket.countDocuments({ gains: 'un burger au choix', isUsed: true })
  12. const b_c_served = await Ticket.countDocuments({ gains: 'un burger au choix', isUsed: true, isServed: true })
  13. //un menu du jour
  14. const m_j_total = await Ticket.countDocuments({ gains: 'un menu du jour' })
  15. const m_j_used = await Ticket.countDocuments({ gains: 'un menu du jour', isUsed: true })
  16. const m_j_served = await Ticket.countDocuments({ gains: 'un menu du jour', isUsed: true, isServed: true })
  17. //un menu au choix
  18. const m_c_total = await Ticket.countDocuments({ gains: 'un menu au choix' })
  19. const m_c_used = await Ticket.countDocuments({ gains: 'un menu au choix', isUsed: true })
  20. const m_c_served = await Ticket.countDocuments({ gains: 'un menu au choix', isUsed: true, isServed: true })
  21. //70% de réduction
  22. const r_total = await Ticket.countDocuments({ gains: '70% de réduction' })
  23. const r_used = await Ticket.countDocuments({ gains: '70% de réduction', isUsed: true })
  24. const r_served = await Ticket.countDocuments({ gains: '70% de réduction', isUsed: true, isServed: true })
  25. res.status(200).json({
  26. success: true,
  27. 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 },
  28. { gain: 'un burger au choix', used: b_c_used, served: b_c_served, total: b_c_total },
  29. { gain: 'un menu du jour', used: m_j_used, served: m_j_served, total: m_j_total },
  30. { gain: 'un menu au choix', used: m_c_used, served: m_c_served, total: m_c_total },
  31. { gain: '70% de réduction', used: r_used, served: r_served, total: r_total }
  32. ]
  33. })
  34. }
  35. catch (err) {
  36. res.status(500).json({ success: false, message: err.message })
  37. }
  38. };