Статус поставки
This commit is contained in:
parent
8a1732026c
commit
c87d686110
@ -31,7 +31,8 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
{
|
{
|
||||||
throw new Exception("Insert operation failed.");
|
throw new Exception("Insert operation failed.");
|
||||||
}
|
}
|
||||||
return sell;
|
//return sell;
|
||||||
|
return new();
|
||||||
}
|
}
|
||||||
public SellViewModel GetElement(SellSearchModel model)
|
public SellViewModel GetElement(SellSearchModel model)
|
||||||
{
|
{
|
||||||
@ -41,17 +42,19 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
{
|
{
|
||||||
throw new Exception("Get element operation failed.");
|
throw new Exception("Get element operation failed.");
|
||||||
}
|
}
|
||||||
return sell;
|
return new();
|
||||||
|
//return sell;
|
||||||
}
|
}
|
||||||
public IEnumerable<SellViewModel> GetElements(SellSearchModel? model)
|
public IEnumerable<SellViewModel> GetElements(SellSearchModel? model)
|
||||||
{
|
{
|
||||||
var sell_list = _sellStorage.GetList(model);
|
//var sell_list = _sellStorage.GetList(model);
|
||||||
if (sell_list is null || sell_list.Count() == 0)
|
//if (sell_list is null || sell_list.Count() == 0)
|
||||||
{
|
//{
|
||||||
_logger.LogWarning("ReadList return null list");
|
// _logger.LogWarning("ReadList return null list");
|
||||||
return [];
|
// return [];
|
||||||
}
|
//}
|
||||||
return sell_list;
|
return [];
|
||||||
|
//return sell_list;
|
||||||
}
|
}
|
||||||
public SellViewModel Update(SellSearchModel model)
|
public SellViewModel Update(SellSearchModel model)
|
||||||
{
|
{
|
||||||
@ -61,7 +64,8 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
{
|
{
|
||||||
throw new Exception("Update operation failed.");
|
throw new Exception("Update operation failed.");
|
||||||
}
|
}
|
||||||
return sell;
|
return new();
|
||||||
|
//return sell;
|
||||||
}
|
}
|
||||||
public SellViewModel Delete(SellSearchModel model)
|
public SellViewModel Delete(SellSearchModel model)
|
||||||
{
|
{
|
||||||
@ -71,7 +75,8 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
{
|
{
|
||||||
throw new Exception("Update operation failed.");
|
throw new Exception("Update operation failed.");
|
||||||
}
|
}
|
||||||
return sell;
|
return new();
|
||||||
|
//return sell;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ using Contracts.BusinessLogicContracts;
|
|||||||
using Contracts.SearchModels;
|
using Contracts.SearchModels;
|
||||||
using Contracts.StorageContracts;
|
using Contracts.StorageContracts;
|
||||||
using Contracts.ViewModels;
|
using Contracts.ViewModels;
|
||||||
|
using DataModels.Enums;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -101,5 +102,22 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
throw new ArgumentNullException("Нет названия поставки", nameof(model.Name));
|
throw new ArgumentNullException("Нет названия поставки", nameof(model.Name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool StatusUpdate(SupplyBindingModel model, SupplyStatus newStatus)
|
||||||
|
{
|
||||||
|
if (model.Status + 1 != newStatus)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Status update to " + newStatus.ToString() + " operation failed. Supply status incorrect.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
model.Status = newStatus;
|
||||||
|
if (_supplyStorage.Update(model) == null)
|
||||||
|
{
|
||||||
|
model.Status--;
|
||||||
|
_logger.LogWarning("Update operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using Contracts.BindingModels;
|
using Contracts.BindingModels;
|
||||||
using Contracts.SearchModels;
|
using Contracts.SearchModels;
|
||||||
using Contracts.ViewModels;
|
using Contracts.ViewModels;
|
||||||
|
using DataModels.Enums;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -16,5 +17,6 @@ namespace Contracts.BusinessLogicContracts
|
|||||||
bool Create(SupplyBindingModel model);
|
bool Create(SupplyBindingModel model);
|
||||||
bool Update(SupplyBindingModel model);
|
bool Update(SupplyBindingModel model);
|
||||||
bool Delete(SupplyBindingModel model);
|
bool Delete(SupplyBindingModel model);
|
||||||
|
bool StatusUpdate(SupplyBindingModel model, SupplyStatus status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ namespace Contracts.StorageContracts
|
|||||||
List<SupplyViewModel> GetFilteredList(SupplySearchModel model);
|
List<SupplyViewModel> GetFilteredList(SupplySearchModel model);
|
||||||
SupplyViewModel? GetElement(SupplySearchModel model);
|
SupplyViewModel? GetElement(SupplySearchModel model);
|
||||||
SupplyViewModel? Insert(SupplyBindingModel model);
|
SupplyViewModel? Insert(SupplyBindingModel model);
|
||||||
SupplyViewModel? Update(SupplyBindingModel model);
|
bool? Update(SupplyBindingModel model);
|
||||||
SupplyViewModel? Delete(SupplyBindingModel model);
|
SupplyViewModel? Delete(SupplyBindingModel model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ namespace DatabaseImplement.Implements
|
|||||||
return newProduct.GetViewModel;
|
return newProduct.GetViewModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SupplyViewModel? Update(SupplyBindingModel model)
|
public bool? Update(SupplyBindingModel model)
|
||||||
{
|
{
|
||||||
using var context = new Database();
|
using var context = new Database();
|
||||||
using var transaction = context.Database.BeginTransaction();
|
using var transaction = context.Database.BeginTransaction();
|
||||||
@ -137,13 +137,12 @@ namespace DatabaseImplement.Implements
|
|||||||
rec.Id == model.Id);
|
rec.Id == model.Id);
|
||||||
if (product == null)
|
if (product == null)
|
||||||
{
|
{
|
||||||
return null;
|
return false;
|
||||||
}
|
}
|
||||||
product.Update(model);
|
product.Update(model);
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
product.UpdateProducts(context, model);
|
|
||||||
transaction.Commit();
|
transaction.Commit();
|
||||||
return product.GetViewModel;
|
return true;
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
@ -65,8 +65,7 @@ namespace DatabaseImplement.Models
|
|||||||
}
|
}
|
||||||
public void Update(SupplyBindingModel model)
|
public void Update(SupplyBindingModel model)
|
||||||
{
|
{
|
||||||
Name = model.Name;
|
Status = model.Status;
|
||||||
Price = model.Price;
|
|
||||||
}
|
}
|
||||||
public SupplyViewModel GetViewModel
|
public SupplyViewModel GetViewModel
|
||||||
{
|
{
|
||||||
@ -79,41 +78,12 @@ namespace DatabaseImplement.Models
|
|||||||
Name = Name,
|
Name = Name,
|
||||||
Price = Price,
|
Price = Price,
|
||||||
Products = SupplyProducts,
|
Products = SupplyProducts,
|
||||||
|
SupplierId = SupplierId,
|
||||||
Date = Date,
|
Date = Date,
|
||||||
Status = Status,
|
Status = Status,
|
||||||
SupplierName = context.Suppliers.FirstOrDefault(x => x.Id == Id)?.Name ?? string.Empty,
|
SupplierName = Supplier.Name,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void UpdateProducts(Database context, SupplyBindingModel model)
|
|
||||||
{
|
|
||||||
var supplyProducts = context.SupplyProducts.Where(rec =>
|
|
||||||
rec.Id == model.Id).ToList();
|
|
||||||
if (supplyProducts != null && supplyProducts.Count > 0)
|
|
||||||
{ // удалили те, которых нет в модели
|
|
||||||
context.SupplyProducts.RemoveRange(supplyProducts.Where(rec
|
|
||||||
=> !model.SupplyProducts.ContainsKey(rec.ProductId)));
|
|
||||||
context.SaveChanges();
|
|
||||||
// обновили количество у существующих записей
|
|
||||||
foreach (var updateProduct in supplyProducts)
|
|
||||||
{
|
|
||||||
updateProduct.Count = model.SupplyProducts[updateProduct.ProductId].Item2;
|
|
||||||
model.SupplyProducts.Remove(updateProduct.ProductId);
|
|
||||||
}
|
|
||||||
context.SaveChanges();
|
|
||||||
}
|
|
||||||
var supply = context.Supplies.First(x => x.Id == Id);
|
|
||||||
foreach (var pc in model.SupplyProducts)
|
|
||||||
{
|
|
||||||
context.SupplyProducts.Add(new SupplyProduct
|
|
||||||
{
|
|
||||||
Supply = supply,
|
|
||||||
Product = context.Products.First(x => x.Id == pc.Key),
|
|
||||||
Count = pc.Value.Item2
|
|
||||||
});
|
|
||||||
context.SaveChanges();
|
|
||||||
}
|
|
||||||
_supplyProducts = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
15
WinFormsApp/FormMain.Designer.cs
generated
15
WinFormsApp/FormMain.Designer.cs
generated
@ -33,6 +33,7 @@
|
|||||||
menuStrip1 = new MenuStrip();
|
menuStrip1 = new MenuStrip();
|
||||||
товарыToolStripMenuItem = new ToolStripMenuItem();
|
товарыToolStripMenuItem = new ToolStripMenuItem();
|
||||||
поставщикиToolStripMenuItem = new ToolStripMenuItem();
|
поставщикиToolStripMenuItem = new ToolStripMenuItem();
|
||||||
|
buttonSupplyStatusArriving = new Button();
|
||||||
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
|
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
|
||||||
menuStrip1.SuspendLayout();
|
menuStrip1.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
@ -48,7 +49,7 @@
|
|||||||
//
|
//
|
||||||
// buttonCreateSupply
|
// buttonCreateSupply
|
||||||
//
|
//
|
||||||
buttonCreateSupply.Location = new Point(706, 24);
|
buttonCreateSupply.Location = new Point(707, 27);
|
||||||
buttonCreateSupply.Name = "buttonCreateSupply";
|
buttonCreateSupply.Name = "buttonCreateSupply";
|
||||||
buttonCreateSupply.Size = new Size(154, 23);
|
buttonCreateSupply.Size = new Size(154, 23);
|
||||||
buttonCreateSupply.TabIndex = 1;
|
buttonCreateSupply.TabIndex = 1;
|
||||||
@ -79,11 +80,22 @@
|
|||||||
поставщикиToolStripMenuItem.Text = "Поставщики";
|
поставщикиToolStripMenuItem.Text = "Поставщики";
|
||||||
поставщикиToolStripMenuItem.Click += поставщикиToolStripMenuItem_Click_1;
|
поставщикиToolStripMenuItem.Click += поставщикиToolStripMenuItem_Click_1;
|
||||||
//
|
//
|
||||||
|
// buttonSupplyStatusArriving
|
||||||
|
//
|
||||||
|
buttonSupplyStatusArriving.Location = new Point(707, 76);
|
||||||
|
buttonSupplyStatusArriving.Name = "buttonSupplyStatusArriving";
|
||||||
|
buttonSupplyStatusArriving.Size = new Size(154, 23);
|
||||||
|
buttonSupplyStatusArriving.TabIndex = 3;
|
||||||
|
buttonSupplyStatusArriving.Text = "Поставка в пути";
|
||||||
|
buttonSupplyStatusArriving.UseVisualStyleBackColor = true;
|
||||||
|
buttonSupplyStatusArriving.Click += buttonSupplyStatusArriving_Click;
|
||||||
|
//
|
||||||
// FormMain
|
// FormMain
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
ClientSize = new Size(901, 384);
|
ClientSize = new Size(901, 384);
|
||||||
|
Controls.Add(buttonSupplyStatusArriving);
|
||||||
Controls.Add(buttonCreateSupply);
|
Controls.Add(buttonCreateSupply);
|
||||||
Controls.Add(dataGridView);
|
Controls.Add(dataGridView);
|
||||||
Controls.Add(menuStrip1);
|
Controls.Add(menuStrip1);
|
||||||
@ -105,5 +117,6 @@
|
|||||||
private MenuStrip menuStrip1;
|
private MenuStrip menuStrip1;
|
||||||
private ToolStripMenuItem товарыToolStripMenuItem;
|
private ToolStripMenuItem товарыToolStripMenuItem;
|
||||||
private ToolStripMenuItem поставщикиToolStripMenuItem;
|
private ToolStripMenuItem поставщикиToolStripMenuItem;
|
||||||
|
private Button buttonSupplyStatusArriving;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,7 @@
|
|||||||
using Contracts.BusinessLogicContracts;
|
using Contracts.BindingModels;
|
||||||
|
using Contracts.BusinessLogicContracts;
|
||||||
|
using DataModels.Enums;
|
||||||
|
using DataModels.Models;
|
||||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
using System;
|
||||||
@ -77,5 +80,33 @@ namespace WinFormsApp
|
|||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void buttonSupplyStatusArriving_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (dataGridView.SelectedRows.Count == 1)
|
||||||
|
{
|
||||||
|
Guid id = (Guid)dataGridView.SelectedRows[0].Cells["Id"].Value;
|
||||||
|
_logger.LogInformation("Поставка No{id}. Меняется статус", id);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var operationResult = _supplyLogic.StatusUpdate(new SupplyBindingModel
|
||||||
|
{
|
||||||
|
Id = id,
|
||||||
|
Status = (SupplyStatus)dataGridView.SelectedRows[0].Cells["Status"].Value
|
||||||
|
}, SupplyStatus.Arriving);
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
//throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка передачи заказа в работу");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
|
||||||
|
MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user