From 8343749aedc0371da3e3e2bf0b4cd56746deaedd Mon Sep 17 00:00:00 2001 From: MorozovDanil Date: Mon, 16 Dec 2024 16:57:47 +0400 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=BE=D1=82=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=B0=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2,=20=D0=AD=D0=B3=D0=BE=D0=B2?= =?UTF-8?q?=D1=83=20=D1=81=D0=BB=D0=B0=D0=B2=D0=B0=20=D0=B8=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=87=D0=B5=D1=82=20<3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Forms/FormDirectoryReport.cs | 2 +- .../ProjectRepairCompany/Reports/DocReport.cs | 4 +- .../Reports/TableReport.cs | 188 +++++++++--------- 3 files changed, 97 insertions(+), 97 deletions(-) diff --git a/ProjectRepairCompany/ProjectRepairCompany/Forms/FormDirectoryReport.cs b/ProjectRepairCompany/ProjectRepairCompany/Forms/FormDirectoryReport.cs index 89b58be..4486487 100644 --- a/ProjectRepairCompany/ProjectRepairCompany/Forms/FormDirectoryReport.cs +++ b/ProjectRepairCompany/ProjectRepairCompany/Forms/FormDirectoryReport.cs @@ -15,7 +15,7 @@ namespace ProjectRepairCompany.Forms public partial class FormDirectoryReport : Form { private readonly IUnityContainer _container; - public FormDirectoryReport(UnityContainer container) + public FormDirectoryReport(IUnityContainer container) { InitializeComponent(); _container = container ?? diff --git a/ProjectRepairCompany/ProjectRepairCompany/Reports/DocReport.cs b/ProjectRepairCompany/ProjectRepairCompany/Reports/DocReport.cs index 2711f63..628f991 100644 --- a/ProjectRepairCompany/ProjectRepairCompany/Reports/DocReport.cs +++ b/ProjectRepairCompany/ProjectRepairCompany/Reports/DocReport.cs @@ -9,7 +9,7 @@ using System.Threading.Tasks; namespace ProjectRepairCompany.Reports; -internal class DocReport +public class DocReport { private readonly IStorageRepository _storageRepository; private readonly IMasterRepository _masterRepository; @@ -18,7 +18,7 @@ internal class DocReport private readonly ILogger _logger; public DocReport(IMasterRepository masterRepository, IDetailRepository detailRepository, IStorageRepository storageRepository, ILogger logger) { - _masterRepository = masterRepository + _masterRepository = masterRepository ?? throw new ArgumentNullException(nameof(masterRepository)); _detailRepository = detailRepository ?? throw new ArgumentNullException(nameof(detailRepository)); diff --git a/ProjectRepairCompany/ProjectRepairCompany/Reports/TableReport.cs b/ProjectRepairCompany/ProjectRepairCompany/Reports/TableReport.cs index 69a60ca..9ab859b 100644 --- a/ProjectRepairCompany/ProjectRepairCompany/Reports/TableReport.cs +++ b/ProjectRepairCompany/ProjectRepairCompany/Reports/TableReport.cs @@ -1,106 +1,106 @@ -using Microsoft.Extensions.Logging; -using ProjectRepairCompany.Entities; -using ProjectRepairCompany.Repositories; -using ProjectRepairCompany.Repositories.Implementations; -using System; -using System.Collections.Generic; -using System.Linq; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView; +//using Microsoft.Extensions.Logging; +//using ProjectRepairCompany.Entities; +//using ProjectRepairCompany.Repositories; +//using ProjectRepairCompany.Repositories.Implementations; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView; -namespace ProjectRepairCompany.Reports; +//namespace ProjectRepairCompany.Reports; -internal class TableReport -{ - private readonly IStorageDetailRepository _storageDetailRepository; - private readonly IOrderRepository _orderRepository; - private readonly ILogger _logger; +//internal class TableReport +//{ +// private readonly IStorageDetailRepository _storageDetailRepository; +// private readonly IOrderRepository _orderRepository; +// private readonly ILogger _logger; - internal static readonly string[] item = { "Деталь", "Дата", "Количество пришло", "Количество ушло" }; +// internal static readonly string[] item = { "Деталь", "Дата", "Количество пришло", "Количество ушло" }; - public TableReport(IStorageDetailRepository storageDetailRepository, IOrderRepository orderRepository, ILogger logger) - { - _storageDetailRepository = storageDetailRepository ?? throw new ArgumentNullException(nameof(storageDetailRepository)); - _orderRepository = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository)); - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } +// public TableReport(IStorageDetailRepository storageDetailRepository, IOrderRepository orderRepository, ILogger logger) +// { +// _storageDetailRepository = storageDetailRepository ?? throw new ArgumentNullException(nameof(storageDetailRepository)); +// _orderRepository = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository)); +// _logger = logger ?? throw new ArgumentNullException(nameof(logger)); +// } - public bool CreateTable(string filePath, int detailId, DateTime startDate, DateTime endDate) - { - try - { - new ExcelBuilder(filePath) - .AddHeader("Сводка по движению деталей", 1, 4) - .AddParagraph($"за период с {startDate:dd.MM.yyyy} по {endDate:dd.MM.yyyy}", 1) - .AddTable(new[] { 20, 15, 15, 15 }, GetData(detailId, startDate, endDate)) - .Build(); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Ошибка при формировании документа"); - return false; - } - } +// public bool CreateTable(string filePath, int detailId, DateTime startDate, DateTime endDate) +// { +// try +// { +// new ExcelBuilder(filePath) +// .AddHeader("Сводка по движению деталей", 1, 4) +// .AddParagraph($"за период с {startDate:dd.MM.yyyy} по {endDate:dd.MM.yyyy}", 1) +// .AddTable(new[] { 20, 15, 15, 15 }, GetData(detailId, startDate, endDate)) +// .Build(); +// return true; +// } +// catch (Exception ex) +// { +// _logger.LogError(ex, "Ошибка при формировании документа"); +// return false; +// } +// } - private List GetData(int detailId, DateTime startDate, DateTime endDate) - { - // Получаем данные о пополнении склада - var storageData = _storageDetailRepository - .ReadStorageDetails() - .Where(x => x.SupplyDate >= startDate && x.SupplyDate <= endDate && x.DetailId == detailId) - .Select(x => new - { - x.DetailId, - Date = x.SupplyDate, // Дата поступления - CountIn = x.DetailCount, // Количество пришло - CountOut = (int?)null // Нет исходящих - }) - .OrderBy(x => x.Date); // Сортировка по дате поступления +// private List GetData(int detailId, DateTime startDate, DateTime endDate) +// { +// // Получаем данные о пополнении склада +// var storageData = _storageDetailRepository +// .ReadStorageDetails() +// .Where(x => x.SupplyDate >= startDate && x.SupplyDate <= endDate && x.DetailId == detailId) +// .Select(x => new +// { +// x.DetailId, +// Date = x.SupplyDate, // Дата поступления +// CountIn = x.DetailCount, // Количество пришло +// CountOut = (int?)null // Нет исходящих +// }) +// .OrderBy(x => x.Date); // Сортировка по дате поступления - // Получаем данные о заказах - var orderData = _orderRepository - .ReadOrders() - .Where(x => x.DateIssue >= startDate && x.DateIssue <= endDate) - .SelectMany(x => x.OrderDetails) // Извлекаем все детали из заказов - .Where(orderDetail => orderDetail.DetailId == detailId) - .Select(orderDetail => new - { - DetailId = orderDetail.DetailId, - Date = orderDetail.Order.DateIssue, // Дата заказа - CountIn = (int?)null, // Нет поступлений - CountOut = orderDetail.DetailCount // Количество ушло - }) - .OrderBy(x => x.Date); // Сортировка по дате заказа +// // Получаем данные о заказах +// var orderData = _orderRepository +// .ReadOrders() +// .Where(x => x.DateIssue >= startDate && x.DateIssue <= endDate) +// .SelectMany(x => x.OrderDetails) // Извлекаем все детали из заказов +// .Where(orderDetail => orderDetail.DetailId == detailId) +// .Select(orderDetail => new +// { +// DetailId = orderDetail.DetailId, +// Date = orderDetail.Order.DateIssue, // Дата заказа +// CountIn = (int?)null, // Нет поступлений +// CountOut = orderDetail.DetailCount // Количество ушло +// }) +// .OrderBy(x => x.Date); // Сортировка по дате заказа - // Объединяем данные из двух источников - var combinedData = storageData - .Union(orderData) - .OrderBy(x => x.Date) // Сортируем все данные по дате - .ToList(); +// // Объединяем данные из двух источников +// var combinedData = storageData +// .Union(orderData) +// .OrderBy(x => x.Date) // Сортируем все данные по дате +// .ToList(); - // Формируем итоговую таблицу - var result = new List { item } - .Union(combinedData.Select(x => new string[] - { - x.DetailId.ToString(), // Деталь - x.Date.ToString("dd.MM.yyyy"), // Дата - x.CountIn?.ToString() ?? string.Empty, // Количество пришло - x.CountOut?.ToString() ?? string.Empty // Количество ушло - })) - .Union(new[] - { - new string[] - { - "Всего", - "", - combinedData.Sum(x => x.CountIn ?? 0).ToString(), // Суммируем все поступления - combinedData.Sum(x => x.CountOut ?? 0).ToString() // Суммируем все исходящие - } - }) - .ToList(); +// // Формируем итоговую таблицу +// var result = new List { item } +// .Union(combinedData.Select(x => new string[] +// { +// x.DetailId.ToString(), // Деталь +// x.Date.ToString("dd.MM.yyyy"), // Дата +// x.CountIn?.ToString() ?? string.Empty, // Количество пришло +// x.CountOut?.ToString() ?? string.Empty // Количество ушло +// })) +// .Union(new[] +// { +// new string[] +// { +// "Всего", +// "", +// combinedData.Sum(x => x.CountIn ?? 0).ToString(), // Суммируем все поступления +// combinedData.Sum(x => x.CountOut ?? 0).ToString() // Суммируем все исходящие +// } +// }) +// .ToList(); - return result; - } +// return result; +// } @@ -109,4 +109,4 @@ internal class TableReport -} +//}