diff --git a/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/BusinessLogics/ReportLogic.cs b/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/BusinessLogics/ReportLogic.cs
index a55eac5..cdd5b13 100644
--- a/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/BusinessLogics/ReportLogic.cs
+++ b/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/BusinessLogics/ReportLogic.cs
@@ -1,4 +1,5 @@
-using FurnitureAssembly_WorkerContracts.BindingModels;
+using FurnitureAssembly_WorkerBusinessLogic.OfficePackage.HelperModels;
+using FurnitureAssembly_WorkerContracts.BindingModels;
using FurnitureAssembly_WorkerContracts.BusinessLogicContracts;
using FurnitureAssembly_WorkerContracts.SearchModels;
using FurnitureAssembly_WorkerContracts.StorageContracts;
@@ -67,16 +68,40 @@ namespace FurnitureAssembly_WorkerBusinessLogic.BusinessLogics
///
public List GetOrders(ReportBindingModel model)
{
- return _orderStorage.GetFilteredList(new OrderSearchModel { DateFrom = model.DateFrom, DateTo = model.DateTo })
- .Select(x => new ReportOrdersViewModel
- {
- Id = x.Id,
- DateCreate = x.DateCreate,
- SetName = x.SetName,
- Sum = x.Sum,
+ var orders = _orderStorage
+ .GetFilteredList(new OrderSearchModel { DateFrom = model.DateFrom, DateTo = model.DateTo });
+ var sets = _setStorage.GetFullList();
+ var furnitureModules = _furnitureModuleStorage.GetFullList();
+ var list = new List();
- })
- .ToList();
+ foreach (var order in orders)
+ {
+ var record = new ReportOrdersViewModel
+ {
+ Id = order.Id,
+ SetName = order.SetName,
+ DateCreate = order.DateCreate,
+ FurnitureModules = new List<(string, double)>(),
+ TotalCount = 0
+ };
+ foreach (var set in sets)
+ {
+ if (set.Id == order.SetId)
+ {
+ foreach (var furnitureModule in furnitureModules)
+ {
+ if (set.SetFurnitureModules.ContainsKey(furnitureModule.Id))
+ {
+ record.FurnitureModules.Add(new(furnitureModule.Name, furnitureModule.Cost));
+ record.TotalCount += set.SetFurnitureModules[furnitureModule.Id].Item2;
+ }
+ }
+ }
+ }
+ list.Add(record);
+ }
+
+ return list;
}
///
/// Сохранение компонент в файл-Word
diff --git a/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/OfficePackage/AbstractSaveToPdf.cs b/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/OfficePackage/AbstractSaveToPdf.cs
index d5e4e5d..fe2e71c 100644
--- a/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/OfficePackage/AbstractSaveToPdf.cs
+++ b/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/OfficePackage/AbstractSaveToPdf.cs
@@ -35,45 +35,29 @@ namespace FurnitureAssembly_WorkerBusinessLogic.OfficePackage
Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Left
});
- CreateTable(new List { "2cm", "3cm", "6cm", "3cm", "3cm" });
+ CreateTable(new List { "2cm", "3cm", "3cm", "3cm" });
CreateRow(new PdfRowParameters
{
Texts = new List { "Номер", "Дата заказа", "Мебельный модуль", "Сумма" },
Style = "NormalTitle",
ParagraphAlignment = PdfParagraphAlignmentType.Center
});
- foreach (var furnitureModule in order.)
+ foreach (var furnitureModule in order.FurnitureModules)
{
CreateRow(new PdfRowParameters
{
- Texts = new List { order.Id.ToString(), order.DateCreate.ToShortDateString(), order.SetName, order.Sum.ToString() },
+ Texts = new List { order.Id.ToString(), order.DateCreate.ToShortDateString(), furnitureModule.Name, furnitureModule.Cost.ToString() },
Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Left
});
}
- }
- CreateTable(new List { "2cm", "3cm", "6cm", "3cm", "3cm" });
- CreateRow(new PdfRowParameters
- {
- Texts = new List { "Номер", "Дата заказа", "Изделие", "Сумма" },
- Style = "NormalTitle",
- ParagraphAlignment = PdfParagraphAlignmentType.Center
- });
- foreach (var order in info.Orders)
- {
- CreateRow(new PdfRowParameters
+ CreateParagraph(new PdfParagraph
{
- Texts = new List { order.Id.ToString(), order.DateCreate.ToShortDateString(), order.SetName, order.Sum.ToString() },
+ Text = $"Итого: {info.Orders.Sum(x => x.Sum)}\t",
Style = "Normal",
- ParagraphAlignment = PdfParagraphAlignmentType.Left
+ ParagraphAlignment = PdfParagraphAlignmentType.Rigth
});
}
- CreateParagraph(new PdfParagraph
- {
- Text = $"Итого: {info.Orders.Sum(x => x.Sum)}\t",
- Style = "Normal",
- ParagraphAlignment = PdfParagraphAlignmentType.Rigth
- });
SavePdf(info);
}
///
diff --git a/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/OfficePackage/Implements/SaveToPdf.cs b/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/OfficePackage/Implements/SaveToPdf.cs
index a202213..32b881c 100644
--- a/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/OfficePackage/Implements/SaveToPdf.cs
+++ b/FurnitureAssembly_Worker/FurnitureAssembly_WorkerBusinessLogic/OfficePackage/Implements/SaveToPdf.cs
@@ -2,6 +2,7 @@
using FurnitureAssembly_WorkerBusinessLogic.OfficePackage.HelperModels;
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
+using MigraDoc.DocumentObjectModel.Tables;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/FurnitureAssembly_Worker/FurnitureAssembly_WorkerContracts/ViewModels/ReportOrdersViewModel.cs b/FurnitureAssembly_Worker/FurnitureAssembly_WorkerContracts/ViewModels/ReportOrdersViewModel.cs
index 6645d64..a31a170 100644
--- a/FurnitureAssembly_Worker/FurnitureAssembly_WorkerContracts/ViewModels/ReportOrdersViewModel.cs
+++ b/FurnitureAssembly_Worker/FurnitureAssembly_WorkerContracts/ViewModels/ReportOrdersViewModel.cs
@@ -1,4 +1,5 @@
-using System;
+using FurnitureAssembly_WorkerDataModels.Models;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -11,7 +12,8 @@ namespace FurnitureAssembly_WorkerContracts.ViewModels
public int Id { get; set; }
public DateTime DateCreate { get; set; }
public string SetName { get; set; } = string.Empty;
- public List<(string FurnitureModule, int Count)> FurnitureModules { get; set; } = new();
+ public List<(string Name, double Cost)> FurnitureModules { get; set; } = new();
+ public int TotalCount { get; set; }
public double Sum { get; set; }
}
}