แก้รายงานลางงาน

This commit is contained in:
kittapath 2025-03-07 22:42:58 +07:00
parent e028dc5cf5
commit b96f49bd54
2 changed files with 56 additions and 14 deletions

View file

@ -408,6 +408,22 @@ namespace BMA.EHR.Domain.Extensions
public int days { get; set; } public int days { get; set; }
} }
// แปลงจาก DayOfWeek เป็นภาษาไทย
public static string GetThaiDayOfWeek(this DateTime date)
{
return date.DayOfWeek switch
{
DayOfWeek.Sunday => "อาทิตย์",
DayOfWeek.Monday => "จันทร์",
DayOfWeek.Tuesday => "อังคาร",
DayOfWeek.Wednesday => "พุธ",
DayOfWeek.Thursday => "พฤหัสบดี",
DayOfWeek.Friday => "ศุกร์",
DayOfWeek.Saturday => "เสาร์",
_ => "ไม่ทราบ"
};
}
#endregion #endregion
#endregion #endregion

View file

@ -71,6 +71,12 @@ namespace BMA.EHR.Leave.Service.Controllers
_httpContextAccessor = httpContextAccessor; _httpContextAccessor = httpContextAccessor;
_permission = permission; _permission = permission;
} }
private class LoopDate
{
public DateTime date { get; set; }
public bool isHoliday { get; set; }
}
#endregion #endregion
@ -1150,12 +1156,25 @@ namespace BMA.EHR.Leave.Service.Controllers
var weekend = _holidayRepository.GetWeekEnd(req.StartDate.Date, req.EndDate.Date); var weekend = _holidayRepository.GetWeekEnd(req.StartDate.Date, req.EndDate.Date);
var excludeDates = holidays.Union(weekend).ToList(); var excludeDates = holidays.Union(weekend).ToList();
var dateList = new List<DateTime>(); var dateList = new List<LoopDate>();
for (DateTime i = req.StartDate.Date; i <= req.EndDate.Date; i = i.AddDays(1)) for (DateTime i = req.StartDate.Date; i <= req.EndDate.Date; i = i.AddDays(1))
{ {
// if (!excludeDates.Contains(i)) if (!excludeDates.Contains(i))
dateList.Add(i); {
dateList.Add(new LoopDate
{
date = i,
isHoliday = true,
});
}
else
{
dateList.Add(new LoopDate
{
date = i,
isHoliday = true,
});
}
} }
var employees = new List<dynamic>(); var employees = new List<dynamic>();
@ -1174,7 +1193,7 @@ namespace BMA.EHR.Leave.Service.Controllers
{ {
var keycloakUserId = p.Keycloak ?? Guid.Empty; var keycloakUserId = p.Keycloak ?? Guid.Empty;
var timeStamps = await _processUserTimeStampRepository.GetTimestampByDateAsync(keycloakUserId, dd); var timeStamps = await _processUserTimeStampRepository.GetTimestampByDateAsync(keycloakUserId, dd.date);
var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}"; // _userProfileRepository.GetUserFullName(keycloakUserId, AccessToken); var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}"; // _userProfileRepository.GetUserFullName(keycloakUserId, AccessToken);
@ -1191,7 +1210,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var duty = userRound ?? defaultRound; var duty = userRound ?? defaultRound;
// check วันลาของแต่ละคน // check วันลาของแต่ละคน
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(keycloakUserId, dd); var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(keycloakUserId, dd.date);
var remarkStr = string.Empty; var remarkStr = string.Empty;
if (leaveReq != null) if (leaveReq != null)
@ -1217,8 +1236,14 @@ namespace BMA.EHR.Leave.Service.Controllers
{ {
if (timeStamps == null) if (timeStamps == null)
{ {
if (dd <= DateTime.Now.Date) if (dd.date <= DateTime.Now.Date)
{
remarkStr = "ขาดราชการ"; remarkStr = "ขาดราชการ";
if (dd.isHoliday == true)
{
remarkStr = "วันหยุด";
}
}
else remarkStr = ""; else remarkStr = "";
} }
else else
@ -1266,10 +1291,11 @@ namespace BMA.EHR.Leave.Service.Controllers
$"{timeStamps.CheckOut.Value.ToString("HH:mm")} น." : $"{timeStamps.CheckOut.Value.ToString("HH:mm")} น." :
"", "",
remark = remarkStr, remark = remarkStr,
checkInDate = timeStamps == null ? dd.Date.ToThaiFullDate2().ToThaiNumber() : timeStamps.CheckIn.Date.ToThaiFullDate2().ToThaiNumber(), date = timeStamps == null ? dd.date.Date : timeStamps.CheckIn.Date,
checkedOutDate = timeStamps == null ? dd.Date.ToThaiFullDate2().ToThaiNumber() : checkInDate = timeStamps == null ? dd.date.Date.ToThaiFullDate2() : timeStamps.CheckIn.Date.ToThaiFullDate2(),
checkedOutDate = timeStamps == null ? dd.date.Date.ToThaiFullDate2() :
timeStamps.CheckOut != null ? timeStamps.CheckOut != null ?
timeStamps.CheckOut.Value.ToThaiFullDate2().ToThaiNumber() : timeStamps.CheckOut.Value.ToThaiFullDate2() :
"", "",
}; };
@ -1307,10 +1333,10 @@ namespace BMA.EHR.Leave.Service.Controllers
} }
} }
var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate().ToThaiNumber()}"; var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate()}";
var item = new var item = new
{ {
dateTimeStamp = $"ณ วันที่ {req.StartDate.Date.ToThaiShortDate().ToThaiNumber()}{enddate}", dateTimeStamp = $"ณ วัน{req.StartDate.Date.GetThaiDayOfWeek()} ที่ {req.StartDate.Date.ToThaiShortDate()}{enddate}",
organizationName = profile?.FirstOrDefault()?.Oc ?? "", organizationName = profile?.FirstOrDefault()?.Oc ?? "",
officerTotal = profile.Count, officerTotal = profile.Count,
workTotal = workTotal, workTotal = workTotal,
@ -1320,9 +1346,9 @@ namespace BMA.EHR.Leave.Service.Controllers
wfhTotal = wfhTotal, wfhTotal = wfhTotal,
seminarTotal = seminarTotal, seminarTotal = seminarTotal,
studyTotal = studyTotal, studyTotal = studyTotal,
employees = employees employees = employees.OrderBy(x => x.date).ToList()
}; };
//วันที่ออก
var result = new var result = new
{ {
template = "TimeStamp", template = "TimeStamp",