From 7ba429bb64ca711ef27c4e148ab23452bdc457da Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Fri, 27 Mar 2026 09:48:10 +0700 Subject: [PATCH] Refactor checkout status logic in LeaveController for improved clarity and handling of check-in dates --- BMA.EHR.Leave/Controllers/LeaveController.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs index 0adb3a3a..2f033adc 100644 --- a/BMA.EHR.Leave/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveController.cs @@ -1412,11 +1412,20 @@ namespace BMA.EHR.Leave.Service.Controllers var leaveRange = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper(); if (leaveRange == "AFTERNOON" || leaveRange == "ALL") { - if(DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) < - DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeMorning}")) - checkOutStatus = "ABSENT"; - else + if (checkout.CheckIn.Date < currentDate.Date) + { + // ถ้า check-out เป็นวันถัดไป สถานะปกติเสมอ checkOutStatus = "NORMAL"; + } + else + { + if(DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) < + DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeMorning}")) + checkOutStatus = "ABSENT"; + else + checkOutStatus = "NORMAL"; + } + } else {