ReportForm.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. using System;
  2. using System.Windows.Forms;
  3. using RestaurantApp.DAL;
  4. namespace RestaurantApp
  5. {
  6. public partial class ReportForm : Form
  7. {
  8. private ReportRepository repo = new ReportRepository();
  9. public ReportForm()
  10. {
  11. InitializeComponent();
  12. // Устанавливаем даты по умолчанию
  13. dtpRevenueFrom.Value = DateTime.Now.AddMonths(-1);
  14. dtpRevenueTo.Value = DateTime.Now;
  15. dtpDishSalesFrom.Value = DateTime.Now.AddMonths(-1);
  16. dtpDishSalesTo.Value = DateTime.Now;
  17. dtpWaiterStatsFrom.Value = DateTime.Now.AddMonths(-1);
  18. dtpWaiterStatsTo.Value = DateTime.Now;
  19. dtpPaymentMethodsFrom.Value = DateTime.Now.AddMonths(-1);
  20. dtpPaymentMethodsTo.Value = DateTime.Now;
  21. // Подписываем события
  22. btnRevenueShow.Click += (s, e) => LoadRevenueReport();
  23. btnDishSalesShow.Click += (s, e) => LoadDishSalesReport();
  24. btnWaiterStatsShow.Click += (s, e) => LoadWaiterStatsReport();
  25. btnPaymentMethodsShow.Click += (s, e) => LoadPaymentMethodsReport();
  26. btnLowStockRefresh.Click += (s, e) => LoadLowStockReport();
  27. // Загружаем данные
  28. LoadRevenueReport();
  29. LoadDishSalesReport();
  30. LoadWaiterStatsReport();
  31. LoadPaymentMethodsReport();
  32. LoadLowStockReport();
  33. }
  34. private void LoadRevenueReport()
  35. {
  36. try
  37. {
  38. var dt = repo.GetDailyRevenue(dtpRevenueFrom.Value, dtpRevenueTo.Value);
  39. dgvRevenue.DataSource = dt;
  40. if (dgvRevenue.Columns.Count > 0)
  41. {
  42. dgvRevenue.Columns["Дата"].HeaderText = "Дата";
  43. dgvRevenue.Columns["Платежей"].HeaderText = "Кол-во платежей";
  44. dgvRevenue.Columns["Выручка (руб.)"].HeaderText = "Выручка (руб.)";
  45. dgvRevenue.Columns["Средний чек (руб.)"].HeaderText = "Средний чек (руб.)";
  46. }
  47. }
  48. catch (Exception ex)
  49. {
  50. MessageBox.Show($"Ошибка: {ex.Message}");
  51. }
  52. }
  53. private void LoadDishSalesReport()
  54. {
  55. try
  56. {
  57. var dt = repo.GetDishSales(dtpDishSalesFrom.Value, dtpDishSalesTo.Value);
  58. dgvDishSales.DataSource = dt;
  59. if (dgvDishSales.Columns.Count > 0)
  60. {
  61. dgvDishSales.Columns["Блюдо"].HeaderText = "Блюдо";
  62. dgvDishSales.Columns["Категория"].HeaderText = "Категория";
  63. dgvDishSales.Columns["Кол-во"].HeaderText = "Кол-во продаж";
  64. dgvDishSales.Columns["Выручка (руб.)"].HeaderText = "Выручка (руб.)";
  65. }
  66. }
  67. catch (Exception ex)
  68. {
  69. MessageBox.Show($"Ошибка: {ex.Message}");
  70. }
  71. }
  72. private void LoadWaiterStatsReport()
  73. {
  74. try
  75. {
  76. var dt = repo.GetWaiterStats(dtpWaiterStatsFrom.Value, dtpWaiterStatsTo.Value);
  77. dgvWaiterStats.DataSource = dt;
  78. if (dgvWaiterStats.Columns.Count > 0)
  79. {
  80. dgvWaiterStats.Columns["Официант"].HeaderText = "Официант";
  81. dgvWaiterStats.Columns["Заказов"].HeaderText = "Кол-во заказов";
  82. dgvWaiterStats.Columns["Сумма (руб.)"].HeaderText = "Сумма (руб.)";
  83. dgvWaiterStats.Columns["Средний заказ (руб.)"].HeaderText = "Средний чек (руб.)";
  84. }
  85. }
  86. catch (Exception ex)
  87. {
  88. MessageBox.Show($"Ошибка: {ex.Message}");
  89. }
  90. }
  91. private void LoadPaymentMethodsReport()
  92. {
  93. try
  94. {
  95. var dt = repo.GetPaymentMethods(dtpPaymentMethodsFrom.Value, dtpPaymentMethodsTo.Value);
  96. dgvPaymentMethods.DataSource = dt;
  97. if (dgvPaymentMethods.Columns.Count > 0)
  98. {
  99. dgvPaymentMethods.Columns["Способ оплаты"].HeaderText = "Способ оплаты";
  100. dgvPaymentMethods.Columns["Кол-во"].HeaderText = "Кол-во";
  101. dgvPaymentMethods.Columns["Сумма (руб.)"].HeaderText = "Сумма (руб.)";
  102. dgvPaymentMethods.Columns["%"].HeaderText = "Доля (%)";
  103. }
  104. }
  105. catch (Exception ex)
  106. {
  107. MessageBox.Show($"Ошибка: {ex.Message}");
  108. }
  109. }
  110. private void LoadLowStockReport()
  111. {
  112. try
  113. {
  114. var dt = repo.GetLowStock();
  115. dgvLowStock.DataSource = dt;
  116. if (dgvLowStock.Columns.Count > 0)
  117. {
  118. dgvLowStock.Columns["Ингредиент"].HeaderText = "Ингредиент";
  119. dgvLowStock.Columns["Ед. изм."].HeaderText = "Ед. изм.";
  120. dgvLowStock.Columns["Остаток"].HeaderText = "Остаток";
  121. dgvLowStock.Columns["Минимум"].HeaderText = "Минимальный запас";
  122. dgvLowStock.Columns["Поставщик"].HeaderText = "Поставщик";
  123. }
  124. }
  125. catch (Exception ex)
  126. {
  127. MessageBox.Show($"Ошибка: {ex.Message}");
  128. }
  129. }
  130. }
  131. }