202 lines
8.7 KiB
C#
202 lines
8.7 KiB
C#
|
using database;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Data;
|
|||
|
using System.Drawing;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using System.Windows.Forms;
|
|||
|
|
|||
|
namespace Forms
|
|||
|
{
|
|||
|
public partial class FormOrder : Form
|
|||
|
{
|
|||
|
private Abstractions bd;
|
|||
|
public FormOrder(Abstractions _bd)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
bd = _bd;
|
|||
|
}
|
|||
|
private void loadData()
|
|||
|
{
|
|||
|
// Получаем список заказов
|
|||
|
List<Order> orders = bd.GetOrders();
|
|||
|
|
|||
|
// Очищаем dataGridView перед заполнением новыми данными
|
|||
|
dataGridView.Rows.Clear();
|
|||
|
|
|||
|
// Предварительно определяем столбцы, если это не было сделано ранее
|
|||
|
if (dataGridView.ColumnCount == 0)
|
|||
|
{
|
|||
|
dataGridView.Columns.Add("Id", "ID");
|
|||
|
dataGridView.Columns.Add("ComponentId", "ComponentId");
|
|||
|
dataGridView.Columns["ComponentId"].Visible = false;
|
|||
|
dataGridView.Columns.Add("Component", "Component");
|
|||
|
dataGridView.Columns.Add("ClientId", "ClientId");
|
|||
|
dataGridView.Columns["ClientId"].Visible = false;
|
|||
|
dataGridView.Columns.Add("Client", "Client");
|
|||
|
dataGridView.Columns.Add("ServiceId", "ServiceId");
|
|||
|
dataGridView.Columns["ServiceId"].Visible = false;
|
|||
|
dataGridView.Columns.Add("Service", "Service");
|
|||
|
dataGridView.Columns.Add("DateStart", "Start Date");
|
|||
|
dataGridView.Columns.Add("EndDate", "End Date");
|
|||
|
dataGridView.Columns.Add("EndCost", "EndCost");
|
|||
|
}
|
|||
|
|
|||
|
// Заполняем dataGridView данными из списка заказов
|
|||
|
foreach (Order order in orders)
|
|||
|
{
|
|||
|
dataGridView.Rows.Add(order.Id,
|
|||
|
order.ComponentId,
|
|||
|
bd.GetComponentById(order.ComponentId).Title + " " + bd.GetComponentById(order.ComponentId).Manufacturer,
|
|||
|
order.ClientId,
|
|||
|
bd.GetClientById(order.ClientId).Name + " " + bd.GetClientById(order.ClientId).Surname,
|
|||
|
order.ServiceId,
|
|||
|
bd.GetServiceById(order.ServiceId).Title,
|
|||
|
order.DateStart, order.DateEnd, order.EndCost);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// Создаем новый объект Order и заполняем его данными из текстовых полей и комбо-боксов
|
|||
|
Order newOrder = new Order
|
|||
|
{
|
|||
|
ComponentId = ((Component)comboBoxComponent.SelectedItem).Id,
|
|||
|
ClientId = ((Client)comboBoxClient.SelectedItem).Id,
|
|||
|
ServiceId = ((Service)comboBoxService.SelectedItem).Id,
|
|||
|
EndCost = decimal.Parse(textBoxCost.Text),
|
|||
|
DateStart = textBoxStartDate.Text,
|
|||
|
DateEnd = textBoxEndDate.Text
|
|||
|
};
|
|||
|
|
|||
|
// Вызываем метод добавления нового заказа в базу данных
|
|||
|
bd.AddOrder(newOrder);
|
|||
|
|
|||
|
// Обновляем dataGridView
|
|||
|
loadData();
|
|||
|
}
|
|||
|
|
|||
|
private void buttonUpdate_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (dataGridView.SelectedRows.Count > 0)
|
|||
|
{
|
|||
|
// Получаем индекс выбранной строки
|
|||
|
int rowIndex = dataGridView.CurrentCell.RowIndex;
|
|||
|
|
|||
|
// Получаем ID редактируемого заказа из выбранной строки dataGridView
|
|||
|
int orderId = (int)dataGridView.Rows[rowIndex].Cells["Id"].Value;
|
|||
|
|
|||
|
// Создаем объект Order и заполняем его данными из текстовых полей и комбо-боксов
|
|||
|
Order updatedOrder = new Order
|
|||
|
{
|
|||
|
Id = orderId,
|
|||
|
EndCost = decimal.Parse(textBoxCost.Text),
|
|||
|
DateStart = textBoxStartDate.Text,
|
|||
|
DateEnd = textBoxEndDate.Text,
|
|||
|
ComponentId = ((Component)comboBoxComponent.SelectedItem).Id,
|
|||
|
ClientId = ((Client)comboBoxClient.SelectedItem).Id,
|
|||
|
ServiceId = ((Service)comboBoxService.SelectedItem).Id
|
|||
|
};
|
|||
|
|
|||
|
// Вызываем метод обновления заказа в базе данных
|
|||
|
bd.UpdateOrder(updatedOrder);
|
|||
|
|
|||
|
// Обновляем dataGridView
|
|||
|
loadData();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void buttonDelete_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (dataGridView.SelectedRows.Count > 0)
|
|||
|
{
|
|||
|
// Получаем индекс выбранной строки
|
|||
|
int rowIndex = dataGridView.CurrentCell.RowIndex;
|
|||
|
|
|||
|
// Получаем ID удаляемого заказа из выбранной строки dataGridView
|
|||
|
int orderId = (int)dataGridView.Rows[rowIndex].Cells["Id"].Value;
|
|||
|
|
|||
|
// Вызываем метод удаления заказа из базы данных
|
|||
|
bd.DeleteOrder(orderId);
|
|||
|
|
|||
|
// Обновляем dataGridView
|
|||
|
loadData();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
|
|||
|
{
|
|||
|
if (e.RowIndex >= 0)
|
|||
|
{
|
|||
|
DataGridViewRow row = dataGridView.Rows[e.RowIndex];
|
|||
|
|
|||
|
// Заполняем текстовые поля данными из выбранной строки
|
|||
|
textBoxCost.Text = row.Cells["EndCost"].Value.ToString();
|
|||
|
textBoxStartDate.Text = row.Cells["DateStart"].Value.ToString();
|
|||
|
textBoxEndDate.Text = row.Cells["EndDate"].Value.ToString();
|
|||
|
|
|||
|
// Получаем значения для комбо-боксов из выбранной строки
|
|||
|
int componentId = Convert.ToInt32(row.Cells["ComponentId"].Value);
|
|||
|
int clientId = Convert.ToInt32(row.Cells["ClientId"].Value);
|
|||
|
int serviceId = Convert.ToInt32(row.Cells["ServiceId"].Value);
|
|||
|
|
|||
|
// Заполняем комбо-боксы данными из БД
|
|||
|
//comboBoxComponent.DataSource = bd.GetComponents()
|
|||
|
// .Select(x => new helpCombobox()
|
|||
|
// {
|
|||
|
// Text = x.Title + " " + x.Manufacturer,
|
|||
|
// Id = x.Id
|
|||
|
// })
|
|||
|
// .ToList();
|
|||
|
//comboBoxComponent.DisplayMember = "Text";
|
|||
|
//comboBoxComponent.ValueMember = "Id";
|
|||
|
//comboBoxComponent.SelectedValue = componentId;
|
|||
|
|
|||
|
//comboBoxClient.DataSource = bd.GetClients()
|
|||
|
// .Select(x => new helpCombobox()
|
|||
|
// {
|
|||
|
// Text = x.Name + " " + x.Surname,
|
|||
|
// Id = x.Id
|
|||
|
// }).ToList();
|
|||
|
//comboBoxClient.DisplayMember = "Text";
|
|||
|
//comboBoxClient.ValueMember = "Id";
|
|||
|
//comboBoxClient.SelectedValue = clientId;
|
|||
|
|
|||
|
//comboBoxService.DataSource = bd.GetServices()
|
|||
|
// .Select(x => new helpCombobox()
|
|||
|
// {
|
|||
|
// Text = x.Title,
|
|||
|
// Id = x.Id
|
|||
|
// }).ToList();
|
|||
|
//comboBoxService.DisplayMember = "Text";
|
|||
|
//comboBoxService.ValueMember = "Id";
|
|||
|
//comboBoxService.SelectedValue = serviceId; // Здесь должно быть serviceId, а не clientId
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private void FormOrder_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// Заполнение comboBoxClientId данными из БД
|
|||
|
comboBoxComponent.DataSource = bd.GetComponents();
|
|||
|
comboBoxComponent.DisplayMember = "Name";
|
|||
|
comboBoxComponent.ValueMember = "Id";
|
|||
|
|
|||
|
// Заполнение comboBoxOrderId данными из БД
|
|||
|
comboBoxClient.DataSource = bd.GetClients();
|
|||
|
comboBoxClient.DisplayMember = "Title";
|
|||
|
comboBoxClient.ValueMember = "Id";
|
|||
|
|
|||
|
// Заполнение comboBoxOrderId данными из БД
|
|||
|
comboBoxService.DataSource = bd.GetServices();
|
|||
|
comboBoxService.DisplayMember = "Title";
|
|||
|
comboBoxService.ValueMember = "Id";
|
|||
|
|
|||
|
loadData();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|