134 lines
4.2 KiB
C#
134 lines
4.2 KiB
C#
using moduleExamen.Data;
|
|
using moduleExamen.Models;
|
|
|
|
namespace moduleExamen.Forms
|
|
{
|
|
public partial class OrderEditForm : Form
|
|
{
|
|
private Order editingOrder;
|
|
private bool isEditing;
|
|
|
|
public OrderEditForm(Order order)
|
|
{
|
|
InitializeComponent();
|
|
|
|
var iconPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "icon.ico");
|
|
if (File.Exists(iconPath))
|
|
Icon = new Icon(iconPath);
|
|
|
|
var logoPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "logo.png");
|
|
if (File.Exists(logoPath))
|
|
logoPictureBox.Image = Image.FromFile(logoPath);
|
|
|
|
editingOrder = order;
|
|
isEditing = order != null;
|
|
|
|
if (isEditing)
|
|
{
|
|
Text = "Sport Farm - Редактирование заказа";
|
|
idLabel.Text = "Заказ #" + order.Idzakaz;
|
|
}
|
|
else
|
|
{
|
|
Text = "Sport Farm - Добавление заказа";
|
|
idLabel.Text = "Новый заказ";
|
|
}
|
|
|
|
LoadStatuses();
|
|
if (isEditing) FillFields();
|
|
}
|
|
|
|
private void DateEndCheckBox_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
dateEndPicker.Enabled = dateEndCheckBox.Checked;
|
|
}
|
|
|
|
private void CancelButton_Click(object sender, EventArgs e)
|
|
{
|
|
Close();
|
|
}
|
|
|
|
private void LoadStatuses()
|
|
{
|
|
try
|
|
{
|
|
using var context = new SportShopContext();
|
|
statusComboBox.DataSource = context.Statuses.ToList();
|
|
statusComboBox.DisplayMember = "Name";
|
|
statusComboBox.ValueMember = "IdStatus";
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("Ошибка загрузки статусов: " + ex.Message);
|
|
}
|
|
}
|
|
|
|
private void FillFields()
|
|
{
|
|
if (editingOrder == null) return;
|
|
|
|
articleTextBox.Text = editingOrder.Article;
|
|
statusComboBox.SelectedValue = editingOrder.IdStatus;
|
|
addressTextBox.Text = editingOrder.Adrec;
|
|
dateStartPicker.Value = editingOrder.DataStart.ToDateTime(TimeOnly.MinValue);
|
|
|
|
if (editingOrder.DateEnd.HasValue)
|
|
{
|
|
dateEndCheckBox.Checked = true;
|
|
dateEndPicker.Value = editingOrder.DateEnd.Value.ToDateTime(TimeOnly.MinValue);
|
|
}
|
|
}
|
|
|
|
private void SaveButton_Click(object sender, EventArgs e)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(articleTextBox.Text))
|
|
{
|
|
MessageBox.Show("Введите артикул заказа.");
|
|
return;
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(addressTextBox.Text))
|
|
{
|
|
MessageBox.Show("Введите адрес пункта выдачи.");
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
using var context = new SportShopContext();
|
|
|
|
Order order;
|
|
if (isEditing)
|
|
{
|
|
order = context.Orders.First(o => o.Idzakaz == editingOrder.Idzakaz);
|
|
}
|
|
else
|
|
{
|
|
order = new Order();
|
|
order.Fio = 1;
|
|
context.Orders.Add(order);
|
|
}
|
|
|
|
order.Article = articleTextBox.Text.Trim();
|
|
order.IdStatus = (int)statusComboBox.SelectedValue;
|
|
order.Adrec = addressTextBox.Text.Trim();
|
|
order.DataStart = DateOnly.FromDateTime(dateStartPicker.Value);
|
|
|
|
if (dateEndCheckBox.Checked)
|
|
order.DateEnd = DateOnly.FromDateTime(dateEndPicker.Value);
|
|
else
|
|
order.DateEnd = null;
|
|
|
|
context.SaveChanges();
|
|
|
|
MessageBox.Show("Заказ сохранён.");
|
|
Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("Ошибка сохранения: " + ex.Message);
|
|
}
|
|
}
|
|
}
|
|
}
|