This commit is contained in:
shadowik 2023-05-19 01:22:43 +04:00
commit 5f765a77cf
8 changed files with 180 additions and 70 deletions

View File

@ -1,36 +0,0 @@
using BankYouBankruptContracts.BusinessLogicsContracts;
using DocumentFormat.OpenXml.ExtendedProperties;
using Org.BouncyCastle.Asn1.Ocsp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
namespace BankYouBankruptBusinessLogic.BusinessLogics
{
public class ReportLoad : IReportLoad
{
public byte[] LoadFile(bool whoRequested)
{
string pdfFilePath;
//если пришло true, то загружаем отчёт клиента
if (whoRequested)
{
pdfFilePath = "C:\\Users\\Programmist73\\Desktop\\Практика\\2-й курс\\4-й семестр\\CourseWork_BankYouBankrupt\\BankYouBankrupt\\BankYouBankruptRestAPI\\Отчёт_поартам.pdf";
}
else
{
pdfFilePath = "C:\\Users\\Programmist73\\Desktop\\Практика\\2-й курс\\4-й семестр\\CourseWork_BankYouBankrupt\\BankYouBankrupt\\BankYouBankruptRestAPI\\Отчёт_по_счетам.pdf";
}
byte[] bytes = System.IO.File.ReadAllBytes(pdfFilePath);
System.IO.File.WriteAllBytes(pdfFilePath, bytes);
return bytes;
}
}
}

View File

@ -254,6 +254,8 @@ namespace BankYouBankruptClientApp.Controllers
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.DataOfClientReport = null;
return View(); return View();
} }
@ -271,6 +273,8 @@ namespace BankYouBankruptClientApp.Controllers
DateTo = dateTo DateTo = dateTo
}); });
ViewBag.DataOfClientReport = APIClient.GetRequest<ReportClientViewModelForHTML>($"api/Report/GetDataOfClientReport");
return View(); return View();
} }

View File

@ -1,4 +1,8 @@
@{ @using BankYouBankruptContracts.ViewModels;
@model ReportClientViewModelForHTML
@{
ViewData["Title"] = "Создание отчёта"; ViewData["Title"] = "Создание отчёта";
} }
@ -24,6 +28,87 @@
<input id="createReport" type="submit" value="Сформировать отчёт" class="btn btn-primary" /> <input id="createReport" type="submit" value="Сформировать отчёт" class="btn btn-primary" />
</div> </div>
</div> </div>
@if (Model != null)
{
<div class="row"> <div class="row">
<p>Отчёт по пополнениям</p>
<table class="table">
<thead>
<tr>
<th>
Номер операции
</th>
<th>
Номер карты
</th>
<th>
Сумма
</th>
<th>
Дата операции
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ReportCrediting)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.OperationId)
</td>
<td>
@Html.DisplayFor(modelItem => item.CardNumber)
</td>
<td>
@Html.DisplayFor(modelItem => item.SumOperation)
</td>
<td>
@Html.DisplayFor(modelItem => item.DateComplite)
</td>
</tr>
}
</tbody>
</table>
</div> </div>
<div class="row">
<p>Отчёт по снятиям</p>
<table class="table">
<thead>
<tr>
<th>
Номер операции
</th>
<th>
Номер карты
</th>
<th>
Сумма
</th>
<th>
Дата операции
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ReportDebiting)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.OperationId)
</td>
<td>
@Html.DisplayFor(modelItem => item.CardNumber)
</td>
<td>
@Html.DisplayFor(modelItem => item.SumOperation)
</td>
<td>
@Html.DisplayFor(modelItem => item.DateComplite)
</td>
</tr>
}
</tbody>
</table>
</div>
}
</form> </form>

View File

@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankYouBankruptContracts.BusinessLogicsContracts
{
public interface IReportLoad
{
byte[] LoadFile(bool whoRequested);
}
}

View File

