This commit is contained in:
Naz 2025-04-22 09:12:22 +08:00
parent 8a39714a25
commit 90e56547ba

View File

@ -78,30 +78,35 @@ namespace PSTW_CentralSystem.Areas.OTcalculate.Services
columns.RelativeColumn(2.7f); // Description
});
// Header Row
table.Header(header =>
{
void AddHeaderCell(string text, string bgColor)
{
header.Cell().Background(bgColor).Border(0.25f).Padding(5).Text(text).FontSize(9).Bold().AlignCenter();
}
// Row 1 — grouped headers
header.Cell().RowSpan(2).Background("#d0ead2").Border(0.25f).Padding(5).Text("Date").FontSize(9).Bold().AlignCenter();
header.Cell().ColumnSpan(3).Background("#dceefb").Border(0.25f).Padding(5).Text("Office Hours\n(8:30 - 17:30)").FontSize(9).Bold().AlignCenter();
header.Cell().ColumnSpan(3).Background("#edf2f7").Border(0.25f).Padding(5).Text("After Office Hours\n(17:30 - 8:30)").FontSize(9).Bold().AlignCenter();
header.Cell().RowSpan(2).Background("#fdebd0").Border(0.25f).Padding(5).Text("Total OT\nHours").FontSize(9).Bold().AlignCenter();
header.Cell().RowSpan(2).Background("#fdebd0").Border(0.25f).Padding(5).Text("Break Hours\n(min)").FontSize(9).Bold().AlignCenter();
header.Cell().RowSpan(2).Background("#fdebd0").Border(0.25f).Padding(5).Text("Net OT Hours").FontSize(9).Bold().AlignCenter();
AddHeaderCell("Date", "#d0ead2");
AddHeaderCell("From\n(Office)", "#dceefb");
AddHeaderCell("To\n(Office)", "#dceefb");
AddHeaderCell("Break\n(Office)", "#dceefb");
AddHeaderCell("From\n(After)", "#edf2f7");
AddHeaderCell("To\n(After)", "#edf2f7");
AddHeaderCell("Break\n(After)", "#edf2f7");
AddHeaderCell("Total OT\nHours", "#fdebd0");
AddHeaderCell("Break Hours\n(min)", "#fdebd0");
AddHeaderCell("Net OT Hours", "#fdebd0");
if (departmentId == 2)
AddHeaderCell("Station", "#d0f0ef");
AddHeaderCell("Days", "#e0f7da");
AddHeaderCell("Description", "#e3f2fd");
header.Cell().RowSpan(2).Background("#d0f0ef").Border(0.25f).Padding(5).Text("Station").FontSize(9).Bold().AlignCenter();
header.Cell().RowSpan(2).Background("#e0f7da").Border(0.25f).Padding(5).Text("Days").FontSize(9).Bold().AlignCenter();
header.Cell().RowSpan(2).Background("#e3f2fd").Border(0.25f).Padding(5).Text("Description").FontSize(9).Bold().AlignCenter();
// Row 2 — subheaders only for grouped columns
header.Cell().Background("#dceefb").Border(0.25f).Padding(5).Text("From").FontSize(9).Bold().AlignCenter();
header.Cell().Background("#dceefb").Border(0.25f).Padding(5).Text("To").FontSize(9).Bold().AlignCenter();
header.Cell().Background("#dceefb").Border(0.25f).Padding(5).Text("Break").FontSize(9).Bold().AlignCenter();
header.Cell().Background("#edf2f7").Border(0.25f).Padding(5).Text("From").FontSize(9).Bold().AlignCenter();
header.Cell().Background("#edf2f7").Border(0.25f).Padding(5).Text("To").FontSize(9).Bold().AlignCenter();
header.Cell().Background("#edf2f7").Border(0.25f).Padding(5).Text("Break").FontSize(9).Bold().AlignCenter();
});
// Data Rows
double totalOTSum = 0;
int totalBreakSum = 0;