Если глобально, то решил убрать обновление заказов тк. считаю это излишним и может угрожать целостности данных
This commit is contained in:
parent
d33fff8c1b
commit
33ec560a98
@ -91,6 +91,7 @@
|
||||
//
|
||||
// dateTimePickerOrderDate
|
||||
//
|
||||
dateTimePickerOrderDate.CausesValidation = false;
|
||||
dateTimePickerOrderDate.Enabled = false;
|
||||
dateTimePickerOrderDate.Location = new Point(190, 12);
|
||||
dateTimePickerOrderDate.Name = "dateTimePickerOrderDate";
|
||||
@ -110,6 +111,7 @@
|
||||
dateTimeIssue.Name = "dateTimeIssue";
|
||||
dateTimeIssue.Size = new Size(200, 25);
|
||||
dateTimeIssue.TabIndex = 6;
|
||||
dateTimeIssue.Value = new DateTime(2024, 12, 15, 0, 0, 0, 0);
|
||||
//
|
||||
// label3
|
||||
//
|
||||
|
@ -33,6 +33,7 @@ namespace ProjectRepairCompany.Forms
|
||||
dateTimeCompletion.Value = order.DateCompletion;
|
||||
dateTimeIssue.Value = order.DateIssue;
|
||||
|
||||
dataGridView.Rows.Clear();
|
||||
foreach (var detail in order.OrderDetails)
|
||||
{
|
||||
dataGridView.Rows.Add(detail.DetailId, detail.DetailCount);
|
||||
@ -59,9 +60,9 @@ namespace ProjectRepairCompany.Forms
|
||||
comboBoxMaster.DisplayMember = "MasterName";
|
||||
comboBoxMaster.ValueMember = "Id";
|
||||
|
||||
Detail.DataSource = detailRepository.ReadDetails();
|
||||
Detail.DisplayMember = "NameDetail";
|
||||
Detail.ValueMember = "Id";
|
||||
Detail.DataSource = detailRepository.ReadDetails();
|
||||
Detail.DisplayMember = "NameDetail";
|
||||
Detail.ValueMember = "Id";
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
@ -73,15 +74,9 @@ namespace ProjectRepairCompany.Forms
|
||||
throw new Exception("Имеются незаполненные поля.");
|
||||
}
|
||||
|
||||
var order = CreateOrder();
|
||||
if (_orderId.HasValue)
|
||||
{
|
||||
_orderRepository.UpdateOrder(order);
|
||||
}
|
||||
else
|
||||
{
|
||||
_orderRepository.CreateOrder(order);
|
||||
}
|
||||
var order = CreateOrder();
|
||||
_orderRepository.CreateOrder(order);
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
@ -99,13 +94,15 @@ namespace ProjectRepairCompany.Forms
|
||||
foreach (DataGridViewRow row in dataGridView.Rows)
|
||||
{
|
||||
if (row.Cells["Detail"].Value == null ||
|
||||
row.Cells["DetailCount"].Value == null)
|
||||
row.Cells["DetailCount"].Value == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
list.Add(OrderDetail.CreateOperation(0,
|
||||
Convert.ToInt32(row.Cells["Detail"].Value),
|
||||
Convert.ToInt32(row.Cells["DetailCount"].Value)));
|
||||
list.Add(OrderDetail.CreateOperation(
|
||||
_orderId ?? 0,
|
||||
Convert.ToInt32(row.Cells["Detail"].Value),
|
||||
Convert.ToInt32(row.Cells["DetailCount"].Value)
|
||||
));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
@ -123,4 +123,10 @@
|
||||
<metadata name="DetailCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Detail.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="DetailCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
@ -29,7 +29,6 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
panel1 = new Panel();
|
||||
ButtonUp = new Button();
|
||||
ButtonDel = new Button();
|
||||
ButtonAdd = new Button();
|
||||
dataGridView = new DataGridView();
|
||||
@ -39,7 +38,6 @@
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(ButtonUp);
|
||||
panel1.Controls.Add(ButtonDel);
|
||||
panel1.Controls.Add(ButtonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
@ -48,17 +46,6 @@
|
||||
panel1.Size = new Size(193, 450);
|
||||
panel1.TabIndex = 2;
|
||||
//
|
||||
// ButtonUp
|
||||
//
|
||||
ButtonUp.BackgroundImage = Properties.Resources.Feedbin_Icon_home_edit_svg;
|
||||
ButtonUp.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonUp.Location = new Point(42, 113);
|
||||
ButtonUp.Name = "ButtonUp";
|
||||
ButtonUp.Size = new Size(117, 77);
|
||||
ButtonUp.TabIndex = 2;
|
||||
ButtonUp.UseVisualStyleBackColor = true;
|
||||
ButtonUp.Click += ButtonUp_Click;
|
||||
//
|
||||
// ButtonDel
|
||||
//
|
||||
ButtonDel.BackgroundImage = Properties.Resources.Ic_remove_circle_48px_svg;
|
||||
@ -117,7 +104,6 @@
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button ButtonUp;
|
||||
private Button ButtonDel;
|
||||
private Button ButtonAdd;
|
||||
private DataGridView dataGridView;
|
||||
|
@ -53,28 +53,6 @@ namespace ProjectRepairCompany.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonUp_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
var form = _container.Resolve<FormOrder>();
|
||||
form.Id = findId;
|
||||
if (form.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
LoadList();
|
||||
dataGridView.Refresh();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка изменения", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void ButtonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
@ -10,13 +10,19 @@ namespace ProjectRepairCompany.Forms
|
||||
public partial class FormStorageDetail : Form
|
||||
{
|
||||
private readonly IStorageDetailRepository _storageDetailRepository;
|
||||
private readonly IDetailRepository _detailRepository;
|
||||
|
||||
public FormStorageDetail(IStorageDetailRepository storageDetailRepository, IDetailRepository detailRepository)
|
||||
public FormStorageDetail(IStorageDetailRepository storageDetailRepository, IDetailRepository detailRepository, IStorageRepository storageRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_storageDetailRepository = storageDetailRepository ?? throw new ArgumentNullException(nameof(storageDetailRepository));
|
||||
_detailRepository = detailRepository ?? throw new ArgumentNullException(nameof(detailRepository));
|
||||
|
||||
comboBoxAddress.DataSource = storageRepository.ReadStorages();
|
||||
comboBoxAddress.DisplayMember = "StorageAddress";
|
||||
comboBoxAddress.ValueMember = "Id";
|
||||
|
||||
comboBoxDetail.DataSource = detailRepository.ReadDetails();
|
||||
comboBoxDetail.DisplayMember = "NameDetail";
|
||||
comboBoxDetail.ValueMember = "Id";
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
|
@ -12,6 +12,5 @@ public interface IOrderRepository
|
||||
IEnumerable<Order> ReadOrders();
|
||||
Order ReadOrderById(int id);
|
||||
void CreateOrder(Order order);
|
||||
void UpdateOrder(Order order);
|
||||
void DeleteOrder(int id);
|
||||
}
|
||||
|
@ -64,64 +64,6 @@ public class OrderRepository : IOrderRepository
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateOrder(Order order)
|
||||
{
|
||||
_logger.LogInformation("Обновление заказа с Id {OrderId}", order.Id);
|
||||
_logger.LogDebug("Обновляемый объект заказа: {json}", JsonConvert.SerializeObject(order));
|
||||
|
||||
try
|
||||
{
|
||||
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
||||
connection.Open();
|
||||
using var transaction = connection.BeginTransaction();
|
||||
|
||||
var queryUpdate = @"
|
||||
UPDATE ""Order""
|
||||
SET DateCompletion = @DateCompletion,
|
||||
DateIssue = @DateIssue,
|
||||
FullPrice = @FullPrice,
|
||||
MasterId = @MasterId
|
||||
WHERE Id = @Id";
|
||||
|
||||
connection.Execute(queryUpdate, new
|
||||
{
|
||||
order.Id,
|
||||
order.DateCompletion,
|
||||
order.DateIssue,
|
||||
order.FullPrice,
|
||||
order.MasterId
|
||||
}, transaction);
|
||||
|
||||
_logger.LogInformation("Заказ с Id {OrderId} обновлен.", order.Id);
|
||||
|
||||
var queryDeleteDetails = "DELETE FROM OrderDetail WHERE OrderId = @OrderId";
|
||||
connection.Execute(queryDeleteDetails, new { order.Id }, transaction);
|
||||
|
||||
var queryInsertDetails = @"
|
||||
INSERT INTO OrderDetail (OrderId, DetailId, DetailCount)
|
||||
VALUES (@OrderId, @DetailId, @DetailCount)";
|
||||
|
||||
foreach (var detail in order.OrderDetails)
|
||||
{
|
||||
connection.Execute(queryInsertDetails, new
|
||||
{
|
||||
order.Id,
|
||||
detail.DetailId,
|
||||
detail.DetailCount
|
||||
}, transaction);
|
||||
}
|
||||
|
||||
transaction.Commit();
|
||||
_logger.LogInformation("Детали для заказа с Id {OrderId} обновлены.", order.Id);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Ошибка при обновлении заказа с Id {OrderId}.", order.Id);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void DeleteOrder(int id)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user