@ -18,29 +18,29 @@ namespace BankYouBankruptRestAPI.Controllers
{ {
private readonly ILogger _logger; private readonly ILogger _logger;
//private readonly IReportCashierLogic _reportCashierLogic;
private readonly IReportClientLogic _reportClientLogic; private readonly IReportClientLogic _reportClientLogic;
private readonly IReportCashierLogic _reportCashierLogic; private readonly IReportCashierLogic _reportCashierLogic;
private readonly IReportLoad _reportLoad; //хранят данные для отображения отчёта на вебе
private ReportClientViewModelForHTML _reportClientViewModelForHTML;
public ReportController(ILogger<ReportController> logger, IReportClientLogic reportClientLogic, IReportCashierLogic reportCashierLogic, IReportLoad reportLoad) private ReportCashierViewModelForHTML _reportCashierViewModelForHTML;
public ReportController(ILogger<ReportController> logger, IReportClientLogic reportClientLogic, IReportCashierLogic reportCashierLogic)
{ {
_logger = logger; _logger = logger;
_reportClientLogic = reportClientLogic; _reportClientLogic = reportClientLogic;
_reportCashierLogic = reportCashierLogic; _reportCashierLogic = reportCashierLogic;
_reportLoad = reportLoad;
} }
//метод генерации отчёта за период по картам клиента //метод генерации отчёта за период по картам клиента
[HttpPost] [HttpPost]
public ReportClientViewModelForHTML CreateClientReport(ReportSupportBindingModel model) public void CreateClientReport(ReportSupportBindingModel model)
{ {
try try
{ {
return _reportClientLogic.SaveClientReportToPdfFile(new ReportBindingModel _reportClientViewModelForHTML = _reportClientLogic.SaveClientReportToPdfFile(new ReportBindingModel
{ {
FileName = "Отчёт_поартам.pdf", FileName = "Отчёт_поартам.pdf",
DateFrom = model.DateFrom, DateFrom = model.DateFrom,
@ -56,11 +56,11 @@ namespace BankYouBankruptRestAPI.Controllers
//метод генерации отчёта по всем счетм клиентов //метод генерации отчёта по всем счетм клиентов
[HttpPost] [HttpPost]
public ReportCashierViewModelForHTML CreateCashierReport(ReportSupportBindingModel model) public void CreateCashierReport(ReportSupportBindingModel model)
{ {
try try
{ {
return _reportCashierLogic.SaveAccountsToPdfFile(new ReportBindingModel _reportCashierViewModelForHTML = _reportCashierLogic.SaveAccountsToPdfFile(new ReportBindingModel
{ {
FileName = "Отчёт_по_счетам.pdf", FileName = "Отчёт_по_счетам.pdf",
ClientId = model.ClientId, ClientId = model.ClientId,
@ -74,5 +74,78 @@ namespace BankYouBankruptRestAPI.Controllers
throw; throw;
} }
} }
//передача данных из отчёта клиента
[HttpGet]
public ReportClientViewModelForHTML GetDataOfClientReport()
{
try
{
return _reportClientViewModelForHTML;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка входа в систему");
throw;
}
}
//передача данных из отчёта кассира
[HttpGet]
public ReportCashierViewModelForHTML GetDataOfCashierReport()
{
try
{
return _reportCashierViewModelForHTML;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка входа в систему");
throw;
}
}
/*
//метод генерации отчёта за период по картам клиента
[HttpPost]
public void CreateClientReport(ReportSupportBindingModel model)
{
try
{
_reportClientViewModelForHTML = _reportClientLogic.SaveClientReportToPdfFile(new ReportBindingModel
{
FileName = "Отчёт_поартам.pdf",
DateFrom = model.DateFrom,
DateTo = model.DateTo
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка входа в систему");
throw;
}
}
//метод генерации отчёта по всем счетм клиентов
[HttpPost]
public void CreateCashierReport(ReportSupportBindingModel model)
{
try
{
_reportCashierViewModelForHTML = _reportCashierLogic.SaveAccountsToPdfFile(new ReportBindingModel
{
FileName = "Отчёт_по_счетам.pdf",
ClientId = model.ClientId,
DateFrom = model.DateFrom,
DateTo = model.DateTo
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка входа в систему");
throw;
}
}
*/
} }
} }

View File

@ -34,14 +34,11 @@ builder.Services.AddTransient<IDebitingLogic, DebitingLogic>();
builder.Services.AddTransient<ICashWithdrawalLogic, CashWithdrawalLogic>(); builder.Services.AddTransient<ICashWithdrawalLogic, CashWithdrawalLogic>();
builder.Services.AddTransient<IReportClientLogic, ReportClientLogic>(); builder.Services.AddTransient<IReportClientLogic, ReportClientLogic>();
builder.Services.AddTransient<IReportCashierLogic, ReportCashierLogic>(); builder.Services.AddSingleton<IReportCashierLogic, ReportCashierLogic>();
//для отправки файла в приложение
builder.Services.AddTransient<IReportLoad, ReportLoad>();
builder.Services.AddTransient<IMessageInfoLogic, MessageInfoLogic>(); builder.Services.AddTransient<IMessageInfoLogic, MessageInfoLogic>();
builder.Services.AddSingleton<AbstractMailWorker, MailKitWorker>(); builder.Services.AddTransient<AbstractMailWorker, MailKitWorker>();
//теперь общий //теперь общий
builder.Services.AddTransient<AbstractSaveToPdfClient, SaveToPdf>(); builder.Services.AddTransient<AbstractSaveToPdfClient, SaveToPdf>();