added get list in docx or xlsx page
This commit is contained in:
parent
27da6a9552
commit
35abda9b93
@ -13,7 +13,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
||||||
{
|
{
|
||||||
public class ReportLogic : IReportLogic
|
public class ReportWorkerLogic : IReportWorkerLogic
|
||||||
{
|
{
|
||||||
private readonly IFurnitureModuleStorage _furnitureModuleStorage;
|
private readonly IFurnitureModuleStorage _furnitureModuleStorage;
|
||||||
private readonly ISetStorage _setStorage;
|
private readonly ISetStorage _setStorage;
|
||||||
@ -22,7 +22,7 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
private readonly AbstractSaveToExcel _saveToExcel;
|
private readonly AbstractSaveToExcel _saveToExcel;
|
||||||
private readonly AbstractSaveToWord _saveToWord;
|
private readonly AbstractSaveToWord _saveToWord;
|
||||||
private readonly AbstractSaveToPdf _saveToPdf;
|
private readonly AbstractSaveToPdf _saveToPdf;
|
||||||
public ReportLogic(ISetStorage setStorage, IFurnitureModuleStorage furnitureModuleStorage, IOrderInfoStorage orderInfoStorage,
|
public ReportWorkerLogic(ISetStorage setStorage, IFurnitureModuleStorage furnitureModuleStorage, IOrderInfoStorage orderInfoStorage,
|
||||||
IOrderStorage orderStorage, AbstractSaveToExcel saveToExcel, AbstractSaveToWord saveToWord, AbstractSaveToPdf saveToPdf)
|
IOrderStorage orderStorage, AbstractSaveToExcel saveToExcel, AbstractSaveToWord saveToWord, AbstractSaveToPdf saveToPdf)
|
||||||
{
|
{
|
||||||
_setStorage = setStorage;
|
_setStorage = setStorage;
|
||||||
@ -37,15 +37,27 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
/// Получение списка мебельных модулей с указанием, в каких гарнитурах используются
|
/// Получение списка мебельных модулей с указанием, в каких гарнитурах используются
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<ReportSetFurnitureModuleViewModel> GetSetFurnitureModule()
|
public List<ReportSetFurnitureModuleWorkerViewModel> GetSetFurnitureModule(List<int> setIds)
|
||||||
{
|
{
|
||||||
|
if (setIds == null)
|
||||||
|
{
|
||||||
|
return new List<ReportSetFurnitureModuleWorkerViewModel>();
|
||||||
|
}
|
||||||
var furnitureModules = _furnitureModuleStorage.GetFullList();
|
var furnitureModules = _furnitureModuleStorage.GetFullList();
|
||||||
var sets = _setStorage.GetFullList();
|
List<SetViewModel> sets = new List<SetViewModel>();
|
||||||
var list = new List<ReportSetFurnitureModuleViewModel>();
|
foreach (var setId in setIds)
|
||||||
|
{
|
||||||
|
var res = _setStorage.GetElement(new SetSearchModel { Id = setId });
|
||||||
|
if (res != null)
|
||||||
|
{
|
||||||
|
sets.Add(res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var list = new List<ReportSetFurnitureModuleWorkerViewModel>();
|
||||||
|
|
||||||
foreach (var set in sets)
|
foreach (var set in sets)
|
||||||
{
|
{
|
||||||
var record = new ReportSetFurnitureModuleViewModel
|
var record = new ReportSetFurnitureModuleWorkerViewModel
|
||||||
{
|
{
|
||||||
SetName = set.Name,
|
SetName = set.Name,
|
||||||
FurnitureModules = new List<(string, int)>(),
|
FurnitureModules = new List<(string, int)>(),
|
||||||
@ -69,7 +81,7 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<ReportOrdersViewModel> GetOrders(ReportBindingModel model)
|
public List<ReportOrdersWorkerViewModel> GetOrders(ReportWorkerBindingModel model)
|
||||||
{
|
{
|
||||||
var orderInfos = _orderInfoStorage
|
var orderInfos = _orderInfoStorage
|
||||||
.GetFilteredList(new OrderInfoSearchModel { DateFrom = model.DateFrom, DateTo = model.DateTo });
|
.GetFilteredList(new OrderInfoSearchModel { DateFrom = model.DateFrom, DateTo = model.DateTo });
|
||||||
@ -81,11 +93,11 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
var orders = _orderStorage.GetFilteredList(new OrderSearchModel { OrderInfoId = orderInfoIds });
|
var orders = _orderStorage.GetFilteredList(new OrderSearchModel { OrderInfoId = orderInfoIds });
|
||||||
var sets = _setStorage.GetFullList();
|
var sets = _setStorage.GetFullList();
|
||||||
var furnitureModules = _furnitureModuleStorage.GetFullList();
|
var furnitureModules = _furnitureModuleStorage.GetFullList();
|
||||||
var list = new List<ReportOrdersViewModel>();
|
var list = new List<ReportOrdersWorkerViewModel>();
|
||||||
|
|
||||||
foreach (var order in orders)
|
foreach (var order in orders)
|
||||||
{
|
{
|
||||||
var record = new ReportOrdersViewModel
|
var record = new ReportOrdersWorkerViewModel
|
||||||
{
|
{
|
||||||
Id = order.Id,
|
Id = order.Id,
|
||||||
SetName = order.SetName,
|
SetName = order.SetName,
|
||||||
@ -96,7 +108,7 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
{
|
{
|
||||||
if (orderInfo.Id == order.OrderInfoId)
|
if (orderInfo.Id == order.OrderInfoId)
|
||||||
{
|
{
|
||||||
record = new ReportOrdersViewModel
|
record = new ReportOrdersWorkerViewModel
|
||||||
{
|
{
|
||||||
Id = order.Id,
|
Id = order.Id,
|
||||||
SetName = order.SetName,
|
SetName = order.SetName,
|
||||||
@ -129,37 +141,34 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
/// Сохранение компонент в файл-Word
|
/// Сохранение компонент в файл-Word
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
public void SaveFurnitureModuleToWordFile(ReportBindingModel model)
|
public void SaveFurnitureModuleToWordFile(ReportWorkerBindingModel model)
|
||||||
{
|
{
|
||||||
_saveToWord.CreateDoc(new WordInfo
|
_saveToWord.CreateDoc(new WordInfo
|
||||||
{
|
{
|
||||||
FileName = model.FileName,
|
|
||||||
Title = "Список компонент",
|
Title = "Список компонент",
|
||||||
Sets = _setStorage.GetFullList()
|
SetsFurnitureModules = GetSetFurnitureModule(model.SetIds)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сохранение компонент с указаеним продуктов в файл-Excel
|
/// Сохранение компонент с указаеним продуктов в файл-Excel
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
public void SaveSetFurnitureModuleToExcelFile(ReportBindingModel model)
|
public void SaveSetFurnitureModuleToExcelFile(ReportWorkerBindingModel model)
|
||||||
{
|
{
|
||||||
_saveToExcel.CreateReport(new ExcelInfo
|
_saveToExcel.CreateReport(new ExcelInfo
|
||||||
{
|
{
|
||||||
FileName = model.FileName,
|
|
||||||
Title = "Список компонент",
|
Title = "Список компонент",
|
||||||
SetFurnitureModules = GetSetFurnitureModule()
|
SetFurnitureModules = GetSetFurnitureModule(model.SetIds)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сохранение заказов в файл-Pdf
|
/// Сохранение заказов в файл-Pdf
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
public void SaveOrdersToPdfFile(ReportBindingModel model)
|
public void SaveOrdersToPdfFile(ReportWorkerBindingModel model)
|
||||||
{
|
{
|
||||||
_saveToPdf.CreateDoc(new PdfInfo
|
_saveToPdf.CreateDoc(new PdfInfo
|
||||||
{
|
{
|
||||||
FileName = model.FileName,
|
|
||||||
Title = "Список заказов",
|
Title = "Список заказов",
|
||||||
DateFrom = model.DateFrom!.Value,
|
DateFrom = model.DateFrom!.Value,
|
||||||
DateTo = model.DateTo!.Value,
|
DateTo = model.DateTo!.Value,
|
@ -22,14 +22,40 @@ namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
|||||||
JustificationType = WordJustificationType.Center
|
JustificationType = WordJustificationType.Center
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
foreach (var set in info.Sets)
|
foreach (var set in info.SetsFurnitureModules)
|
||||||
{
|
{
|
||||||
CreateParagraph(new WordParagraph
|
CreateParagraph(new WordParagraph
|
||||||
{
|
{
|
||||||
Texts = new List<(string, WordTextProperties)>
|
Texts = new List<(string, WordTextProperties)>
|
||||||
{
|
{
|
||||||
(set.Name, new WordTextProperties { Bold = true, Size = "24", }),
|
(set.SetName, new WordTextProperties { Bold = true, Size = "24", })
|
||||||
(", price: " + set.Cost.ToString(), new WordTextProperties { Size = "24", })
|
},
|
||||||
|
TextProperties = new WordTextProperties
|
||||||
|
{
|
||||||
|
Size = "24",
|
||||||
|
JustificationType = WordJustificationType.Both
|
||||||
|
}
|
||||||
|
});
|
||||||
|
foreach (var furnitureModule in set.FurnitureModules)
|
||||||
|
{
|
||||||
|
CreateParagraph(new WordParagraph
|
||||||
|
{
|
||||||
|
Texts = new List<(string, WordTextProperties)>
|
||||||
|
{
|
||||||
|
(furnitureModule.Item1 + " " + furnitureModule.Count.ToString(), new WordTextProperties { Bold = false, Size = "20", })
|
||||||
|
},
|
||||||
|
TextProperties = new WordTextProperties
|
||||||
|
{
|
||||||
|
Size = "20",
|
||||||
|
JustificationType = WordJustificationType.Both
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
CreateParagraph(new WordParagraph
|
||||||
|
{
|
||||||
|
Texts = new List<(string, WordTextProperties)>
|
||||||
|
{
|
||||||
|
("Итого " + set.TotalCount.ToString(), new WordTextProperties { Bold = false, Size = "24", })
|
||||||
},
|
},
|
||||||
TextProperties = new WordTextProperties
|
TextProperties = new WordTextProperties
|
||||||
{
|
{
|
||||||
|
@ -9,9 +9,9 @@ namespace FurnitureAssemblyBusinessLogic.OfficePackage.HelperModels
|
|||||||
{
|
{
|
||||||
public class ExcelInfo
|
public class ExcelInfo
|
||||||
{
|
{
|
||||||
public string FileName { get; set; } = string.Empty;
|
public string FileName { get; set; } = "C:\\temp\\excel_worker.xlsx";
|
||||||
public string Title { get; set; } = string.Empty;
|
public string Title { get; set; } = string.Empty;
|
||||||
public List<ReportSetFurnitureModuleViewModel> SetFurnitureModules
|
public List<ReportSetFurnitureModuleWorkerViewModel> SetFurnitureModules
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
|
@ -9,10 +9,10 @@ namespace FurnitureAssemblyBusinessLogic.OfficePackage.HelperModels
|
|||||||
{
|
{
|
||||||
public class PdfInfo
|
public class PdfInfo
|
||||||
{
|
{
|
||||||
public string FileName { get; set; } = string.Empty;
|
public string FileName { get; set; } = "C:\\temp\\pdf_worker.pdf";
|
||||||
public string Title { get; set; } = string.Empty;
|
public string Title { get; set; } = string.Empty;
|
||||||
public DateTime DateFrom { get; set; }
|
public DateTime DateFrom { get; set; }
|
||||||
public DateTime DateTo { get; set; }
|
public DateTime DateTo { get; set; }
|
||||||
public List<ReportOrdersViewModel> Orders { get; set; } = new();
|
public List<ReportOrdersWorkerViewModel> Orders { get; set; } = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,8 @@ namespace FurnitureAssemblyBusinessLogic.OfficePackage.HelperModels
|
|||||||
{
|
{
|
||||||
public class WordInfo
|
public class WordInfo
|
||||||
{
|
{
|
||||||
public string FileName { get; set; } = string.Empty;
|
public string FileName { get; set; } = "C:\\temp\\word_worker.docx";
|
||||||
public string Title { get; set; } = string.Empty;
|
public string Title { get; set; } = string.Empty;
|
||||||
public List<SetViewModel> Sets { get; set; } = new();
|
public List<ReportSetFurnitureModuleWorkerViewModel> SetsFurnitureModules { get; set; } = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,11 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyContracts.BindingModels
|
namespace FurnitureAssemblyContracts.BindingModels
|
||||||
{
|
{
|
||||||
public class ReportBindingModel
|
public class ReportWorkerBindingModel
|
||||||
{
|
{
|
||||||
public string FileName { get; set; } = string.Empty;
|
public string FileName { get; set; } = string.Empty;
|
||||||
public DateTime? DateFrom { get; set; }
|
public DateTime? DateFrom { get; set; }
|
||||||
public DateTime? DateTo { get; set; }
|
public DateTime? DateTo { get; set; }
|
||||||
|
public List<int>? SetIds { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -8,33 +8,33 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyContracts.BusinessLogicContracts
|
namespace FurnitureAssemblyContracts.BusinessLogicContracts
|
||||||
{
|
{
|
||||||
public interface IReportLogic
|
public interface IReportWorkerLogic
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получение списка мебельных модулей с указанием, в каких гарнитурах используются
|
/// Получение списка мебельных модулей с указанием, в каких гарнитурах используются
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
List<ReportSetFurnitureModuleViewModel> GetSetFurnitureModule();
|
List<ReportSetFurnitureModuleWorkerViewModel> GetSetFurnitureModule(List<int> setIds);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получение списка заказов за определенный период
|
/// Получение списка заказов за определенный период
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
List<ReportOrdersViewModel> GetOrders(ReportBindingModel model);
|
List<ReportOrdersWorkerViewModel> GetOrders(ReportWorkerBindingModel model);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сохранение материалов в файл-Word
|
/// Сохранение материалов в файл-Word
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
void SaveFurnitureModuleToWordFile(ReportBindingModel model);
|
void SaveFurnitureModuleToWordFile(ReportWorkerBindingModel model);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сохранение материалов с указаеним мебельных модулей в файл-Excel
|
/// Сохранение материалов с указаеним мебельных модулей в файл-Excel
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
void SaveSetFurnitureModuleToExcelFile(ReportBindingModel model);
|
void SaveSetFurnitureModuleToExcelFile(ReportWorkerBindingModel model);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сохранение заказов в файл-Pdf
|
/// Сохранение заказов в файл-Pdf
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
void SaveOrdersToPdfFile(ReportBindingModel model);
|
void SaveOrdersToPdfFile(ReportWorkerBindingModel model);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyContracts.ViewModels
|
namespace FurnitureAssemblyContracts.ViewModels
|
||||||
{
|
{
|
||||||
public class ReportOrdersViewModel
|
public class ReportOrdersWorkerViewModel
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public DateTime DateCreate { get; set; }
|
public DateTime DateCreate { get; set; }
|
@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyContracts.ViewModels
|
namespace FurnitureAssemblyContracts.ViewModels
|
||||||
{
|
{
|
||||||
public class ReportSetFurnitureModuleViewModel
|
public class ReportSetFurnitureModuleWorkerViewModel
|
||||||
{
|
{
|
||||||
public string SetName { get; set; } = string.Empty;
|
public string SetName { get; set; } = string.Empty;
|
||||||
public int TotalCount { get; set; }
|
public int TotalCount { get; set; }
|
@ -0,0 +1,52 @@
|
|||||||
|
using DocumentFormat.OpenXml.Spreadsheet;
|
||||||
|
using FurnitureAssemblyContracts.BindingModels;
|
||||||
|
using FurnitureAssemblyContracts.BusinessLogicContracts;
|
||||||
|
using FurnitureAssemblyContracts.SearchModels;
|
||||||
|
using FurnitureAssemblyContracts.ViewModels;
|
||||||
|
using FurnitureAssemblyDatabaseImplement.Models;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace FurnitureAssemblyRestApi.Controllers
|
||||||
|
{
|
||||||
|
[Route("api/[controller]/[action]")]
|
||||||
|
[ApiController]
|
||||||
|
public class ReportController : Controller
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IReportWorkerLogic _reportWorkerLogic;
|
||||||
|
public ReportController(ILogger<ReportController> logger, IReportWorkerLogic reportWorkerLogic)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_reportWorkerLogic = reportWorkerLogic;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateReportToDocx(ReportWorkerBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_reportWorkerLogic.SaveFurnitureModuleToWordFile(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка создания отчета");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateReportToXlsx(ReportWorkerBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_reportWorkerLogic.SaveSetFurnitureModuleToExcelFile(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка создания отчета");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,6 @@
|
|||||||
using FurnitureAssemblyBusinessLogic.BusinessLogics;
|
using FurnitureAssemblyBusinessLogic.BusinessLogics;
|
||||||
|
using FurnitureAssemblyBusinessLogic.OfficePackage.Implements;
|
||||||
|
using FurnitureAssemblyBusinessLogic.OfficePackage;
|
||||||
using FurnitureAssemblyContracts.BusinessLogicContracts;
|
using FurnitureAssemblyContracts.BusinessLogicContracts;
|
||||||
using FurnitureAssemblyContracts.StorageContracts;
|
using FurnitureAssemblyContracts.StorageContracts;
|
||||||
using FurnitureAssemblyDatabaseImplement.Implements;
|
using FurnitureAssemblyDatabaseImplement.Implements;
|
||||||
@ -29,6 +31,11 @@ builder.Services.AddTransient<IRoleLogic, RoleLogic>();
|
|||||||
builder.Services.AddTransient<IScopeLogic, ScopeLogic>();
|
builder.Services.AddTransient<IScopeLogic, ScopeLogic>();
|
||||||
builder.Services.AddTransient<ISetLogic, SetLogic>();
|
builder.Services.AddTransient<ISetLogic, SetLogic>();
|
||||||
builder.Services.AddTransient<IUserLogic, UserLogic>();
|
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.AddControllers();
|
builder.Services.AddControllers();
|
||||||
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||||
|
@ -29,6 +29,10 @@ namespace FurnitureAssemblyWorkerClientApp
|
|||||||
throw new Exception(result);
|
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 void PostRequest<T>(string requestUrl, T model)
|
||||||
{
|
{
|
||||||
var json = JsonConvert.SerializeObject(model);
|
var json = JsonConvert.SerializeObject(model);
|
||||||
|
@ -226,8 +226,10 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
|||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult AddFurnitureModuleInSet()
|
public IActionResult AddFurnitureModuleInSet()
|
||||||
{
|
{
|
||||||
ViewBag.Shops = APIClient.GetRequest<List<SetViewModel>>("api/set/getsetlist");
|
if (APIClient.User == null)
|
||||||
ViewBag.Manufactures = APIClient.GetRequest<List<FurnitureModuleViewModel>>("api/furnituremodule/getfurnituremodulelist");
|
{
|
||||||
|
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/getsetlist"), APIClient.GetRequest<List<FurnitureModuleViewModel>>("api/furnituremodule/getfurnituremodulelist")));
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
@ -248,5 +250,61 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
|||||||
));
|
));
|
||||||
Response.Redirect("Sets");
|
Response.Redirect("Sets");
|
||||||
}
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult ListSetsFurnitureModulesToFile()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlist"));
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void ListSetsFurnitureModulesToFile(int[] setIds, string type)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
if (setIds.Length <= 0)
|
||||||
|
{
|
||||||
|
throw new Exception("Количество должно быть больше 0");
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(type))
|
||||||
|
{
|
||||||
|
throw new Exception("Неверный тип отчета");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<int> res = new List<int>();
|
||||||
|
foreach (var item in setIds)
|
||||||
|
{
|
||||||
|
res.Add(item);
|
||||||
|
}
|
||||||
|
if (type == "docx")
|
||||||
|
{
|
||||||
|
APIClient.PostRequest("api/report/createreporttodocx", new ReportWorkerBindingModel
|
||||||
|
{
|
||||||
|
SetIds = res
|
||||||
|
});
|
||||||
|
Response.Redirect("GetDocxFile");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
APIClient.PostRequest("api/report/createreporttoxlsx", new ReportWorkerBindingModel
|
||||||
|
{
|
||||||
|
SetIds = res
|
||||||
|
});
|
||||||
|
Response.Redirect("GetXlsxFile");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult GetDocxFile()
|
||||||
|
{
|
||||||
|
return new PhysicalFileResult("C:\\temp\\word_worker.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
|
||||||
|
}
|
||||||
|
public IActionResult GetXlsxFile()
|
||||||
|
{
|
||||||
|
return new PhysicalFileResult("C:\\temp\\excel_worker.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,77 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels
|
||||||
|
|
||||||
|
@model List<SetViewModel>
|
||||||
|
|
||||||
|
@{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
<form method="post">
|
||||||
|
<div>
|
||||||
|
<div class="form-check form-check-inline">
|
||||||
|
<input class="form-check-input" type="radio" name="type" value="docx" id="docx">
|
||||||
|
<label class="form-check-label" for="docx">
|
||||||
|
В docx
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check form-check-inline">
|
||||||
|
<input class="form-check-input" type="radio" name="type" value="xlsx" id="xlsx" checked>
|
||||||
|
<label class="form-check-label" for="xlsx">
|
||||||
|
В xlsx
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<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>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<button class="btn btn-primary" type="submit">Сгенерировать</button>
|
||||||
|
</form>
|
||||||
|
}
|
||||||
|
</div>
|
@ -35,6 +35,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Sets">Гарнитуры</a>
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Sets">Гарнитуры</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="ListSetsFurnitureModulesToFile">Получение списка</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user