diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs index f2d8cc43..173f859d 100644 --- a/BMA.EHR.Leave/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveController.cs @@ -3308,8 +3308,6 @@ namespace BMA.EHR.Leave.Service.Controllers return Error("ไม่สามารถขอลงเวลากรณีพิเศษในวันที่มากกว่าวันที่ปัจจุบันได้", StatusCodes.Status400BadRequest); } - - var userId = UserId != null ? Guid.Parse(UserId) : Guid.Empty; var checkin = await _userTimeStampRepository.GetTimestampByDateAsync(userId, req.CheckDate.Date); @@ -3569,9 +3567,21 @@ namespace BMA.EHR.Leave.Service.Controllers var roundId = effectiveDate != null ? effectiveDate.DutyTimeId : Guid.Empty; var userRound = await _dutyTimeRepository.GetByIdAsync(roundId); var checkInData = await _userTimeStampRepository.GetTimestampByDateAsync(data.KeycloakUserId, data.CheckDate); + + var duty = userRound ?? getDefaultRound; + var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(data.KeycloakUserId, data.CheckDate.Date); + + var startTimeMorning = leaveReq is null ? duty.StartTimeMorning : + leaveReq.LeaveRange == "MORNING" ? duty.StartTimeAfternoon : duty.StartTimeMorning; + var endTimeMorning = leaveReq is null ? duty.EndTimeMorning : + leaveReq.LeaveRange == "MORNING" ? duty.StartTimeAfternoon : duty.EndTimeMorning; + + var startTimeAfterNoon = duty.StartTimeAfternoon; + var endTimeAfterNoon = duty.EndTimeAfternoon; + //var duty = getDefaultRound; // create result object to return @@ -3612,10 +3622,15 @@ namespace BMA.EHR.Leave.Service.Controllers "ABSENT" : "NORMAL", - StartTimeMorning = duty.StartTimeMorning, - EndTimeMorning = duty.EndTimeMorning, - StartTimeAfternoon = duty.StartTimeAfternoon, - EndTimeAfternoon = duty.EndTimeAfternoon, + // StartTimeMorning = duty.StartTimeMorning, + // EndTimeMorning = duty.EndTimeMorning, + // StartTimeAfternoon = duty.StartTimeAfternoon, + // EndTimeAfternoon = duty.EndTimeAfternoon, + + StartTimeMorning = startTimeMorning, + EndTimeMorning = endTimeMorning, + StartTimeAfternoon = startTimeAfterNoon, + EndTimeAfternoon = endTimeAfterNoon, Reason = data.Comment ?? "", Status = data.Status, @@ -4193,11 +4208,22 @@ namespace BMA.EHR.Leave.Service.Controllers DateTime? resultCheckInDate, resultCheckOutDate, resultCheckInDateAndTime, resultCheckOutDateAndTime; string resultCheckInTime, resultCheckOutTime; string resultCheckInLocation = "", resultCheckOutLocation = ""; + + var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(data.KeycloakUserId, data.CheckDate.Date); + + var startTimeMorning = leaveReq is null ? duty.StartTimeMorning : + leaveReq.LeaveRange == "MORNING" ? duty.StartTimeAfternoon : duty.StartTimeMorning; + var endTimeMorning = leaveReq is null ? duty.EndTimeMorning : + leaveReq.LeaveRange == "MORNING" ? duty.StartTimeAfternoon : duty.EndTimeMorning; + + var startTimeAfterNoon = duty.StartTimeAfternoon; + var endTimeAfterNoon = duty.EndTimeAfternoon; if (data.CheckInEdit) { resultCheckInDate = data.CheckDate.Date; - resultCheckInTime = duty.StartTimeMorning; + //resultCheckInTime = duty.StartTimeMorning; + resultCheckInTime = startTimeMorning; resultCheckInLocation = data.POI ?? ""; } else