| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- using System;
- using System.Data;
- using System.Windows.Forms;
- namespace WindowsFormsApp4
- {
- public partial class ManagersForm : Form
- {
- private DataTable managersTable;
- public ManagersForm()
- {
- InitializeComponent();
- AttachEventHandlers();
- LoadManagers();
- ConfigureGrid();
- }
- private void AttachEventHandlers()
- {
- btnRefresh.Click += BtnRefresh_Click;
- btnAdd.Click += BtnAdd_Click;
- btnEdit.Click += BtnEdit_Click;
- btnDelete.Click += BtnDelete_Click;
- btnBack.Click += BtnBack_Click;
- }
- private void LoadManagers()
- {
- managersTable = DatabaseHelper.GetManagers();
- dgvManagers.DataSource = managersTable;
- ConfigureGrid();
- }
- private void ConfigureGrid()
- {
- if (dgvManagers.Columns.Count == 0) return;
- // Настройка заголовков
- if (dgvManagers.Columns.Contains("id"))
- dgvManagers.Columns["id"].HeaderText = "ID";
- if (dgvManagers.Columns.Contains("last_name"))
- dgvManagers.Columns["last_name"].HeaderText = "Фамилия";
- if (dgvManagers.Columns.Contains("first_name"))
- dgvManagers.Columns["first_name"].HeaderText = "Имя";
- if (dgvManagers.Columns.Contains("middle_name"))
- dgvManagers.Columns["middle_name"].HeaderText = "Отчество";
- if (dgvManagers.Columns.Contains("phone"))
- dgvManagers.Columns["phone"].HeaderText = "Телефон";
- // Настройка цвета строк
- dgvManagers.DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(50, 56, 67);
- dgvManagers.DefaultCellStyle.ForeColor = System.Drawing.Color.FromArgb(203, 232, 87);
- dgvManagers.DefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(198, 141, 255);
- dgvManagers.DefaultCellStyle.SelectionForeColor = System.Drawing.Color.FromArgb(50, 56, 67);
- dgvManagers.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(198, 141, 255);
- dgvManagers.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.Color.FromArgb(50, 56, 67);
- dgvManagers.EnableHeadersVisualStyles = false;
- dgvManagers.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
- }
- private void BtnRefresh_Click(object sender, EventArgs e)
- {
- LoadManagers();
- }
- private void BtnAdd_Click(object sender, EventArgs e)
- {
- ManagerEditForm form = new ManagerEditForm();
- if (form.ShowDialog() == DialogResult.OK)
- {
- LoadManagers();
- MessageBox.Show("Менеджер успешно добавлен", "Успешно",
- MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- private void BtnEdit_Click(object sender, EventArgs e)
- {
- if (dgvManagers.CurrentRow == null)
- {
- MessageBox.Show("Выберите менеджера для редактирования", "Ошибка",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- int managerId = Convert.ToInt32(dgvManagers.CurrentRow.Cells["id"].Value);
- string lastName = dgvManagers.CurrentRow.Cells["last_name"].Value.ToString();
- string firstName = dgvManagers.CurrentRow.Cells["first_name"].Value.ToString();
- string middleName = dgvManagers.CurrentRow.Cells["middle_name"].Value?.ToString();
- string phone = dgvManagers.CurrentRow.Cells["phone"].Value.ToString();
- ManagerEditForm form = new ManagerEditForm(managerId, lastName, firstName, middleName, phone);
- if (form.ShowDialog() == DialogResult.OK)
- {
- LoadManagers();
- MessageBox.Show("Менеджер успешно обновлён", "Успешно",
- MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- private void BtnDelete_Click(object sender, EventArgs e)
- {
- if (dgvManagers.CurrentRow == null)
- {
- MessageBox.Show("Выберите менеджера для удаления", "Ошибка",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- int managerId = Convert.ToInt32(dgvManagers.CurrentRow.Cells["id"].Value);
- string managerName = dgvManagers.CurrentRow.Cells["last_name"].Value.ToString() + " " +
- dgvManagers.CurrentRow.Cells["first_name"].Value.ToString();
- // Проверка, есть ли у менеджера активные заявки
- int activeRequests = DatabaseHelper.GetManagerActiveRequests(managerId);
- if (activeRequests > 0)
- {
- MessageBox.Show($"Нельзя удалить менеджера {managerName}.\nУ него есть {activeRequests} активных заявок.",
- "Невозможно удалить", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- DialogResult result = MessageBox.Show($"Удалить менеджера {managerName}?",
- "Подтверждение удаления", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
- if (result == DialogResult.Yes)
- {
- if (DatabaseHelper.DeleteManager(managerId))
- {
- LoadManagers();
- MessageBox.Show("Менеджер успешно удалён", "Успешно",
- MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- else
- {
- MessageBox.Show("Ошибка при удалении менеджера", "Ошибка",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- private void BtnBack_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- }
- }
|