| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using RestaurantApp.DAL;
- using RestaurantApp.Models;
- using System;
- using System.Data;
- using System.Linq;
- using System.Net;
- using System.Windows.Forms;
- namespace RestaurantApp
- {
- public partial class OrderEditForm : Form
- {
- private OrderRepository repo = new OrderRepository();
- private EmployeeRepository empRepo = new EmployeeRepository();
- private ClientRepository clientRepo = new ClientRepository();
- public OrderEditForm()
- {
- InitializeComponent();
- LoadData();
- chkNoClient.CheckedChanged += (s, e) =>
- {
- cmbClient.Enabled = !chkNoClient.Checked;
- if (chkNoClient.Checked) cmbClient.SelectedIndex = -1;
- };
- btnSave.Click += BtnSave_Click;
- btnCancel.Click += (s, e) => DialogResult = DialogResult.Cancel;
- }
- private void LoadData()
- {
- // Загружаем столы
- var tables = repo.GetTables();
- cmbTable.DisplayMember = "info";
- cmbTable.ValueMember = "table_id";
- cmbTable.DataSource = tables;
- // Загружаем официантов
- var waiters = empRepo.GetWaiters();
- cmbWaiter.DisplayMember = "FullName";
- cmbWaiter.ValueMember = "EmployeeId";
- cmbWaiter.DataSource = waiters;
- // Загружаем клиентов
- var clients = clientRepo.GetAll();
- var clientList = clients.Select(c => new { c.ClientId, FullName = $"{c.LastName} {c.FirstName} ({c.Phone})" }).ToList();
- cmbClient.DisplayMember = "FullName";
- cmbClient.ValueMember = "ClientId";
- cmbClient.DataSource = clientList;
- // Выбираем текущего пользователя как официанта
- if (!string.IsNullOrEmpty(Program.CurrentRole) && Program.CurrentRole == "waiter")
- {
- var currentWaiter = waiters.FirstOrDefault(w => w.FullName == Program.CurrentUser);
- if (currentWaiter != null)
- cmbWaiter.SelectedValue = currentWaiter.EmployeeId;
- }
- }
- private void BtnSave_Click(object sender, EventArgs e)
- {
- if (cmbTable.SelectedItem == null)
- {
- MessageBox.Show("Выберите стол");
- return;
- }
- if (cmbWaiter.SelectedItem == null)
- {
- MessageBox.Show("Выберите официанта");
- return;
- }
- var order = new Order
- {
- TableId = (int)cmbTable.SelectedValue,
- EmployeeId = (int)cmbWaiter.SelectedValue,
- ClientId = chkNoClient.Checked ? (int?)null : (int?)cmbClient.SelectedValue,
- DiscountPct = numDiscount.Value
- };
- try
- {
- int orderId = repo.InsertOrder(order);
- DialogResult = DialogResult.OK;
- Close();
- }
- catch (Exception ex)
- {
- MessageBox.Show($"Ошибка: {ex.Message}");
- }
- }
- }
- }
|