From 363eca2509b554d64554814b0991afb845e43d97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=88=D0=B8=D0=BD=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC?= Date: Mon, 13 Mar 2023 16:55:10 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A9=D0=B0=D0=B3=204.1=20=D0=94=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20OfficePackage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OfficePackage/AbstractSaveToExcel.cs | 81 +++++++++++++++++++ .../OfficePackage/AbstractSaveToPdf.cs | 59 ++++++++++++++ .../OfficePackage/AbstractSaveToWord.cs | 46 +++++++++++ .../HelperEnums/ExcelStyleInfoType.cs | 15 ++++ .../HelperEnums/PdfParagraphAlignmentType.cs | 15 ++++ .../HelperEnums/WordJustificationType.cs | 14 ++++ .../HelperModels/ExcelCellParameters.cs | 18 +++++ .../OfficePackage/HelperModels/ExcelInfo.cs | 16 ++++ .../HelperModels/ExcelMergeParameters.cs | 15 ++++ .../OfficePackage/HelperModels/PdfInfo.cs | 18 +++++ .../HelperModels/PdfParagraph.cs | 16 ++++ .../HelperModels/PdfRowParameters.cs | 16 ++++ .../OfficePackage/HelperModels/WordInfo.cs | 16 ++++ .../HelperModels/WordParagraph.cs | 14 ++++ .../HelperModels/WordTextProperties.cs | 17 ++++ .../PrecastConcretePlantBusinessLogic.csproj | 6 +- .../BindingModels/ReportBindingModel.cs | 15 ++++ .../BusinessLogicsContracts/IReportLogic.cs | 19 +++++ .../SearchModels/OrderSearchModel.cs | 2 + .../ReportComponentBlankViewModel.cs | 16 ++++ .../ViewModels/ReportOrdersViewModel.cs | 17 ++++ 21 files changed, 450 insertions(+), 1 deletion(-) create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToExcel.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToPdf.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToWord.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/ExcelStyleInfoType.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/PdfParagraphAlignmentType.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/WordJustificationType.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelCellParameters.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelInfo.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelMergeParameters.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfInfo.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfParagraph.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfRowParameters.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordInfo.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordParagraph.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordTextProperties.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantContracts/BindingModels/ReportBindingModel.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantContracts/BusinessLogicsContracts/IReportLogic.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantContracts/ViewModels/ReportComponentBlankViewModel.cs create mode 100644 PrecastConcretePlant/PrecastConcretePlantContracts/ViewModels/ReportOrdersViewModel.cs diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToExcel.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToExcel.cs new file mode 100644 index 0000000..6050642 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToExcel.cs @@ -0,0 +1,81 @@ +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums; +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage +{ + public abstract class AbstractSaveToExcel + { + public void CreateReport(ExcelInfo info) + { + CreateExcel(info); + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "A", + RowIndex = 1, + Text = info.Title, + StyleInfo = ExcelStyleInfoType.Title + }); + MergeCells(new ExcelMergeParameters + { + CellFromName = "A1", + CellToName = "C1" + }); + uint rowIndex = 2; + foreach (var pc in info.DocumentBlanks) + { + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "A", + RowIndex = rowIndex, + Text = pc.ComponentName, + StyleInfo = ExcelStyleInfoType.Text + }); + rowIndex++; + foreach (var (Reinforced, Count) in pc.Reinforcedies) + { + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "B", + RowIndex = rowIndex, + Text = Reinforced, + StyleInfo = ExcelStyleInfoType.TextWithBorder + }); + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "C", + RowIndex = rowIndex, + Text = Count.ToString(), + StyleInfo = ExcelStyleInfoType.TextWithBorder + }); + rowIndex++; + } + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "A", + RowIndex = rowIndex, + Text = "Итого", + StyleInfo = ExcelStyleInfoType.Text + }); + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "C", + RowIndex = rowIndex, + Text = pc.TotalCount.ToString(), + StyleInfo = ExcelStyleInfoType.Text + }); + rowIndex++; + } + SaveExcel(info); + } + + protected abstract void CreateExcel(ExcelInfo info); + protected abstract void InsertCellInWorksheet(ExcelCellParameters excelParams); + protected abstract void MergeCells(ExcelMergeParameters excelParams); + protected abstract void SaveExcel(ExcelInfo info); + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToPdf.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToPdf.cs new file mode 100644 index 0000000..1b8cb93 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToPdf.cs @@ -0,0 +1,59 @@ +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums; +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage +{ + public abstract class AbstractSaveToPdf + { + public void CreateDoc(PdfInfo info) + { + CreatePdf(info); + CreateParagraph(new PdfParagraph + { + Text = info.Title, + Style = "NormalTitle", + ParagraphAlignment = PdfParagraphAlignmentType.Center + }); + CreateParagraph(new PdfParagraph + { + Text = $"с{info.DateFrom.ToShortDateString()} по {info.DateTo.ToShortDateString()}", + Style = "Normal", + ParagraphAlignment = PdfParagraphAlignmentType.Center + }); + CreateTable(new List { "2cm", "3cm", "6cm", "3cm", "4cm" }); + CreateRow(new PdfRowParameters + { + Texts = new List { "Номер", "Дата заказа", "Изделие", "Сумма", "Статус" }, + Style = "NormalTitle", + ParagraphAlignment = PdfParagraphAlignmentType.Center + }); + foreach (var order in info.Orders) + { + CreateRow(new PdfRowParameters + { + Texts = new List { order.Id.ToString(), order.DateCreate.ToShortDateString(), order.DocumentName, order.Sum.ToString(), order.Status }, + Style = "Normal", + ParagraphAlignment = PdfParagraphAlignmentType.Left + }); + } + CreateParagraph(new PdfParagraph + { + Text = $"Итого: {info.Orders.Sum(x => x.Sum)}\t", + Style = "Normal", + ParagraphAlignment = PdfParagraphAlignmentType.Right + }); + SavePdf(info); + } + + protected abstract void CreatePdf(PdfInfo info); + protected abstract void CreateParagraph(PdfParagraph paragraph); + protected abstract void CreateTable(List columns); + protected abstract void CreateRow(PdfRowParameters rowParameters); + protected abstract void SavePdf(PdfInfo info); + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToWord.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToWord.cs new file mode 100644 index 0000000..4130137 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/AbstractSaveToWord.cs @@ -0,0 +1,46 @@ +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums; +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage +{ + public abstract class AbstractSaveToWord + { + public void CreateDoc(WordInfo info) + { + CreateWord(info); + CreateParagraph(new WordParagraph + { + Texts = new List<(string, WordTextProperties)> { (info.Title, new WordTextProperties { Bold = true, Size = "24", }) }, + TextProperties = new WordTextProperties + { + Size = "24", + JustificationType = WordJustificationType.Center + } + }); + foreach (var document in info.Documents) + { + CreateParagraph(new WordParagraph + { + Texts = new List<(string, WordTextProperties)> + {(document.ComponentName + " - ", new WordTextProperties { Size = "24", Bold = true}), + (document.Price.ToString(), new WordTextProperties { Size = "24", })}, + + TextProperties = new WordTextProperties + { + Size = "24", + JustificationType = WordJustificationType.Both + } + }); + } + SaveWord(info); + } + protected abstract void CreateWord(WordInfo info); + protected abstract void CreateParagraph(WordParagraph paragraph); + protected abstract void SaveWord(WordInfo info); + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/ExcelStyleInfoType.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/ExcelStyleInfoType.cs new file mode 100644 index 0000000..015b05f --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/ExcelStyleInfoType.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums +{ + public enum ExcelStyleInfoType + { + Title, + Text, + TextWithBorder + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/PdfParagraphAlignmentType.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/PdfParagraphAlignmentType.cs new file mode 100644 index 0000000..b1158e1 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/PdfParagraphAlignmentType.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums +{ + public enum PdfParagraphAlignmentType + { + Center, + Left, + Right + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/WordJustificationType.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/WordJustificationType.cs new file mode 100644 index 0000000..d46e2f2 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperEnums/WordJustificationType.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums +{ + public enum WordJustificationType + { + Center, + Both + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelCellParameters.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelCellParameters.cs new file mode 100644 index 0000000..db4fbc8 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelCellParameters.cs @@ -0,0 +1,18 @@ +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class ExcelCellParameters + { + public string ColumnName { get; set; } = string.Empty; + public uint RowIndex { get; set; } + public string Text { get; set; } = string.Empty; + public string CellReference => $"{ColumnName}{RowIndex}"; + public ExcelStyleInfoType StyleInfo { get; set; } + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelInfo.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelInfo.cs new file mode 100644 index 0000000..b764adf --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelInfo.cs @@ -0,0 +1,16 @@ +using PrecastConcretePlantContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class ExcelInfo + { + public string FileName { get; set; } = string.Empty; + public string Title { get; set; } = string.Empty; + public List DocumentBlanks { get; set; } = new(); + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelMergeParameters.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelMergeParameters.cs new file mode 100644 index 0000000..f36e570 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/ExcelMergeParameters.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class ExcelMergeParameters + { + public string CellFromName { get; set; } = string.Empty; + public string CellToName { get; set; } = string.Empty; + public string Merge => $"{CellFromName}:{CellToName}"; + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfInfo.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfInfo.cs new file mode 100644 index 0000000..a67ae02 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfInfo.cs @@ -0,0 +1,18 @@ +using PrecastConcretePlantContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class PdfInfo + { + public string FileName { get; set; } = string.Empty; + public string Title { get; set; } = string.Empty; + public DateTime DateFrom { get; set; } + public DateTime DateTo { get; set; } + public List Orders { get; set; } = new(); + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfParagraph.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfParagraph.cs new file mode 100644 index 0000000..636ba12 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfParagraph.cs @@ -0,0 +1,16 @@ +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class PdfParagraph + { + public string Text { get; set; } = string.Empty; + public string Style { get; set; } = string.Empty; + public PdfParagraphAlignmentType ParagraphAlignment { get; set; } + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfRowParameters.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfRowParameters.cs new file mode 100644 index 0000000..4141783 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/PdfRowParameters.cs @@ -0,0 +1,16 @@ +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class PdfRowParameters + { + public List Texts { get; set; } = new(); + public string Style { get; set; } = string.Empty; + public PdfParagraphAlignmentType ParagraphAlignment { get; set; } + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordInfo.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordInfo.cs new file mode 100644 index 0000000..278e23e --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordInfo.cs @@ -0,0 +1,16 @@ +using PrecastConcretePlantContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class WordInfo + { + public string FileName { get; set; } = string.Empty; + public string Title { get; set; } = string.Empty; + public List Documents { get; set; } = new(); + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordParagraph.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordParagraph.cs new file mode 100644 index 0000000..95c5626 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordParagraph.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class WordParagraph + { + public List<(string, WordTextProperties)> Texts { get; set; } = new(); + public WordTextProperties? TextProperties { get; set; } + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordTextProperties.cs b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordTextProperties.cs new file mode 100644 index 0000000..5fac369 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/OfficePackage/HelperModels/WordTextProperties.cs @@ -0,0 +1,17 @@ +using PrecastConcretePlantBusinessLogic.OfficePackage.HelperEnums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantBusinessLogic.OfficePackage.HelperModels +{ + public class WordTextProperties + { + public string Size { get; set; } = string.Empty; + public bool Bold { get; set; } + public WordJustificationType JustificationType { get; set; } + + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/PrecastConcretePlantBusinessLogic.csproj b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/PrecastConcretePlantBusinessLogic.csproj index 16b4699..70c8a2d 100644 --- a/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/PrecastConcretePlantBusinessLogic.csproj +++ b/PrecastConcretePlant/PrecastConcretePlantBusinessLogic/PrecastConcretePlantBusinessLogic.csproj @@ -1,4 +1,4 @@ - + net6.0 @@ -14,4 +14,8 @@ + + + + diff --git a/PrecastConcretePlant/PrecastConcretePlantContracts/BindingModels/ReportBindingModel.cs b/PrecastConcretePlant/PrecastConcretePlantContracts/BindingModels/ReportBindingModel.cs new file mode 100644 index 0000000..7759ae9 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantContracts/BindingModels/ReportBindingModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantContracts.BindingModels +{ + public class ReportBindingModel + { + public string FileName { get; set; } = string.Empty; + public DateTime? DateFrom { get; set; } + public DateTime? DateTo { get; set; } + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantContracts/BusinessLogicsContracts/IReportLogic.cs b/PrecastConcretePlant/PrecastConcretePlantContracts/BusinessLogicsContracts/IReportLogic.cs new file mode 100644 index 0000000..92647db --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantContracts/BusinessLogicsContracts/IReportLogic.cs @@ -0,0 +1,19 @@ +using PrecastConcretePlantContracts.BindingModels; +using PrecastConcretePlantContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantContracts.BusinessLogicsContracts +{ + public interface IReportLogic + { + List GetDocumentBlanks(); + List GetOrders(ReportBindingModel model); + void SaveDocumentsToWordFile(ReportBindingModel model); + void SaveProductComponentToExcelFile(ReportBindingModel model); + void SaveOrdersToPdfFile(ReportBindingModel model); + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantContracts/SearchModels/OrderSearchModel.cs b/PrecastConcretePlant/PrecastConcretePlantContracts/SearchModels/OrderSearchModel.cs index 14a8d3f..cf586e1 100644 --- a/PrecastConcretePlant/PrecastConcretePlantContracts/SearchModels/OrderSearchModel.cs +++ b/PrecastConcretePlant/PrecastConcretePlantContracts/SearchModels/OrderSearchModel.cs @@ -9,5 +9,7 @@ namespace PrecastConcretePlantContracts.SearchModels public class OrderSearchModel { public int? Id { get; set; } + public DateTime? DateFrom { get; set; } + public DateTime? DateTo { get; set; } } } diff --git a/PrecastConcretePlant/PrecastConcretePlantContracts/ViewModels/ReportComponentBlankViewModel.cs b/PrecastConcretePlant/PrecastConcretePlantContracts/ViewModels/ReportComponentBlankViewModel.cs new file mode 100644 index 0000000..0585f1e --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantContracts/ViewModels/ReportComponentBlankViewModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantContracts.ViewModels +{ + public class ReportComponentBlankViewModel + { + public string ComponentName { get; set; } = string.Empty; + public int TotalCount { get; set; } + public List<(string Reinforced, int Count)> Reinforcedies { get; set; } = new(); + + } +} diff --git a/PrecastConcretePlant/PrecastConcretePlantContracts/ViewModels/ReportOrdersViewModel.cs b/PrecastConcretePlant/PrecastConcretePlantContracts/ViewModels/ReportOrdersViewModel.cs new file mode 100644 index 0000000..4682189 --- /dev/null +++ b/PrecastConcretePlant/PrecastConcretePlantContracts/ViewModels/ReportOrdersViewModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PrecastConcretePlantContracts.ViewModels +{ + public class ReportOrdersViewModel + { + public int Id { get; set; } + public DateTime DateCreate { get; set; } + public string ComponentName { get; set; } = string.Empty; + public double Sum { get; set; } + public String Status { get; set; } = string.Empty; + } +}