From b05e7cc3abfa5426af57dca21d82d6300bec9179 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Fri, 3 Jul 2026 10:53:27 +0700 Subject: [PATCH] #2585 , #2588 --- .../LeaveRequests/LeaveRequestRepository.cs | 6 ++++-- .../Controllers/LeaveRequestController.cs | 19 ++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs index 898139f5..54a80a41 100644 --- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs @@ -1437,7 +1437,6 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests { processCheckIn.CheckInStatus = "LATE"; } - processCheckIn.CheckInStatus = "NORMAL"; break; case "AFTERNOON": if (processCheckIn.CheckOut is not null) @@ -1454,7 +1453,10 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests break; case "ALL": processCheckIn.CheckInStatus = "NORMAL"; - processCheckIn.CheckOutStatus = "NORMAL"; + if (processCheckIn.CheckOut is not null) + { + processCheckIn.CheckOutStatus = "NORMAL"; + } break; default: break; diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index 9b1140cd..8cfd6a34 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -1111,9 +1111,22 @@ namespace BMA.EHR.Leave.Service.Controllers x.KeycloakUserId == userId) .ToListAsync(); - isBetween = existingLeaves.Any(leave => - req.StartLeaveDate.Date <= leave.LeaveEndDate.Date && - req.EndLeaveDate.Date >= leave.LeaveStartDate.Date); + if (req.StartLeaveDate.Date == req.EndLeaveDate.Date) + { + isBetween = existingLeaves.Any(leave => + req.StartLeaveDate.Date == leave.LeaveEndDate.Date && + req.EndLeaveDate.Date == leave.LeaveStartDate.Date && + req.LeaveRange == leave.LeaveRange); + } + else + { + isBetween = existingLeaves.Any(leave => + req.StartLeaveDate.Date <= leave.LeaveEndDate.Date && + req.EndLeaveDate.Date >= leave.LeaveStartDate.Date); + } + + + // var minLeave = (await _context.Set().Where(x => x.Type.Id == req.Type && // (x.LeaveStatus == "PENDING" || x.LeaveStatus == "APPROVE") &&