Merge branch 'master' into Dozorova
This commit is contained in:
commit
ba9e854c9e
@ -49,15 +49,16 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
||||
_logger.LogInformation("ReadElement find. Id:{Id}", element.Id);
|
||||
return element;
|
||||
}
|
||||
public bool Create(OrderInfoBindingModel model)
|
||||
public OrderInfoViewModel? Create(OrderInfoBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
if (_orderInfoStorage.Insert(model) == null)
|
||||
var order = _orderInfoStorage.Insert(model);
|
||||
if (order == null)
|
||||
{
|
||||
_logger.LogWarning("Insert operation failed");
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
return true;
|
||||
return order;
|
||||
}
|
||||
public bool Update(OrderInfoBindingModel model)
|
||||
{
|
||||
|
@ -16,10 +16,14 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly IOrderStorage _orderStorage;
|
||||
public OrderLogic(ILogger<OrderLogic> logger, IOrderStorage orderStorage)
|
||||
private readonly IOrderInfoStorage _orderInfoStorage;
|
||||
private readonly ISetStorage _setStorage;
|
||||
public OrderLogic(ILogger<OrderLogic> logger, IOrderStorage orderStorage, IOrderInfoStorage orderInfoStorage, ISetStorage setStorage)
|
||||
{
|
||||
_logger = logger;
|
||||
_orderStorage = orderStorage;
|
||||
_orderInfoStorage = orderInfoStorage;
|
||||
_setStorage = setStorage;
|
||||
}
|
||||
public List<OrderViewModel>? ReadList(OrderSearchModel? model)
|
||||
{
|
||||
@ -52,7 +56,41 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
||||
public bool Create(OrderBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
if (_orderStorage.Insert(model) == null)
|
||||
var orderInfo = _orderInfoStorage.GetElement(new OrderInfoSearchModel { Id = model.OrderInfoId });
|
||||
var set = _setStorage.GetElement(new SetSearchModel { Id = model.SetId });
|
||||
if (orderInfo == null || set == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
_orderInfoStorage.Update(new OrderInfoBindingModel
|
||||
{
|
||||
Id = orderInfo.Id,
|
||||
CustomerName = orderInfo.CustomerName,
|
||||
Sum = orderInfo.Sum + (set.Cost * model.Count),
|
||||
DateCreate = orderInfo.DateCreate,
|
||||
PaymentType = orderInfo.PaymentType,
|
||||
UserId = orderInfo.UserId
|
||||
});
|
||||
var order = _orderStorage.GetElement(new OrderSearchModel
|
||||
{
|
||||
OrderInfoId = new List<int> { model.OrderInfoId },
|
||||
SetId = model.SetId
|
||||
});
|
||||
if (order != null)
|
||||
{
|
||||
if (_orderStorage.Update(new OrderBindingModel
|
||||
{
|
||||
Id = order.Id,
|
||||
OrderInfoId = order.OrderInfoId,
|
||||
SetId = order.SetId,
|
||||
Count = order.Count + model.Count
|
||||
}) == null)
|
||||
{
|
||||
_logger.LogWarning("Insert operation failed");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (_orderStorage.Insert(model) == null)
|
||||
{
|
||||
_logger.LogWarning("Insert operation failed");
|
||||
return false;
|
||||
@ -72,6 +110,22 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
||||
public bool Delete(OrderBindingModel model)
|
||||
{
|
||||
CheckModel(model, false);
|
||||
var order = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id });
|
||||
var orderInfo = _orderInfoStorage.GetElement(new OrderInfoSearchModel { Id = order.OrderInfoId });
|
||||
var set = _setStorage.GetElement(new SetSearchModel { Id = order.SetId });
|
||||
if (orderInfo == null || set == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
_orderInfoStorage.Update(new OrderInfoBindingModel
|
||||
{
|
||||
Id = orderInfo.Id,
|
||||
CustomerName = orderInfo.CustomerName,
|
||||
Sum = orderInfo.Sum - (set.Cost * order.Count),
|
||||
DateCreate = orderInfo.DateCreate,
|
||||
PaymentType = orderInfo.PaymentType,
|
||||
UserId = orderInfo.UserId
|
||||
});
|
||||
_logger.LogInformation("Delete. Id:{Id}", model.Id);
|
||||
if (_orderStorage.Delete(model) == null)
|
||||
{
|
||||
|
@ -19,11 +19,11 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
||||
private readonly ISetStorage _setStorage;
|
||||
private readonly IOrderInfoStorage _orderInfoStorage;
|
||||
private readonly IOrderStorage _orderStorage;
|
||||
private readonly AbstractSaveToExcel _saveToExcel;
|
||||
private readonly AbstractSaveToWord _saveToWord;
|
||||
private readonly AbstractSaveToPdf _saveToPdf;
|
||||
private readonly AbstractWorkerSaveToExcel _saveToExcel;
|
||||
private readonly AbstractWorkerSaveToWord _saveToWord;
|
||||
private readonly AbstractWorkerSaveToPdf _saveToPdf;
|
||||
public ReportWorkerLogic(ISetStorage setStorage, IFurnitureModuleStorage furnitureModuleStorage, IOrderInfoStorage orderInfoStorage,
|
||||
IOrderStorage orderStorage, AbstractSaveToExcel saveToExcel, AbstractSaveToWord saveToWord, AbstractSaveToPdf saveToPdf)
|
||||
IOrderStorage orderStorage, AbstractWorkerSaveToExcel saveToExcel, AbstractWorkerSaveToWord saveToWord, AbstractWorkerSaveToPdf saveToPdf)
|
||||
{
|
||||
_setStorage = setStorage;
|
||||
_furnitureModuleStorage = furnitureModuleStorage;
|
||||
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
||||
{
|
||||
public abstract class AbstractSaveToExcel
|
||||
public abstract class AbstractWorkerSaveToExcel
|
||||
{
|
||||
/// <summary>
|
||||
/// Создание отчета
|
@ -10,7 +10,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
||||
{
|
||||
public abstract class AbstractSaveToPdf
|
||||
public abstract class AbstractWorkerSaveToPdf
|
||||
{
|
||||
public void CreateDoc(PdfInfo info)
|
||||
{
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
||||
{
|
||||
public abstract class AbstractSaveToWord
|
||||
public abstract class AbstractWorkerSaveToWord
|
||||
{
|
||||
public void CreateDoc(WordInfo info)
|
||||
{
|
@ -13,7 +13,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
||||
{
|
||||
public class SaveToExcel : AbstractSaveToExcel
|
||||
public class SaveToExcel : AbstractWorkerSaveToExcel
|
||||
{
|
||||
private SpreadsheetDocument? _spreadsheetDocument;
|
||||
private SharedStringTablePart? _shareStringPart;
|
||||
|
@ -11,7 +11,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
||||
{
|
||||
public class SaveToPdf : AbstractSaveToPdf
|
||||
public class SaveToPdf : AbstractWorkerSaveToPdf
|
||||
{
|
||||
private Document? _document;
|
||||
private Section? _section;
|
||||
|
@ -11,7 +11,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
||||
{
|
||||
public class SaveToWord : AbstractSaveToWord
|
||||
public class SaveToWord : AbstractWorkerSaveToWord
|
||||
{
|
||||
private WordprocessingDocument? _wordDocument;
|
||||
private Body? _docBody;
|
||||
|
@ -13,7 +13,7 @@ namespace FurnitureAssemblyContracts.BusinessLogicContracts
|
||||
{
|
||||
List<OrderInfoViewModel>? ReadList(OrderInfoSearchModel? model);
|
||||
OrderInfoViewModel? ReadElement(OrderInfoSearchModel model);
|
||||
bool Create(OrderInfoBindingModel model);
|
||||
OrderInfoViewModel? Create(OrderInfoBindingModel model);
|
||||
bool Update(OrderInfoBindingModel model);
|
||||
bool Delete(OrderInfoBindingModel model);
|
||||
}
|
||||
|
@ -33,16 +33,27 @@ namespace FurnitureAssemblyDatabaseImplement.Implements
|
||||
}
|
||||
public OrderViewModel? GetElement(OrderSearchModel model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new FurnitureAssemblyDatabase();
|
||||
if (model.Id.HasValue)
|
||||
{
|
||||
return context.Orders
|
||||
.Include(x => x.Set)
|
||||
.Include(x => x.OrderInfo)
|
||||
.FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id)
|
||||
?.GetViewModel;
|
||||
}
|
||||
else if (model.OrderInfoId != null && model.OrderInfoId.Count == 1 && model.SetId.HasValue)
|
||||
{
|
||||
return context.Orders
|
||||
.Include(x => x.Set)
|
||||
.Include(x => x.OrderInfo)
|
||||
.FirstOrDefault(x => model.OrderInfoId.Contains(x.OrderInfoId) && x.SetId == model.SetId)
|
||||
?.GetViewModel;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
|
||||
{
|
||||
|
@ -58,8 +58,7 @@ namespace FurnitureAssemblyDatabaseImplement.Models
|
||||
PaymentType = OrderInfo.PaymentType,
|
||||
DateCreate = OrderInfo.DateCreate,
|
||||
Sum = OrderInfo.Sum,
|
||||
UserId = OrderInfo.UserId,
|
||||
UserName = OrderInfo.User.Name
|
||||
UserId = OrderInfo.UserId
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ namespace FurnitureAssemblyDatabaseImplement.Models
|
||||
Id = model.Id,
|
||||
CustomerName = model.CustomerName,
|
||||
PaymentType = model.PaymentType,
|
||||
Sum = model.Sum,
|
||||
Sum = 0,
|
||||
DateCreate = DateTime.Now.ToUniversalTime(),
|
||||
UserId = model.UserId
|
||||
};
|
||||
@ -50,6 +50,7 @@ namespace FurnitureAssemblyDatabaseImplement.Models
|
||||
CustomerName = model.CustomerName;
|
||||
PaymentType = model.PaymentType;
|
||||
UserId = model.UserId;
|
||||
Sum = model.Sum;
|
||||
}
|
||||
public OrderInfoViewModel GetViewModel => new()
|
||||
{
|
||||
|
@ -47,6 +47,19 @@ namespace FurnitureAssemblyRestApi.Controllers
|
||||
throw;
|
||||
}
|
||||
}
|
||||
[HttpGet]
|
||||
public List<FurnitureModuleViewModel>? GetFurnitureModuleListByUser(int userId)
|
||||
{
|
||||
try
|
||||
{
|
||||
return _furnitureModule.ReadList(new FurnitureModuleSearchModel { UserId = userId });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Ошибка получения списка гарнитуров у пользователя по id={userId}", userId);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
[HttpPost]
|
||||
public void AddFurnitureModule(FurnitureModuleBindingModel model)
|
||||
{
|
||||
|
@ -17,11 +17,16 @@ namespace FurnitureAssemblyRestApi.Controllers
|
||||
private readonly ILogger _logger;
|
||||
private readonly IOrderLogic _order;
|
||||
private readonly IOrderInfoLogic _orderInfo;
|
||||
public OrderController(ILogger<OrderController> logger, IOrderLogic order, IOrderInfoLogic orderInfo)
|
||||
private readonly ISetLogic _set;
|
||||
public OrderController(ILogger<OrderController> logger,
|
||||
IOrderLogic order,
|
||||
IOrderInfoLogic orderInfo,
|
||||
ISetLogic set)
|
||||
{
|
||||
_logger = logger;
|
||||
_order = order;
|
||||
_orderInfo = orderInfo;
|
||||
_set = set;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
@ -73,6 +78,44 @@ namespace FurnitureAssemblyRestApi.Controllers
|
||||
throw;
|
||||
}
|
||||
}
|
||||
[HttpGet]
|
||||
public Tuple<OrderInfoViewModel, List<SetViewModel>, List<int>>? GetOrderWithSets(int orderId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var orderInfo = _orderInfo.ReadElement(new() { Id = orderId });
|
||||
if (orderInfo == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
var orders = _order.ReadList(new OrderSearchModel { OrderInfoId = new List<int>() { orderInfo.Id } });
|
||||
var sets = new List<SetViewModel>();
|
||||
var counts = new List<int>();
|
||||
if (orders == null)
|
||||
{
|
||||
sets = null;
|
||||
counts = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var order in orders)
|
||||
{
|
||||
var el = _set.ReadElement(new SetSearchModel { Id = order.SetId });
|
||||
sets.Add(el);
|
||||
counts.Add(order.Count);
|
||||
}
|
||||
}
|
||||
var tuple = System.Tuple.Create(orderInfo,
|
||||
sets,
|
||||
counts);
|
||||
return tuple;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Ошибка гарнитура с мебельными модулями");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
[HttpPost]
|
||||
public void AddOrder(OrderBindingModel model)
|
||||
{
|
||||
@ -112,5 +155,25 @@ namespace FurnitureAssemblyRestApi.Controllers
|
||||
throw;
|
||||
}
|
||||
}
|
||||
[HttpPost]
|
||||
public void AddSetInOrder(Tuple<OrderInfoSearchModel, SetSearchModel, int> orderSetWithCount)
|
||||
{
|
||||
try
|
||||
{
|
||||
var orderInfo = _orderInfo.ReadElement(orderSetWithCount.Item1);
|
||||
var set = _set.ReadElement(orderSetWithCount.Item2);
|
||||
_order.Create(new OrderBindingModel
|
||||
{
|
||||
OrderInfoId = orderInfo.Id,
|
||||
SetId = set.Id,
|
||||
Count = orderSetWithCount.Item3
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Ошибка добавления поездки в магазин");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,12 +47,25 @@ namespace FurnitureAssemblyRestApi.Controllers
|
||||
throw;
|
||||
}
|
||||
}
|
||||
[HttpPost]
|
||||
public void AddOrderInfo(OrderInfoBindingModel model)
|
||||
[HttpGet]
|
||||
public List<OrderInfoViewModel>? GetOrderInfoListByUser(int userId)
|
||||
{
|
||||
try
|
||||
{
|
||||
_orderInfo.Create(model);
|
||||
return _orderInfo.ReadList(new OrderInfoSearchModel { UserId = userId });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Ошибка получения списка гарнитуров у пользователя по id={userId}", userId);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
[HttpPost]
|
||||
public OrderInfoViewModel? AddOrderInfo(OrderInfoBindingModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
return _orderInfo.Create(model);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -33,9 +33,9 @@ builder.Services.AddTransient<ISetLogic, SetLogic>();
|
||||
builder.Services.AddTransient<IUserLogic, UserLogic>();
|
||||
builder.Services.AddTransient<IReportWorkerLogic, ReportWorkerLogic>();
|
||||
|
||||
builder.Services.AddTransient<AbstractSaveToExcel, SaveToExcel>();
|
||||
builder.Services.AddTransient<AbstractSaveToWord, SaveToWord>();
|
||||
builder.Services.AddTransient<AbstractSaveToPdf, SaveToPdf>();
|
||||
builder.Services.AddTransient<AbstractWorkerSaveToExcel, SaveToExcel>();
|
||||
builder.Services.AddTransient<AbstractWorkerSaveToWord, SaveToWord>();
|
||||
builder.Services.AddTransient<AbstractWorkerSaveToPdf, SaveToPdf>();
|
||||
|
||||
builder.Services.AddControllers();
|
||||
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||
|
@ -29,11 +29,7 @@ namespace FurnitureAssemblyWorkerClientApp
|
||||
throw new Exception(result);
|
||||
}
|
||||
}
|
||||
public static void GetBaseRequest(string requestUrl)
|
||||
{
|
||||
var response = _client.GetAsync(requestUrl);
|
||||
}
|
||||
public static void PostRequest<T>(string requestUrl, T model)
|
||||
public static T? PostRequest<T>(string requestUrl, T model)
|
||||
{
|
||||
var json = JsonConvert.SerializeObject(model);
|
||||
var data = new StringContent(json, Encoding.UTF8, "application/json");
|
||||
@ -41,7 +37,10 @@ namespace FurnitureAssemblyWorkerClientApp
|
||||
var response = _client.PostAsync(requestUrl, data);
|
||||
|
||||
var result = response.Result.Content.ReadAsStringAsync().Result;
|
||||
if (!response.Result.IsSuccessStatusCode)
|
||||
if (response.Result.IsSuccessStatusCode)
|
||||
{
|
||||
return JsonConvert.DeserializeObject<T>(result);
|
||||
} else
|
||||
{
|
||||
throw new Exception(result);
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ using System.Diagnostics;
|
||||
using FurnitureAssemblyDataModels.Models;
|
||||
using System;
|
||||
using FurnitureAssemblyContracts.SearchModels;
|
||||
using FurnitureAssemblyDataModels.Enums;
|
||||
|
||||
namespace FurnitureAssemblyWorkerClientApp.Controllers
|
||||
{
|
||||
@ -160,7 +161,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
||||
furnitureModuleTable += "<tr>";
|
||||
furnitureModuleTable += $"<td>{furnitureModule.Name}</td>";
|
||||
furnitureModuleTable += $"<td>{furnitureModule.Cost}</td>";
|
||||
furnitureModuleTable += $"<td>{furnitureModule.DateCreate}</td>";
|
||||
furnitureModuleTable += $"<td>{furnitureModule.DateCreate.Date}</td>";
|
||||
furnitureModuleTable += $"<td>{count}</td>";
|
||||
furnitureModuleTable += "</tr>";
|
||||
}
|
||||
@ -173,7 +174,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlist"));
|
||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpPost]
|
||||
public void UpdateSet(int set, string name, double cost, DateTime dateCreate)
|
||||
@ -208,7 +209,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlist"));
|
||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpPost]
|
||||
public void DeleteSet(int set)
|
||||
@ -230,7 +231,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(Tuple.Create(APIClient.GetRequest<List<SetViewModel>>("api/set/getsetlist"), APIClient.GetRequest<List<FurnitureModuleViewModel>>("api/furnituremodule/getfurnituremodulelist")));
|
||||
return View(Tuple.Create(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"), APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}")));
|
||||
}
|
||||
[HttpPost]
|
||||
public void AddFurnitureModuleInSet(int set, int furnitureModule, int count)
|
||||
@ -257,7 +258,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlist"));
|
||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpPost]
|
||||
public void ListSetsFurnitureModulesToFile(int[] setIds, string type)
|
||||
@ -306,5 +307,301 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
||||
{
|
||||
return new PhysicalFileResult("C:\\temp\\excel_worker.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult FurnitureModules()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult CreateFurnitureModule()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
[HttpPost]
|
||||
public void CreateFurnitureModule(string name, double cost)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||
}
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{
|
||||
throw new Exception("Название мебельного модуля не указано");
|
||||
}
|
||||
if (cost <= 0)
|
||||
{
|
||||
throw new Exception("Стоимость мебельного модуля не корректна");
|
||||
}
|
||||
APIClient.PostRequest("api/furnituremodule/addfurnituremodule", new FurnitureModuleBindingModel
|
||||
{
|
||||
Name = name,
|
||||
Cost = cost,
|
||||
UserId = APIClient.User.Id
|
||||
});
|
||||
Response.Redirect("FurnitureModules");
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult UpdateFurnitureModule()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpPost]
|
||||
public void UpdateFurnitureModule(int furnitureModule, string name, double cost, DateTime dateCreate)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||
}
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{
|
||||
throw new Exception("Название мебельного модуля не указано");
|
||||
}
|
||||
if (cost <= 0)
|
||||
{
|
||||
throw new Exception("Стоимость мебельного модуля не корректна");
|
||||
}
|
||||
APIClient.PostRequest("api/furnituremodule/updatefurnituremodule", new FurnitureModuleBindingModel
|
||||
{
|
||||
Id = furnitureModule,
|
||||
Name = name,
|
||||
Cost = cost,
|
||||
DateCreate = dateCreate.Date
|
||||
});
|
||||
Response.Redirect("FurnitureModules");
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult DeleteFurnitureModule()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpPost]
|
||||
public void DeleteFurnitureModule(int furnitureModule)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||
}
|
||||
APIClient.PostRequest("api/furnituremodule/deletefurnituremodule", new FurnitureModuleBindingModel
|
||||
{
|
||||
Id = furnitureModule,
|
||||
});
|
||||
Response.Redirect("FurnitureModules");
|
||||
}
|
||||
[HttpGet]
|
||||
public FurnitureModuleViewModel? GetFurnitureModule(int furnitureModuleId)
|
||||
{
|
||||
var result = APIClient.GetRequest<FurnitureModuleViewModel>
|
||||
($"api/furnitureModule/getfurnituremodule?Id={furnitureModuleId}");
|
||||
if (result == null)
|
||||
{
|
||||
return default;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult AddFurnitureModulesInSet()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(Tuple.Create(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"), APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}")));
|
||||
}
|
||||
[HttpPost]
|
||||
public void AddFurnitureModulesInSet(int set, int[] furnitureModuleIds, int[] counts)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||
}
|
||||
if (furnitureModuleIds.Length != counts.Length)
|
||||
{
|
||||
throw new Exception("Массивы не совпадают");
|
||||
}
|
||||
for (int i = 0; i < furnitureModuleIds.Length; i++)
|
||||
{
|
||||
APIClient.PostRequest("api/set/addfurnituremoduleinset", Tuple.Create(
|
||||
new SetSearchModel() { Id = set },
|
||||
new FurnitureModuleViewModel() { Id = furnitureModuleIds[i] },
|
||||
counts[i]
|
||||
));
|
||||
}
|
||||
Response.Redirect("Index");
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult Orders()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<OrderInfoViewModel>>($"api/orderinfo/getorderinfolistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult CreateOrder()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpPost]
|
||||
public void CreateOrder(string name, PaymentType paymentType, int[] setIds, int[] counts)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||
}
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{
|
||||
throw new Exception("Имя не должно быть пустым");
|
||||
}
|
||||
var orderInfo = APIClient.PostRequest("api/orderinfo/addorderinfo", new OrderInfoBindingModel
|
||||
{
|
||||
CustomerName = name,
|
||||
PaymentType = paymentType,
|
||||
UserId = APIClient.User.Id
|
||||
});
|
||||
if (orderInfo == null)
|
||||
{
|
||||
throw new Exception("Ошибка создания заказа");
|
||||
}
|
||||
if (setIds != null && setIds.Length > 0 && counts != null && setIds.Length == counts.Length)
|
||||
{
|
||||
for (int i = 0; i < counts.Length; i++)
|
||||
{
|
||||
APIClient.PostRequest("api/order/addorder", new OrderBindingModel
|
||||
{
|
||||
OrderInfoId = orderInfo.Id,
|
||||
SetId = setIds[i],
|
||||
Count = counts[i]
|
||||
});
|
||||
}
|
||||
}
|
||||
Response.Redirect("Orders");
|
||||
}
|
||||
[HttpGet]
|
||||
public Tuple<OrderInfoViewModel, string>? GetOrderWithSets(int orderId)
|
||||
{
|
||||
var result = APIClient.GetRequest<Tuple<OrderInfoViewModel, List<SetViewModel>, List<int>>>
|
||||
($"api/order/getorderwithsets?orderId={orderId}");
|
||||
if (result == null)
|
||||
{
|
||||
return default;
|
||||
}
|
||||
string setTable = "";
|
||||
for (int i = 0; i < result.Item2.Count; i++)
|
||||
{
|
||||
var set = result.Item2[i];
|
||||
var count = result.Item3[i];
|
||||
setTable += "<tr>";
|
||||
setTable += $"<td>{set.Name}</td>";
|
||||
setTable += $"<td>{set.Cost}</td>";
|
||||
setTable += $"<td>{set.DateCreate.Date}</td>";
|
||||
setTable += $"<td>{count}</td>";
|
||||
setTable += "</tr>";
|
||||
}
|
||||
return Tuple.Create(result.Item1, setTable);
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult UpdateOrder()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<OrderInfoViewModel>>($"api/orderinfo/getorderinfolistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpPost]
|
||||
public void UpdateOrder(int order, string name, DateTime dateCreate, PaymentType paymentType, double sum)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||
}
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{
|
||||
throw new Exception("Название гарнитура не указано");
|
||||
}
|
||||
APIClient.PostRequest("api/orderinfo/updateorderinfo", new OrderInfoBindingModel
|
||||
{
|
||||
Id = order,
|
||||
CustomerName = name,
|
||||
DateCreate = dateCreate.Date,
|
||||
PaymentType = paymentType,
|
||||
UserId = APIClient.User.Id,
|
||||
Sum = sum
|
||||
});
|
||||
Response.Redirect("Orders");
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult DeleteOrder()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<OrderInfoViewModel>>($"api/orderinfo/getorderinfolistbyuser?userId={APIClient.User.Id}"));
|
||||
}
|
||||
[HttpPost]
|
||||
public void DeleteOrder(int order)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||
}
|
||||
APIClient.PostRequest("api/orderinfo/deleteorderinfo", new OrderInfoBindingModel
|
||||
{
|
||||
Id = order,
|
||||
});
|
||||
Response.Redirect("Orders");
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult AddSetInOrder()
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(Tuple.Create(APIClient.GetRequest<List<OrderInfoViewModel>>($"api/orderinfo/getorderinfolistbyuser?userId={APIClient.User.Id}"), APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}")));
|
||||
}
|
||||
[HttpPost]
|
||||
public void AddSetInOrder(int order, int[] setIds, int[] counts)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||
}
|
||||
if (setIds != null && counts != null && counts.Length > 0 && counts.Length == setIds.Length)
|
||||
{
|
||||
for (int i = 0; i < counts.Length; i++)
|
||||
{
|
||||
if (counts[i] <= 0)
|
||||
{
|
||||
throw new Exception("Количество должно быть больше 0");
|
||||
}
|
||||
APIClient.PostRequest("api/order/addsetinorder", Tuple.Create(
|
||||
new OrderInfoSearchModel() { Id = order },
|
||||
new SetSearchModel() { Id = setIds[i] },
|
||||
counts[i]
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
Response.Redirect("Orders");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels;
|
||||
@using FurnitureAssemblyDataModels.Models;
|
||||
|
||||
@model Tuple<List<SetViewModel>, List<FurnitureModuleViewModel>>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Добавление мебельных модулей в гарнитур";
|
||||
}
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Добавление мебельных модулей в гарнитур</h2>
|
||||
</div>
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">Гарнитур:</div>
|
||||
<div class="col-8">
|
||||
<select id="set" name="set" class="form-control">
|
||||
@foreach (var set in Model.Item1)
|
||||
{
|
||||
<option value="@set.Id">
|
||||
@Html.DisplayFor(modelItem => set.Name)
|
||||
</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Мебельные модули:</div>
|
||||
<div class="col-8">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<th>
|
||||
Название
|
||||
</th>
|
||||
<th>
|
||||
Стоимость
|
||||
</th>
|
||||
<th>
|
||||
Дата создания
|
||||
</th>
|
||||
<th>
|
||||
Количество
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var furnitureModule in Model.Item2)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" class="form-check-input" name="furnitureModuleIds[]" value="@furnitureModule.Id" id="@furnitureModule.Id">
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => furnitureModule.Name)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => furnitureModule.Cost)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => furnitureModule.DateCreate)
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="@furnitureModule.Id:count" name="counts[]" />
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Добавить" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
@ -0,0 +1,79 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels;
|
||||
@using FurnitureAssemblyDataModels.Models;
|
||||
|
||||
@model Tuple<List<OrderInfoViewModel>, List<SetViewModel>>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Добавление гарнитур в заказ";
|
||||
}
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Добавление гарнитур в заказ</h2>
|
||||
</div>
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">Заказ:</div>
|
||||
<div class="col-8">
|
||||
<select id="order" name="order" class="form-control">
|
||||
@foreach (var order in Model.Item1)
|
||||
{
|
||||
<option value="@order.Id">
|
||||
@Html.DisplayFor(modelItem => order.Id)
|
||||
</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Гарнитуры:</div>
|
||||
<div class="col-8">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<th>
|
||||
Название
|
||||
</th>
|
||||
<th>
|
||||
Стоимость
|
||||
</th>
|
||||
<th>
|
||||
Дата создания
|
||||
</th>
|
||||
<th>
|
||||
Количество
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var set in Model.Item2)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" class="form-check-input" name="setIds[]" value="@set.Id" id="@set.Id">
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => set.Name)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => set.Cost)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => set.DateCreate)
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="@set.Id:count" name="counts[]" />
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Добавить" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
@ -0,0 +1,20 @@
|
||||
@{
|
||||
ViewData["Title"] = "Создание мебельного модуля";
|
||||
}
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Создание мебельного модуля</h2>
|
||||
</div>
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">Название:</div>
|
||||
<div class="col-8"><input type="text" name="name" id="name" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Стоимость:</div>
|
||||
<div class="col-8"><input type="text" name="cost" id="cost" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Создать" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
@ -0,0 +1,74 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels;
|
||||
@using FurnitureAssemblyDataModels.Enums;
|
||||
|
||||
@model List<SetViewModel>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Создание заказа";
|
||||
}
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Создание заказа</h2>
|
||||
</div>
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">Имя заказчика:</div>
|
||||
<div class="col-8"><input type="text" name="name" id="name" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Тип оплаты:</div>
|
||||
<div class="col-8">
|
||||
<select name="paymentType">
|
||||
<option id="@PaymentType.Картой" selected value="@PaymentType.Картой">Картой</option>
|
||||
<option id="@PaymentType.Наличными" value="@PaymentType.Наличными">Наличными</option>
|
||||
<option id="@PaymentType.Смешанный" value="@PaymentType.Смешанный">Смешанный</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<th>
|
||||
Название
|
||||
</th>
|
||||
<th>
|
||||
Стоимость
|
||||
</th>
|
||||
<th>
|
||||
Дата создания
|
||||
</th>
|
||||
<th>
|
||||
Количество
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" class="form-check-input" name="setIds[]" value="@item.Id" id="@item.Id">
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Cost)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.DateCreate)
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="@item.Id:count" name="counts[]" />
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Создать" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
@ -0,0 +1,27 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels;
|
||||
@{
|
||||
ViewData["Title"] = "Удаление мебельного модуля";
|
||||
}
|
||||
@model List<FurnitureModuleViewModel>
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Удаление мебельного модуля</h2>
|
||||
</div>
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">Выбранный мебельного модуля:</div>
|
||||
<div class="col-8">
|
||||
<select id="furnitureModule" name="furnitureModule" class="form-control">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<option value="@item.Id">
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Удалить" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
@ -0,0 +1,27 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels;
|
||||
@{
|
||||
ViewData["Title"] = "Удаление заказа";
|
||||
}
|
||||
@model List<OrderInfoViewModel>
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Удаление заказа</h2>
|
||||
</div>
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">Выбранный заказ:</div>
|
||||
<div class="col-8">
|
||||
<select id="order" name="order" class="form-control">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<option value="@item.Id">
|
||||
@Html.DisplayFor(modelItem => item.Id)
|
||||
</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Удалить" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
@ -0,0 +1,64 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels
|
||||
|
||||
@model List<FurnitureModuleViewModel>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Формирование мебельнго модуля";
|
||||
}
|
||||
|
||||
<div class="text-center">
|
||||
<h1 class="display-4">Мебельные модули</h1>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
@{
|
||||
if (Model == null)
|
||||
{
|
||||
<h3 class="display-4">Авторизируйтесь</h3>
|
||||
return;
|
||||
}
|
||||
|
||||
<div>
|
||||
<a asp-action="CreateFurnitureModule">Создать мебельный модуль</a>
|
||||
<a asp-action="UpdateFurnitureModule">Обновить мебельный модуль</a>
|
||||
<a asp-action="DeleteFurnitureModule">Удалить мебельный модуль</a>
|
||||
</div>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Номер
|
||||
</th>
|
||||
<th>
|
||||
Название
|
||||
</th>
|
||||
<th>
|
||||
Стоимость
|
||||
</th>
|
||||
<th>
|
||||
Дата создания
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Id)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Cost)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.DateCreate)
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
</div>
|
@ -0,0 +1,71 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels
|
||||
|
||||
@model List<OrderInfoViewModel>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Формирование заказов";
|
||||
}
|
||||
|
||||
<div class="text-center">
|
||||
<h1 class="display-4">Заказы</h1>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
@{
|
||||
if (Model == null)
|
||||
{
|
||||
<h3 class="display-4">Авторизируйтесь</h3>
|
||||
return;
|
||||
}
|
||||
|
||||
<div>
|
||||
<a asp-action="CreateOrder">Создать заказ</a>
|
||||
<a asp-action="UpdateOrder">Обновить заказ</a>
|
||||
<a asp-action="DeleteOrder">Удалить заказ</a>
|
||||
<a asp-action="AddSetInOrder">Добавить гарнитур в заказ</a>
|
||||
</div>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Номер
|
||||
</th>
|
||||
<th>
|
||||
Имя заказчика
|
||||
</th>
|
||||
<th>
|
||||
Дата создания
|
||||
</th>
|
||||
<th>
|
||||
Тип оплаты
|
||||
</th>
|
||||
<th>
|
||||
Сумма
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Id)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.CustomerName)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.DateCreate)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.PaymentType)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Sum)
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
</div>
|
@ -0,0 +1,65 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels
|
||||
|
||||
@model List<FurnitureModuleViewModel>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Изменение мебельного модуля";
|
||||
}
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Изменение мебельного модуля</h2>
|
||||
</div>
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">Мебельный модуль:</div>
|
||||
<div class="col-8">
|
||||
<select id="furnitureModule" name="furnitureModule" class="form-control">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<option value="@item.Id">
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Название:</div>
|
||||
<div class="col-8"><input type="text" name="name" id="name" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Стоимость:</div>
|
||||
<div class="col-8"><input type="text" name="cost" id="cost" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Дата создания:</div>
|
||||
<div class="col-8"><input type="datetime-local" id="dateCreate" name="dateCreate" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Изменить" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@section Scripts {
|
||||
<script>
|
||||
function check() {
|
||||
var furnitureModule = $('#furnitureModule').val();
|
||||
if (furnitureModule) {
|
||||
$.ajax({
|
||||
method: "GET",
|
||||
url: "/Home/GetFurnitureModule",
|
||||
data: { furnitureModuleId: furnitureModule },
|
||||
success: function (result) {
|
||||
if (result != null) {
|
||||
$('#name').val(result.name);
|
||||
$('#cost').val(result.cost);
|
||||
$('#dateCreate').val(new Date(result.dateCreate).toISOString().split(".")[0].substr(0, 16));
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
check();
|
||||
$('#furnitureModule').on('change', (e) => check());
|
||||
</script>
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
@using FurnitureAssemblyContracts.ViewModels
|
||||
@using FurnitureAssemblyDataModels.Enums;
|
||||
|
||||
@model List<OrderInfoViewModel>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Изменение заказа";
|
||||
}
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Изменение заказа</h2>
|
||||
</div>
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">Заказ:</div>
|
||||
<div class="col-8">
|
||||
<select id="order" name="order" class="form-control">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<option value="@item.Id">
|
||||
@Html.DisplayFor(modelItem => item.Id)
|
||||
</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Имя клиента:</div>
|
||||
<div class="col-8"><input type="text" name="name" id="name" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Тип оплаты:</div>
|
||||
<div class="col-8">
|
||||
<select name="paymentType" id="paymentType">
|
||||
<option id="1" value="1">Картой</option>
|
||||
<option id="0" value="0">Наличными</option>
|
||||
<option id="2" value="2">Смешанный</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Дата создания:</div>
|
||||
<div class="col-8"><input type="datetime-local" id="dateCreate" name="dateCreate" /></div>
|
||||
</div>
|
||||
<input type="text" id="sum" name="sum" style="visibility: hidden;" />
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Название гарнитура
|
||||
</th>
|
||||
<th>
|
||||
Стоимость
|
||||
</th>
|
||||
<th>
|
||||
Количество
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="sets-table">
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Изменить" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@section Scripts {
|
||||
<script>
|
||||
function check() {
|
||||
var order = $('#order').val();
|
||||
if (order) {
|
||||
$.ajax({
|
||||
method: "GET",
|
||||
url: "/Home/GetOrderWithSets",
|
||||
data: { orderId: order },
|
||||
success: function (result) {
|
||||
if (result != null) {
|
||||
console.log(result);
|
||||
$('#name').val(result.item1.customerName);
|
||||
$('#paymentType').val(result.item1.paymentType).change();
|
||||
$('#sum').val(result.item1.sum);
|
||||
$('#dateCreate').val(new Date(result.item1.dateCreate).toISOString().split(".")[0].substr(0, 16));
|
||||
$('#sets-table').html(result.item2);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
check();
|
||||
$('#order').on('change', (e) => check());
|
||||
</script>
|
||||
}
|
@ -64,13 +64,13 @@
|
||||
if (set) {
|
||||
$.ajax({
|
||||
method: "GET",
|
||||
url: "/Home/GetShopWithManufactures",
|
||||
url: "/Home/GetSetWithFurnitureModules",
|
||||
data: { setId: set },
|
||||
success: function (result) {
|
||||
if (result != null) {
|
||||
$('#name').val(result.item1.name);
|
||||
$('#cost').val(result.item1.cost);
|
||||
$('#dateCreate').val(result.item1.dateCreate);
|
||||
$('#dateCreate').val(new Date(result.item1.dateCreate).toISOString().split(".")[0].substr(0, 16));
|
||||
$('#furnitureModules-table').html(result.item2);
|
||||
}
|
||||
}
|
||||
|
@ -6,10 +6,9 @@
|
||||
<title>@ViewData["Title"] - FurnitureAssemblyWorkerClientApp</title>
|
||||
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
||||
<link rel="stylesheet" href="~/BlacksmithWorkshopClientApp.styles.css" asp-append-version="true" />
|
||||
<link rel="stylesheet" href="~/FurnitureAssemblyClientApp.styles.css" asp-append-version="true" />
|
||||
</head>
|
||||
<body>
|
||||
@await RenderSectionAsync("Scripts", required: false)
|
||||
<header>
|
||||
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
|
||||
<div class="container-fluid">
|
||||
@ -35,9 +34,18 @@
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Sets">Гарнитуры</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="FurnitureModules">Мебельные модули</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="ListSetsFurnitureModulesToFile">Получение списка</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="AddFurnitureModulesInSet">Добавление мебельных модулей в гарнитуру</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Orders">Заказы</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -57,5 +65,6 @@
|
||||
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="~/js/site.js" asp-append-version="true"></script>
|
||||
@await RenderSectionAsync("Scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user