Refactor checkout status logic in LeaveController for improved clarity and handling of check-in dates

This commit is contained in:
Suphonchai Phoonsawat 2026-03-27 09:48:10 +07:00
parent 3e3bfff7ba
commit bba6573ea8

View file

@ -1411,6 +1411,13 @@ namespace BMA.EHR.Leave.Service.Controllers
{ {
var leaveRange = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper(); var leaveRange = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper();
if (leaveRange == "AFTERNOON" || leaveRange == "ALL") if (leaveRange == "AFTERNOON" || leaveRange == "ALL")
{
if (checkout.CheckIn.Date < currentDate.Date)
{
// ถ้า check-out เป็นวันถัดไป สถานะปกติเสมอ
checkOutStatus = "NORMAL";
}
else
{ {
if(DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) < if(DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) <
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeMorning}")) DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeMorning}"))
@ -1418,6 +1425,8 @@ namespace BMA.EHR.Leave.Service.Controllers
else else
checkOutStatus = "NORMAL"; checkOutStatus = "NORMAL";
} }
}
else else
{ {
// fix issue : SIT ระบบบันทึกเวลาปฏิบัติงาน>>ลงเวลาเข้า-ออกงาน (กรณีลงเวลาออกอีกวัน) #921 // fix issue : SIT ระบบบันทึกเวลาปฏิบัติงาน>>ลงเวลาเข้า-ออกงาน (กรณีลงเวลาออกอีกวัน) #921