From 28544df284bd2d39e3f57ba2e9d926b379a547d8 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Mon, 28 Apr 2025 09:45:48 +0700 Subject: [PATCH] fix #1382 --- .../MetaData/HolidayRepository.cs | 10 +++++ .../Controllers/LeaveReportController.cs | 37 ++++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/BMA.EHR.Application/Repositories/MetaData/HolidayRepository.cs b/BMA.EHR.Application/Repositories/MetaData/HolidayRepository.cs index 751b0473..c5c09a44 100644 --- a/BMA.EHR.Application/Repositories/MetaData/HolidayRepository.cs +++ b/BMA.EHR.Application/Repositories/MetaData/HolidayRepository.cs @@ -26,6 +26,16 @@ namespace BMA.EHR.Application.Repositories.MetaData #region " Methods " + public async Task GetHolidayAsync(DateTime date, string category = "NORMAL") + { + var data = await _dbContext.Set().AsQueryable() + .Where(x => x.Category == category) + .Where(x => x.HolidayDate.Date == date.Date) + .Select(x => x.Name) + .FirstOrDefaultAsync(); + return data ?? string.Empty; + } + public async Task> GetHolidayAsync(DateTime startDate, DateTime endDate, string category = "NORMAL") { var data = await _dbContext.Set().AsQueryable() diff --git a/BMA.EHR.Leave/Controllers/LeaveReportController.cs b/BMA.EHR.Leave/Controllers/LeaveReportController.cs index 29a51113..7292a68a 100644 --- a/BMA.EHR.Leave/Controllers/LeaveReportController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveReportController.cs @@ -18,6 +18,7 @@ using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Ocsp; using Sentry; using Swashbuckle.AspNetCore.Annotations; +using System.Diagnostics.Eventing.Reader; using System.Globalization; using System.Security.Claims; @@ -82,6 +83,11 @@ namespace BMA.EHR.Leave.Service.Controllers public DateTime date { get; set; } public bool isHoliday { get; set; } + + public bool isWeekEnd { get; set; } + + public string dateRemark { get; set; } + } private class DateResultReport { @@ -1251,12 +1257,33 @@ namespace BMA.EHR.Leave.Service.Controllers var dateList = new List(); for (DateTime i = req.StartDate.Date; i <= req.EndDate.Date; i = i.AddDays(1)) { - if (excludeDates.Contains(i)) + //if (excludeDates.Contains(i)) + //{ + // dateList.Add(new LoopDate + // { + // date = i, + // isHoliday = true, + // }); + //} + if (holidays.Contains(i)) + { + var d = await _holidayRepository.GetHolidayAsync(i); + dateList.Add(new LoopDate + { + date = i, + isHoliday = true, + isWeekEnd = false, + dateRemark = d + }); + } + else if (weekend.Contains(i)) { dateList.Add(new LoopDate { date = i, isHoliday = true, + isWeekEnd = false, + dateRemark = "วันหยุด" }); } else @@ -1265,6 +1292,8 @@ namespace BMA.EHR.Leave.Service.Controllers { date = i, isHoliday = false, + isWeekEnd = false, + dateRemark = "" }); } } @@ -1340,7 +1369,11 @@ namespace BMA.EHR.Leave.Service.Controllers remarkStr = "ขาดราชการ"; if (dd.isHoliday == true) { - remarkStr = "วันหยุด"; + remarkStr = $"วันหยุด ({dd.dateRemark})"; + } + else if (dd.isWeekEnd) + { + remarkStr = dd.dateRemark; } } else remarkStr = "";