| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- using System;
- using System.Windows.Forms;
- namespace WindowsFormsApp4
- {
- public partial class ChangeStatusForm : Form
- {
- private int requestId;
- private string currentStatus;
- public ChangeStatusForm(int requestId, string currentStatus)
- {
- InitializeComponent();
- this.requestId = requestId;
- this.currentStatus = currentStatus;
- AttachEventHandlers();
- LoadAvailableStatuses();
- DisplayCurrentStatus();
- }
- private void AttachEventHandlers()
- {
- btnSave.Click += BtnSave_Click;
- btnCancel.Click += BtnCancel_Click;
- }
- private void LoadAvailableStatuses()
- {
- // Доступные статусы
- cmbNewStatus.Items.Clear();
- if (currentStatus != "new")
- cmbNewStatus.Items.Add("Новая");
- if (currentStatus != "in_progress")
- cmbNewStatus.Items.Add("В работе");
- if (currentStatus != "completed")
- cmbNewStatus.Items.Add("Выполнена");
- if (currentStatus != "cancelled")
- cmbNewStatus.Items.Add("Отменена");
- if (currentStatus != "overdue")
- cmbNewStatus.Items.Add("Просрочена");
- if (cmbNewStatus.Items.Count > 0)
- cmbNewStatus.SelectedIndex = 0;
- }
- private void DisplayCurrentStatus()
- {
- string displayStatus = "";
- switch (currentStatus)
- {
- case "new":
- displayStatus = "Новая";
- break;
- case "in_progress":
- displayStatus = "В работе";
- break;
- case "completed":
- displayStatus = "Выполнена";
- break;
- case "cancelled":
- displayStatus = "Отменена";
- break;
- case "overdue":
- displayStatus = "Просрочена";
- break;
- default:
- displayStatus = currentStatus;
- break;
- }
- lblCurrentStatus.Text = $"Текущий статус: {displayStatus}";
- }
- private string GetStatusValue(string displayStatus)
- {
- switch (displayStatus)
- {
- case "Новая":
- return "new";
- case "В работе":
- return "in_progress";
- case "Выполнена":
- return "completed";
- case "Отменена":
- return "cancelled";
- case "Просрочена":
- return "overdue";
- default:
- return "";
- }
- }
- private void BtnSave_Click(object sender, EventArgs e)
- {
- try
- {
- if (cmbNewStatus.SelectedItem == null)
- {
- MessageBox.Show("Выберите новый статус", "Ошибка",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- string selectedStatus = cmbNewStatus.SelectedItem.ToString();
- string newStatus = GetStatusValue(selectedStatus);
- if (DatabaseHelper.UpdateRequestStatus(requestId, newStatus))
- {
- MessageBox.Show("Статус успешно изменён", "Успешно",
- MessageBoxButtons.OK, MessageBoxIcon.Information);
- this.DialogResult = DialogResult.OK;
- this.Close();
- }
- else
- {
- MessageBox.Show("Ошибка при изменении статуса", "Ошибка",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show($"Ошибка: {ex.Message}", "Ошибка",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- private void BtnCancel_Click(object sender, EventArgs e)
- {
- this.DialogResult = DialogResult.Cancel;
- this.Close();
- }
- }
- }
|