diff --git a/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs b/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs
index ec8b5e8..60cab97 100644
--- a/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs
+++ b/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs
@@ -622,5 +622,33 @@ namespace HostrelHeadwaiterApp.Controllers
{
return new PhysicalFileResult("E:\\ReportsCourseWork\\excelfile.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}
+
+ [HttpGet]
+ public IActionResult ListDinnersToPdfFile()
+ {
+ if (APIClient.Headwaiter == null)
+ {
+ return Redirect("~/Home/Enter");
+ }
+
+ return View();
+ }
+
+ [HttpPost]
+ public void ListDinnersToPdfFile(string roomName)
+ {
+ if (APIClient.Headwaiter == null)
+ {
+ throw new Exception("Не авторизованы");
+ }
+
+ APIClient.PostRequest("api/Report/CreateHeadwaiterReportToPdfFile", new ReportHeadwaiterBindingModel()
+ {
+ RoomName = roomName,
+ HeadwaiterId = APIClient.Headwaiter.Id
+ });
+
+ Response.Redirect("ListDinnersToPdfFile");
+ }
}
}
\ No newline at end of file
diff --git a/Hotel/HostrelHeadwaiterApp/Views/Home/ListDinnersToPdfFile.cshtml b/Hotel/HostrelHeadwaiterApp/Views/Home/ListDinnersToPdfFile.cshtml
new file mode 100644
index 0000000..f163046
--- /dev/null
+++ b/Hotel/HostrelHeadwaiterApp/Views/Home/ListDinnersToPdfFile.cshtml
@@ -0,0 +1,27 @@
+@{
+ ViewData["Title"] = "ListDinnersToPdf";
+}
+
+
+
+
+ Создание отчета по участникам за период
+
+
+
+
\ No newline at end of file
diff --git a/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml b/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml
index 24a9fdc..2eb2388 100644
--- a/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml
+++ b/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml
@@ -39,6 +39,8 @@
Отчет (word/excel)
+ Отчет (pdf)
+
diff --git a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs
index 77a459e..d03693a 100644
--- a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs
@@ -4,6 +4,8 @@ using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.StoragesContracts;
using HotelContracts.ViewModels;
+using HotelDataBaseImplement;
+using HotelDataBaseImplement.Models;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -78,24 +80,33 @@ namespace HotelBusinessLogic.BusinessLogics
foreach (var room in listСonferences)
{
- foreach (var c in room.RoomDinners)
+ foreach (var m in room.RoomDinners.Values)
{
listAll.Add(new ReportDinnersViewModel
{
RoomName = room.RoomName,
- DinnerName = c.Value.DinnerName
+ RoomPrice = room.RoomPrice,
+ DinnerName = m.DinnerName,
+ DinnerPrice = m.DinnerPrice
});
}
}
- var listConferenceBookings = _conferenceBookingStorage.GetFilteredList(new ConferenceBookingSearchModel());
+ var listConferenceBookings = _conferenceBookingStorage.GetFilteredList(new ConferenceBookingSearchModel
+ {
+ HeadwaiterId = model.HeadwaiterId,
+ });
foreach (var conferenceBooking in listConferenceBookings)
{
- listAll.Add(new ReportDinnersViewModel
+ foreach (var mp in conferenceBooking.ConferenceBookingDinners.Values)
{
- NameHall = conferenceBooking.NameHall
- });
-
+ listAll.Add(new ReportDinnersViewModel
+ {
+ DinnerName = mp.DinnerName,
+ DinnerPrice = mp.DinnerPrice,
+ NameHall = conferenceBooking.NameHall
+ });
+ }
}
return listAll;
diff --git a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfHeadwaiter.cs b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfHeadwaiter.cs
index b709298..1149240 100644
--- a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfHeadwaiter.cs
@@ -25,18 +25,18 @@ namespace HotelBusinessLogic.OfficePackage
Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Center
});
- CreateTable(new List { "2cm", "3cm", "6cm", "3cm", "3cm" });
+ CreateTable(new List { "3cm", "3cm", "3cm", "4cm", "4cm" });
CreateRow(new PdfRowParameters
{
- Texts = new List { "Название команты", "Корпус комнтаы", "Цена комнаты" },
+ Texts = new List { "Обед", "Комната", "Цена комнаты", "Бронирование" },
Style = "NormalTitle",
ParagraphAlignment = PdfParagraphAlignmentType.Center
});
- foreach (var conferenceBindingRooms in info.Dinners)
+ foreach (var dinner in info.Dinners)
{
CreateRow(new PdfRowParameters
{
- Texts = new List { conferenceBindingRooms.Id.ToString(), conferenceBindingRooms.RoomName, conferenceBindingRooms.RoomFrame, conferenceBindingRooms.RoomPrice.ToString() },
+ Texts = new List { dinner.DinnerName.ToString(), dinner.RoomName, dinner.RoomPrice.ToString(), dinner.NameHall },
Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Left
});
diff --git a/Hotel/HotelContracts/ViewModels/ReportDinnersViewModel.cs b/Hotel/HotelContracts/ViewModels/ReportDinnersViewModel.cs
index 5fff054..81cddb2 100644
--- a/Hotel/HotelContracts/ViewModels/ReportDinnersViewModel.cs
+++ b/Hotel/HotelContracts/ViewModels/ReportDinnersViewModel.cs
@@ -12,6 +12,7 @@ namespace HotelContracts.ViewModels
public string RoomName { get; set; } = string.Empty;
public string NameHall { get; set; } = string.Empty;
public string DinnerName { get; set; } = string.Empty;
+ public double DinnerPrice { get; set; }
public double RoomPrice { get; set; }
public string RoomFrame { get; set; } = string.Empty;
diff --git a/Hotel/HotelDataBaseImplement/HotelDataBase.cs b/Hotel/HotelDataBaseImplement/HotelDataBase.cs
index 5f56ccf..7141379 100644
--- a/Hotel/HotelDataBaseImplement/HotelDataBase.cs
+++ b/Hotel/HotelDataBaseImplement/HotelDataBase.cs
@@ -9,7 +9,7 @@ namespace HotelDataBaseImplement
{
if (optionsBuilder.IsConfigured == false)
{
- optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-V0ON61E\SQLEXPRESS;Initial Catalog=HotelDataBaseFu;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
+ optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-V0ON61E\SQLEXPRESS;Initial Catalog=HotelDataBaseFull;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
}
base.OnConfiguring(optionsBuilder);
}
diff --git a/Hotel/HotelRestApi/Controllers/ReportController.cs b/Hotel/HotelRestApi/Controllers/ReportController.cs
index e25ef12..0213bfa 100644
--- a/Hotel/HotelRestApi/Controllers/ReportController.cs
+++ b/Hotel/HotelRestApi/Controllers/ReportController.cs
@@ -94,5 +94,24 @@ namespace HotelRestApi.Controllers
throw;
}
}
+
+ [HttpPost]
+ public void CreateHeadwaiterReportToPdfFile(ReportHeadwaiterBindingModel model)
+ {
+ try
+ {
+ _reportHeadwaiterLogic.SaveDinnersToPdfFile(new ReportHeadwaiterBindingModel
+ {
+ FileName = "Отчет PDF.pdf",
+ RoomName = model.RoomName,
+ HeadwaiterId = model.HeadwaiterId,
+ });
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка создания отчета");
+ throw;
+ }
+ }
}
}
diff --git a/Hotel/HotelRestApi/Отчет PDF.pdf b/Hotel/HotelRestApi/Отчет PDF.pdf
index f75cc5a..f4460a0 100644
Binary files a/Hotel/HotelRestApi/Отчет PDF.pdf and b/Hotel/HotelRestApi/Отчет PDF.pdf differ