diff --git a/BankYouBankrupt/BankYouBankruptBusinessLogic/BankYouBankruptBusinessLogic.csproj b/BankYouBankrupt/BankYouBankruptBusinessLogic/BankYouBankruptBusinessLogic.csproj
index 4eea3c3..1fa554a 100644
--- a/BankYouBankrupt/BankYouBankruptBusinessLogic/BankYouBankruptBusinessLogic.csproj
+++ b/BankYouBankrupt/BankYouBankruptBusinessLogic/BankYouBankruptBusinessLogic.csproj
@@ -6,10 +6,6 @@
enable
-
-
-
-
diff --git a/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportCashierLogic.cs b/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportCashierLogic.cs
new file mode 100644
index 0000000..c1e64c1
--- /dev/null
+++ b/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportCashierLogic.cs
@@ -0,0 +1,107 @@
+using BankYouBankruptBusinessLogic.OfficePackage;
+using BankYouBankruptBusinessLogic.OfficePackage.HelperModels;
+using BankYouBankruptContracts.BindingModels;
+using BankYouBankruptContracts.BusinessLogicsContracts;
+using BankYouBankruptContracts.SearchModels;
+using BankYouBankruptContracts.StoragesContracts;
+using BankYouBankruptContracts.ViewModels;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BankYouBankruptBusinessLogic.BusinessLogics
+{
+ public class ReportCashierLogic : IReportCashierLogic
+ {
+ private readonly IMoneyTransferStorage _moneyTransferStorage;
+
+ private readonly ICashWithdrawalStorage _cashWithdrawalStorage;
+
+ private readonly IAccountStorage _accountStorage;
+
+ private readonly AbstractSaveToExcelCashier _saveToExcel;
+
+ private readonly AbstractSaveToWordCashier _saveToWord;
+
+ private readonly AbstractSaveToPdfCashier _saveToPdf;
+
+ //инициализируем поля класса через контейнер
+ public ReportCashierLogic(IMoneyTransferStorage moneyTransferStorage, ICashWithdrawalStorage cashWithdrawalStorage,
+ IAccountStorage accountStorage, AbstractSaveToExcelCashier saveToExcel, AbstractSaveToWordCashier saveToWord,
+ AbstractSaveToPdfCashier saveToPdf)
+ {
+ _moneyTransferStorage = moneyTransferStorage;
+ _cashWithdrawalStorage = cashWithdrawalStorage;
+ _accountStorage = accountStorage;
+
+ _saveToExcel = saveToExcel;
+ _saveToWord = saveToWord;
+ _saveToPdf = saveToPdf;
+ }
+
+ public List? GetMoneyTransfers(ReportBindingModel model)
+ {
+ return _moneyTransferStorage.GetFilteredList(new MoneyTransferSearchModel { DateFrom = model.DateFrom, DateTo = model.DateTo})
+ .Select(x => new ReportCashierViewModel
+ {
+ AccountId = x.Id,
+ DateOperation = x.DateOperation,
+ ClientName = x.ClientName,
+ SumOperation = x.SumOperation,
+ TypeOperation = x.TypeOperation
+ })
+ .ToList();
+ }
+
+ public List? GetCashWithrawals(ReportBindingModel model)
+ {
+ return _cashWithdrawalStorage.GetFilteredList(new CashWithdrawalSearchModel { DateFrom = model.DateFrom, DateTo = model.DateTo })
+ .Select(x => new ReportOrdersViewModel
+ {
+ Id = x.Id,
+ DateCreate = x.DateCreate,
+ ManufactureName = x.ManufactureName,
+ Sum = x.Sum,
+ OrderStatus = x.Status.ToString()
+ })
+ .ToList();
+ }
+
+ //Сохранение мороженных в файл-Word
+ public void SaveAccountsToWordFile(ReportBindingModel model)
+ {
+ _saveToWord.CreateDoc(new WordInfo
+ {
+ FileName = model.FileName,
+ Title = "Список изделий",
+ Accounts = _accountStorage.GetFullList()
+ });
+ }
+
+ //Сохранение заготовок с указаеним изделий в файл-Excel
+ public void SaveAccountsToExcelFile(ReportBindingModel model)
+ {
+ _saveToExcel.CreateReport(new ExcelInfo
+ {
+ FileName = model.FileName,
+ Title = "Список заготовок",
+ Accounts = _accountStorage.GetFullList()
+ });
+ }
+
+ //Сохранение заказов в файл-Pdf
+ public void SaveAccountsToPdfFile(ReportBindingModel model)
+ {
+ _saveToPdf.CreateDoc(new PdfInfo
+ {
+ FileName = model.FileName,
+ Title = "Список заказов",
+ DateFrom = model.DateFrom!.Value,
+ DateTo = model.DateTo!.Value,
+ ReportAccounts = GetAccounts(model)
+ });
+ }
+ }
+}
diff --git a/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/HelperModels/ExcelInfo.cs b/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/HelperModels/ExcelInfo.cs
index 99cbc13..f470675 100644
--- a/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/HelperModels/ExcelInfo.cs
+++ b/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/HelperModels/ExcelInfo.cs
@@ -1,4 +1,5 @@
-using System;
+using BankYouBankruptContracts.ViewModels;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -14,5 +15,8 @@ namespace BankYouBankruptBusinessLogic.OfficePackage.HelperModels
//заголовок
public string Title { get; set; } = string.Empty;
- }
+
+ //список счетов для вывода и сохранения
+ public List Accounts { get; set; } = new();
+ }
}
diff --git a/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/HelperModels/PdfInfo.cs b/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/HelperModels/PdfInfo.cs
index e889ddb..f696ce3 100644
--- a/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/HelperModels/PdfInfo.cs
+++ b/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/HelperModels/PdfInfo.cs
@@ -19,6 +19,6 @@ namespace BankYouBankruptBusinessLogic.OfficePackage.HelperModels
public DateTime DateTo { get; set; }
//перечень заказов за указанный период для вывода/сохранения
- public List reportAccounts { get; set; } = new();
+ public List ReportAccounts { get; set; } = new();
}
}
diff --git a/BankYouBankrupt/BankYouBankruptContracts/BusinessLogicsContracts/IReportCashierLogic.cs b/BankYouBankrupt/BankYouBankruptContracts/BusinessLogicsContracts/IReportCashierLogic.cs
index 8a26c89..b884af5 100644
--- a/BankYouBankrupt/BankYouBankruptContracts/BusinessLogicsContracts/IReportCashierLogic.cs
+++ b/BankYouBankrupt/BankYouBankruptContracts/BusinessLogicsContracts/IReportCashierLogic.cs
@@ -10,10 +10,12 @@ namespace BankYouBankruptContracts.BusinessLogicsContracts
{
public interface IReportCashierLogic
{
- List? GetAccounts(ReportBindingModel model);
+ List? GetMoneyTransfers(ReportBindingModel model);
- //Сохранение отчёта по счетам в файл-Word
- void SaveAccountsToWordFile(ReportBindingModel model);
+ List? GetCashWithrawals(ReportBindingModel model);
+
+ //Сохранение отчёта по счетам в файл-Word
+ void SaveAccountsToWordFile(ReportBindingModel model);
//Сохранение отчёта по счетам в файл-Excel
void SaveAccountsToExcelFile(ReportBindingModel model);
diff --git a/BankYouBankrupt/BankYouBankruptContracts/SearchModels/MoneyTransferSearchModel.cs b/BankYouBankrupt/BankYouBankruptContracts/SearchModels/MoneyTransferSearchModel.cs
index fd1bbcc..84a1109 100644
--- a/BankYouBankrupt/BankYouBankruptContracts/SearchModels/MoneyTransferSearchModel.cs
+++ b/BankYouBankrupt/BankYouBankruptContracts/SearchModels/MoneyTransferSearchModel.cs
@@ -16,6 +16,8 @@ namespace BankYouBankruptContracts.SearchModels
public int? AccountPayeeId { get; set; }
- public DateTime? DateOperation { get; set; }
+ public DateTime? DateFrom { get; set; }
+
+ public DateTime? DateTo { get; set; }
}
}