refactor LeaveController to update check-out status logic based on morning end time #2187
All checks were successful
Build & Deploy Leave Service / build (push) Successful in 1m12s

This commit is contained in:
Suphonchai Phoonsawat 2026-01-16 16:19:49 +07:00
parent 510f1cd78a
commit b0715e3da6

View file

@ -989,13 +989,21 @@ namespace BMA.EHR.Leave.Service.Controllers
else
endTime = duty.EndTimeAfternoon;
var endTimeMorning = duty.EndTimeMorning;
string checkOutStatus = "NORMAL";
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(userId, currentDate.Date);
if (leaveReq != null)
{
var leaveRange = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper();
if (leaveRange == "AFTERNOON" || leaveRange == "ALL")
checkOutStatus = "NORMAL";
{
if(DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) <
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeMorning}"))
checkOutStatus = "ABSENT";
else
checkOutStatus = "NORMAL";
}
else
{
// fix issue : SIT ระบบบันทึกเวลาปฏิบัติงาน>>ลงเวลาเข้า-ออกงาน (กรณีลงเวลาออกอีกวัน) #921
@ -2438,6 +2446,9 @@ namespace BMA.EHR.Leave.Service.Controllers
var endTime = isSeminar.Trim().ToUpper() == "Y"
? DateTime.Parse($"{DateTime.Now.Date.ToString("yyyy-MM-dd")} 14:30")
: DateTime.Parse($"{DateTime.Now.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}");
var endTimeMorning = DateTime.Parse($"{DateTime.Now.Date.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}");
var status = string.Empty;
if(lastCheckIn == null)
{
@ -2458,7 +2469,16 @@ namespace BMA.EHR.Leave.Service.Controllers
{
var leaveRange = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper();
if (leaveRange == "AFTERNOON" || leaveRange == "ALL")
status = "NORMAL";
{
if(time < endTimeMorning)
{
status = "ABSENT";
}
else
{
status = "NORMAL";
}
}
else
{
status = "ABSENT";