Если глобально, то решил убрать обновление заказов тк. считаю это излишним и может угрожать целостности данных
This commit is contained in:
parent
d33fff8c1b
commit
33ec560a98
@ -91,6 +91,7 @@
|
|||||||
//
|
//
|
||||||
// dateTimePickerOrderDate
|
// dateTimePickerOrderDate
|
||||||
//
|
//
|
||||||
|
dateTimePickerOrderDate.CausesValidation = false;
|
||||||
dateTimePickerOrderDate.Enabled = false;
|
dateTimePickerOrderDate.Enabled = false;
|
||||||
dateTimePickerOrderDate.Location = new Point(190, 12);
|
dateTimePickerOrderDate.Location = new Point(190, 12);
|
||||||
dateTimePickerOrderDate.Name = "dateTimePickerOrderDate";
|
dateTimePickerOrderDate.Name = "dateTimePickerOrderDate";
|
||||||
@ -110,6 +111,7 @@
|
|||||||
dateTimeIssue.Name = "dateTimeIssue";
|
dateTimeIssue.Name = "dateTimeIssue";
|
||||||
dateTimeIssue.Size = new Size(200, 25);
|
dateTimeIssue.Size = new Size(200, 25);
|
||||||
dateTimeIssue.TabIndex = 6;
|
dateTimeIssue.TabIndex = 6;
|
||||||
|
dateTimeIssue.Value = new DateTime(2024, 12, 15, 0, 0, 0, 0);
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
|
@ -33,6 +33,7 @@ namespace ProjectRepairCompany.Forms
|
|||||||
dateTimeCompletion.Value = order.DateCompletion;
|
dateTimeCompletion.Value = order.DateCompletion;
|
||||||
dateTimeIssue.Value = order.DateIssue;
|
dateTimeIssue.Value = order.DateIssue;
|
||||||
|
|
||||||
|
dataGridView.Rows.Clear();
|
||||||
foreach (var detail in order.OrderDetails)
|
foreach (var detail in order.OrderDetails)
|
||||||
{
|
{
|
||||||
dataGridView.Rows.Add(detail.DetailId, detail.DetailCount);
|
dataGridView.Rows.Add(detail.DetailId, detail.DetailCount);
|
||||||
@ -59,9 +60,9 @@ namespace ProjectRepairCompany.Forms
|
|||||||
comboBoxMaster.DisplayMember = "MasterName";
|
comboBoxMaster.DisplayMember = "MasterName";
|
||||||
comboBoxMaster.ValueMember = "Id";
|
comboBoxMaster.ValueMember = "Id";
|
||||||
|
|
||||||
Detail.DataSource = detailRepository.ReadDetails();
|
Detail.DataSource = detailRepository.ReadDetails();
|
||||||
Detail.DisplayMember = "NameDetail";
|
Detail.DisplayMember = "NameDetail";
|
||||||
Detail.ValueMember = "Id";
|
Detail.ValueMember = "Id";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ButtonSave_Click(object sender, EventArgs e)
|
private void ButtonSave_Click(object sender, EventArgs e)
|
||||||
@ -73,15 +74,9 @@ namespace ProjectRepairCompany.Forms
|
|||||||
throw new Exception("Имеются незаполненные поля.");
|
throw new Exception("Имеются незаполненные поля.");
|
||||||
}
|
}
|
||||||
|
|
||||||
var order = CreateOrder();
|
var order = CreateOrder();
|
||||||
if (_orderId.HasValue)
|
_orderRepository.CreateOrder(order);
|
||||||
{
|
|
||||||
_orderRepository.UpdateOrder(order);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_orderRepository.CreateOrder(order);
|
|
||||||
}
|
|
||||||
DialogResult = DialogResult.OK;
|
DialogResult = DialogResult.OK;
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
@ -99,13 +94,15 @@ namespace ProjectRepairCompany.Forms
|
|||||||
foreach (DataGridViewRow row in dataGridView.Rows)
|
foreach (DataGridViewRow row in dataGridView.Rows)
|
||||||
{
|
{
|
||||||
if (row.Cells["Detail"].Value == null ||
|
if (row.Cells["Detail"].Value == null ||
|
||||||
row.Cells["DetailCount"].Value == null)
|
row.Cells["DetailCount"].Value == null)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
list.Add(OrderDetail.CreateOperation(0,
|
list.Add(OrderDetail.CreateOperation(
|
||||||
Convert.ToInt32(row.Cells["Detail"].Value),
|
_orderId ?? 0,
|
||||||
Convert.ToInt32(row.Cells["DetailCount"].Value)));
|
Convert.ToInt32(row.Cells["Detail"].Value),
|
||||||
|
Convert.ToInt32(row.Cells["DetailCount"].Value)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
@ -123,4 +123,10 @@
|
|||||||
<metadata name="DetailCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="DetailCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</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>
|
</root>
|
@ -29,7 +29,6 @@
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
panel1 = new Panel();
|
panel1 = new Panel();
|
||||||
ButtonUp = new Button();
|
|
||||||
ButtonDel = new Button();
|
ButtonDel = new Button();
|
||||||
ButtonAdd = new Button();
|
ButtonAdd = new Button();
|
||||||
dataGridView = new DataGridView();
|
dataGridView = new DataGridView();
|
||||||
@ -39,7 +38,6 @@
|
|||||||
//
|
//
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
panel1.Controls.Add(ButtonUp);
|
|
||||||
panel1.Controls.Add(ButtonDel);
|
panel1.Controls.Add(ButtonDel);
|
||||||
panel1.Controls.Add(ButtonAdd);
|
panel1.Controls.Add(ButtonAdd);
|
||||||
panel1.Dock = DockStyle.Right;
|
panel1.Dock = DockStyle.Right;
|
||||||
@ -48,17 +46,6 @@
|
|||||||
panel1.Size = new Size(193, 450);
|
panel1.Size = new Size(193, 450);
|
||||||
panel1.TabIndex = 2;
|
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
|
||||||
//
|
//
|
||||||
ButtonDel.BackgroundImage = Properties.Resources.Ic_remove_circle_48px_svg;
|
ButtonDel.BackgroundImage = Properties.Resources.Ic_remove_circle_48px_svg;
|
||||||
@ -117,7 +104,6 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private Panel panel1;
|
private Panel panel1;
|
||||||
private Button ButtonUp;
|
|
||||||
private Button ButtonDel;
|
private Button ButtonDel;
|
||||||
private Button ButtonAdd;
|
private Button ButtonAdd;
|
||||||
private DataGridView dataGridView;
|
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)
|
private void ButtonDel_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -10,13 +10,19 @@ namespace ProjectRepairCompany.Forms
|
|||||||
public partial class FormStorageDetail : Form
|
public partial class FormStorageDetail : Form
|
||||||
{
|
{
|
||||||
private readonly IStorageDetailRepository _storageDetailRepository;
|
private readonly IStorageDetailRepository _storageDetailRepository;
|
||||||
private readonly IDetailRepository _detailRepository;
|
|
||||||
|
|
||||||
public FormStorageDetail(IStorageDetailRepository storageDetailRepository, IDetailRepository detailRepository)
|
public FormStorageDetail(IStorageDetailRepository storageDetailRepository, IDetailRepository detailRepository, IStorageRepository storageRepository)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
_storageDetailRepository = storageDetailRepository ?? throw new ArgumentNullException(nameof(storageDetailRepository));
|
_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)
|
private void ButtonSave_Click(object sender, EventArgs e)
|
||||||
|
@ -12,6 +12,5 @@ public interface IOrderRepository
|
|||||||
IEnumerable<Order> ReadOrders();
|
IEnumerable<Order> ReadOrders();
|
||||||
Order ReadOrderById(int id);
|
Order ReadOrderById(int id);
|
||||||
void CreateOrder(Order order);
|
void CreateOrder(Order order);
|
||||||
void UpdateOrder(Order order);
|
|
||||||
void DeleteOrder(int id);
|
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)
|
public void DeleteOrder(int id)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user