Не выходи из комнаты. О, пускай только комната

догадывается, как ты выглядишь. И вообще инкогнито
эрго сум, как заметила форме в сердцах субстанция.
Не выходи из комнаты! На улице, чай, не Франция.
This commit is contained in:
Allllen4a 2024-05-31 18:37:31 +04:00
parent ae0fd39828
commit 360ba8f8d0
2 changed files with 111 additions and 40 deletions

View File

@ -15,6 +15,10 @@ namespace BeautySalonContracts.ViewModels
public string ServiceName { get; set; } = string.Empty;
public string ProcedureName { get; set; } = string.Empty;
public string CosmeticName { get; set; } = string.Empty;
public HashSet<EvaluationViewModel> Evaluations { get; set; } = new();
public HashSet<ServiceViewModel> Services { get; set; } = new();
}
}

View File

@ -1,45 +1,112 @@
@{
ViewData["Title"] = "Report";
@using BeautySalonContracts.ViewModels
@model List<ReportOrdersViewModel>
@{
ViewBag.Title = "Отчеты";
}
<h4 class="fw-bold">Отчет по услугам</h4>
<div class="d-flex flex-wrap gap-1 align-items-end mb-2">
<div class="mb-2">
<p class="mb-0">Дата начала:</p>
<input id="date-from-input" class="form-control" type="date" />
</div>
<div class="mb-2">
<p class="mb-0">Дата конца:</p>
<input id="date-to-input" class="form-control" type="date" />
</div>
<button id="generate-button" class="button-primary mb-2">
Показать
</button>
<button id="send-by-mail-button" class="button-primary mb-2">
На почту
</button>
<div class="text-center">
<h2 class="display-4">Отчеты</h2>
</div>
<p class="mb-0">
<span>За период с&nbsp;</span>
<span id="date-from-span" class="fw-bold">...</span>
<span>&nbsp;по&nbsp;</span>
<span id="date-to-span" class="fw-bold">...</span>
</p>
<div class="table-shell mb-2 border">
<table class="table mb-0">
<thead class="table-head">
<tr>
<th>Номер заказа</th>
<th>Дата</th>
<th>Услуги</th>
<th>Оценки</th>
</tr>
</thead>
<tbody id="tbody">
</tbody>
</table>
</div>
<form method="post" enctype="multipart/form-data" style="margin-top: 50px">
<!-- Сохранить отчеты в формате Word и Excel -->
<div class="d-flex justify-content-between">
<!-- Кнопка для сохранения отчета в формате Word -->
<div class="text-center">
<button type="submit" class="btn btn-primary" formaction="@Url.Action("CreateReportWord", "Home")">Список заказов Word</button>
</div>
<!-- Рецепты -->
<div class="row">
<div class="col-4">Процедуры:</div>
<div class="col-8">
<select name="procedures" id="procedures" class="form-control" size="4" multiple>
@foreach (var procedure in ViewBag.Procedures)
{
<option value="@procedure.Id">@procedure.Id</option>
}
</select>
</div>
</div>
<!-- Кнопка для сохранения отчета в формате Excel -->
<div class="text-center">
<button type="submit" class="btn btn-primary" formaction="@Url.Action("CreateReportExcel", "Home")">Список процедур Excel</button>
</div>
</div>
<script src="~/js/report.js" asp-append-version="true"></script>
<!-- Временной период выборки данных -->
<div class="d-flex justify-content-center" style="margin: 50px 0px 30px 0px">
<div class="text-center">
<label for="dateFrom">С</label>
<input type="date" id="dateFrom" name="dateFrom" class="form-control d-inline-block w-auto">
</div>
<div class="text-center">
<label for="dateTo">по</label>
<input type="date" id="dateTo" name="dateTo" class="form-control d-inline-block w-auto">
</div>
</div>
<!-- Действия для отчета в формате Pdf -->
<div class="d-flex justify-content-between">
<!-- Сохранить отчет в формате Pdf -->
<div class="text-center">
<button type="submit" class="btn btn-primary" formaction="@Url.Action("CreateReportPdf", "Home")">Сведения о заказах Pdf</button>
</div>
<!-- Отправить отчет на почту -->
<div class="d-flex">
<label for="fileUpload" class="d-block"></label>
<input type="file" id="fileUpload" name="fileUpload" class="form-control-file d-inline-block w-auto">
<button type="submit" class="btn btn-primary" formaction="@Url.Action("SendReport", "Home")">Отправить отчет на почту</button>
</div>
<!-- Вывести отчет на форму -->
<div class="text-center">
<button type="submit" class="btn btn-primary" formaction="@Url.Action("Reports", "Home")">Вывести отчет на форму</button>
</div>
</div>
</form>
<!-- Таблица для вывода отчета на форму -->
<table class="table">
<thead>
<tr>
<th>Заказ</th>
<th>Услуги</th>
<th>Оценки</th>
</tr>
</thead>
<tbody>
@if (Model == null || Model.Count <= 0)
{
<td class="text-center" colspan="3">Нет доступных данных</td>
}
else
{
foreach (var record in Model)
{
// Имя пациента
<td>@record.OrderAmount</td>
<td></td>
<td></td>
// Конвертируем из HashSet в List, чтобы можно было обращаться по индексу
var evaluations = new List<EvaluationViewModel>(record.Evaluations);
var services = new List<ServiceViewModel>(record.Services);
// Записываем названия лекарств во 2 колонку
// и названия лекарств в 3 колонку
int maxLength = Math.Max(evaluations.Count, services.Count);
for (int i = 0; i < maxLength; i++)
{
<tr>
<td></td>
<td>@(i < evaluations.Count ? evaluations[i].PointsProcedure : "")</td>
<td>@(i < services.Count ? services[i].ServiceName : "")</td>
</tr>
}
}
}
</tbody>
</table>