From b503bc0099d91397e6874e31f3fad49e0c3b8154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=BD=D0=B0=20=D0=97=D0=B0=D0=B1=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D0=B8=D0=BD=D0=B0?= Date: Sat, 4 May 2024 01:39:00 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BE=D1=82=D1=87=D1=91=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessLogics/ReportLogicHeadwaiter.cs | 3 +- .../BusinessLogics/ReportLogicOrganiser.cs | 12 +++- .../AbstractSaveToPdfOrganiser.cs | 6 +- .../ViewModels/ReportMembersViewModel.cs | 4 +- .../Controllers/HomeController.cs | 50 +++++++--------- Hotel/HotelOrganiserApp/Program.cs | 1 + .../Views/Home/ListMembersToPdfFile.cshtml | 60 +++++++++++++++++++ 7 files changed, 99 insertions(+), 37 deletions(-) create mode 100644 Hotel/HotelOrganiserApp/Views/Home/ListMembersToPdfFile.cshtml diff --git a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs index bafdc18..3146702 100644 --- a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs +++ b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs @@ -115,8 +115,7 @@ namespace HotelBusinessLogic.BusinessLogics { foreach (var mp in conferenceBooking.ConferenceBookingLunches.Values) { - var conferenceId = conferenceBooking.ConferenceId; - var conference = conferenced.FirstOrDefault(dp => dp.Id == conferenceId); + var conference = conferenced.FirstOrDefault(dp => dp.Id == conferenceBooking.ConferenceId); listAll.Add(new ReportLunchesViewModel { LunchName = mp.LunchName, diff --git a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicOrganiser.cs b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicOrganiser.cs index e31a726..fbc945f 100644 --- a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicOrganiser.cs +++ b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicOrganiser.cs @@ -6,6 +6,7 @@ using HotelContracts.StoragesContracts; using HotelContracts.ViewModels; using HotelContracts.BindingModels; using HotelDataBaseImplement.Implemets; +using HotelDataBaseImplement.Models; namespace HotelBusinessLogic.BusinessLogics { @@ -15,16 +16,18 @@ namespace HotelBusinessLogic.BusinessLogics private readonly IMemberStorage _memberStorage; private readonly IConferenceStorage _conferenceStorage; private readonly IConferenceBookingStorage _conferenceBookingStorage; + private readonly IRoomStorage _roomStorage; private readonly AbstractSaveToExcelOrganiser _saveToExcel; private readonly AbstractSaveToWordOrganiser _saveToWord; private readonly AbstractSaveToPdfOrganiser _saveToPdf; - public ReportLogicOrganiser(IMealPlanStorage mealPlanStorage, IMemberStorage memberStorage, IConferenceStorage conferenceStorage, IConferenceBookingStorage conferenceBookingStorage, AbstractSaveToExcelOrganiser saveToExcel, AbstractSaveToWordOrganiser saveToWord, AbstractSaveToPdfOrganiser saveToPdf) + public ReportLogicOrganiser(IMealPlanStorage mealPlanStorage, IMemberStorage memberStorage, IConferenceStorage conferenceStorage, IConferenceBookingStorage conferenceBookingStorage, IRoomStorage roomStorage, AbstractSaveToExcelOrganiser saveToExcel, AbstractSaveToWordOrganiser saveToWord, AbstractSaveToPdfOrganiser saveToPdf) { _mealPlanStorage = mealPlanStorage; _memberStorage = memberStorage; _conferenceStorage = conferenceStorage; _conferenceBookingStorage = conferenceBookingStorage; + _roomStorage = roomStorage; _saveToExcel = saveToExcel; _saveToWord = saveToWord; _saveToPdf = saveToPdf; @@ -106,17 +109,20 @@ namespace HotelBusinessLogic.BusinessLogics OrganiserId = model.OrganiserId, }); + var rooms = _roomStorage.GetFullList(); + foreach (var mealPlan in listMealPlans) { foreach (var mp in mealPlan.MealPlanMembers.Values) { + var room = rooms.FirstOrDefault(r => r.MealPlanId == mealPlan.Id); listAll.Add(new ReportMembersViewModel { MemberSurname = mp.MemberSurname, MemberName = mp.MemberName, MemberPatronymic = mp.MemberPatronymic, - MealPlanName = mealPlan.MealPlanName, - MealPlanPrice = mealPlan.MealPlanPrice + RoomName = room.RoomName, + RoomPrice = room.RoomPrice }); } } diff --git a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfOrganiser.cs b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfOrganiser.cs index 8e861f6..905e02b 100644 --- a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfOrganiser.cs +++ b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfOrganiser.cs @@ -41,14 +41,14 @@ namespace HotelBusinessLogic.OfficePackage } bool IsCost = true; - if (member.MealPlanPrice.ToString() == "0") + if (member.RoomPrice.ToString() == "0") { IsCost = false; } CreateRow(new PdfRowParameters { - Texts = new List { $"{member.MemberSurname} {member.MemberName} {member.MemberPatronymic}", member.ConferenceName, IsDate is true ? member.StartDate.ToShortDateString() : string.Empty, member.MealPlanName, IsCost is true ? member.MealPlanPrice.ToString() : string.Empty }, + Texts = new List { $"{member.MemberSurname} {member.MemberName} {member.MemberPatronymic}", member.ConferenceName, IsDate is true ? member.StartDate.ToShortDateString() : string.Empty, member.RoomName, IsCost is true ? member.RoomPrice.ToString() : string.Empty }, Style = "Normal", ParagraphAlignment = PdfParagraphAlignmentType.Left }); @@ -56,7 +56,7 @@ namespace HotelBusinessLogic.OfficePackage CreateParagraph(new PdfParagraph { - Text = $"Итого: {info.Members.Sum(x => x.MealPlanPrice)}\t", + Text = $"Итого: {info.Members.Sum(x => x.RoomPrice)}\t", Style = "Normal", ParagraphAlignment = PdfParagraphAlignmentType.Rigth }); diff --git a/Hotel/HotelContracts/ViewModels/ReportMembersViewModel.cs b/Hotel/HotelContracts/ViewModels/ReportMembersViewModel.cs index 5354614..2e88dad 100644 --- a/Hotel/HotelContracts/ViewModels/ReportMembersViewModel.cs +++ b/Hotel/HotelContracts/ViewModels/ReportMembersViewModel.cs @@ -8,7 +8,7 @@ public string MemberName { get; set; } = string.Empty; public string MemberPatronymic { get; set; } = string.Empty; public string ConferenceName { get; set; } = string.Empty; - public string MealPlanName { get; set; } = string.Empty; - public double MealPlanPrice { get; set; } + public string RoomName { get; set; } = string.Empty; + public double RoomPrice { get; set; } } } diff --git a/Hotel/HotelOrganiserApp/Controllers/HomeController.cs b/Hotel/HotelOrganiserApp/Controllers/HomeController.cs index 8698864..162a3fa 100644 --- a/Hotel/HotelOrganiserApp/Controllers/HomeController.cs +++ b/Hotel/HotelOrganiserApp/Controllers/HomeController.cs @@ -680,22 +680,16 @@ namespace HotelOrganiserApp.Controllers double sum = 0; string table = ""; - table += $"

Предварительный отчет

"; - table += $""; - table += ""; - table += ""; - table += ""; - table += ""; - table += ""; - table += ""; - table += ""; - table += ""; - table += ""; - table += $""; - table += $""; - table += $""; - table += $""; - table += $""; + table += "

Предварительный отчет

"; + table += "
"; + table += "
УчастникКонференцияДата начала конференцииПлан питанияСтоимость плана питания
"; + table += ""; + table += ""; + table += ""; + table += ""; + table += ""; + table += ""; + table += ""; table += ""; table += ""; foreach (var report in result) @@ -706,24 +700,26 @@ namespace HotelOrganiserApp.Controllers IsDate = false; } bool IsCost = true; - if (report.MealPlanPrice.ToString() == "0") + if (report.RoomPrice.ToString() == "0") { IsCost = false; } - table += ""; - table += ""; - table += $""; - table += $""; - table += $""; - table += $""; - table += $""; + table += ""; + table += ""; + table += $""; + table += $""; + table += $""; + table += $""; + table += $""; table += ""; table += ""; - sum += report.MealPlanPrice; + sum += report.RoomPrice; } + table += ""; + table += $""; + table += ""; table += "
УчастникКонференцияДата начала конференцииНомерСтоимость номера
" + - $"{report.MemberSurname} {report.MemberName} {report.MemberPatronymic}{report.ConferenceName}{(IsDate is true ? report.StartDate.ToShortDateString() : string.Empty)}{report.MealPlanName}{(IsCost is true ? report.MealPlanPrice.ToString() : string.Empty)}
{report.MemberSurname} {report.MemberName} {report.MemberPatronymic}{report.ConferenceName}{(IsDate is true ? report.StartDate.ToShortDateString() : string.Empty)}{report.RoomName}{(IsCost is true ? report.RoomPrice.ToString() : string.Empty)}
Итого:{sum}
"; - table += $"

Итого: {sum}

"; + table += ""; return table; } diff --git a/Hotel/HotelOrganiserApp/Program.cs b/Hotel/HotelOrganiserApp/Program.cs index 0995107..d13b80d 100644 --- a/Hotel/HotelOrganiserApp/Program.cs +++ b/Hotel/HotelOrganiserApp/Program.cs @@ -12,6 +12,7 @@ builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); +builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); diff --git a/Hotel/HotelOrganiserApp/Views/Home/ListMembersToPdfFile.cshtml b/Hotel/HotelOrganiserApp/Views/Home/ListMembersToPdfFile.cshtml new file mode 100644 index 0000000..b6331a8 --- /dev/null +++ b/Hotel/HotelOrganiserApp/Views/Home/ListMembersToPdfFile.cshtml @@ -0,0 +1,60 @@ +@using HotelContracts.ViewModels + +@{ + ViewData["Title"] = "ListMembersToPdfFile"; +} + +
+
+

Отчет по участникам за период

+
+ +
+
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+
+
+ +
+
+ +
+
+
+ +@section Scripts { + +} \ No newline at end of file