diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs index 9de17c1f..4787de39 100644 --- a/BMA.EHR.Leave/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveController.cs @@ -3635,53 +3635,52 @@ namespace BMA.EHR.Leave.Service.Controllers if (data == null) return Error(GlobalMessages.DataNotFound); - if (data.CheckInStatus == "NORMAL" || data.CheckOutStatus == "NORMAL") +  //if (data.CheckInStatus == "NORMAL" || data.CheckOutStatus == "NORMAL") + + var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); + var defaultRound = await _dutyTimeRepository.GetDefaultAsync(); + if (defaultRound == null) { - var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); - var defaultRound = await _dutyTimeRepository.GetDefaultAsync(); - if (defaultRound == null) - { - return Error("ไม่พบรอบการลงเวลา Default", StatusCodes.Status404NotFound); - } - var effectiveDate = await _userDutyTimeRepository.GetLastEffectRound(profile!.Id); - var roundId = effectiveDate != null ? effectiveDate.DutyTimeId : Guid.Empty; - var userRound = await _dutyTimeRepository.GetByIdAsync(roundId); + return Error("ไม่พบรอบการลงเวลา Default", StatusCodes.Status404NotFound); + } + var effectiveDate = await _userDutyTimeRepository.GetLastEffectRound(profile!.Id); + var roundId = effectiveDate != null ? effectiveDate.DutyTimeId : Guid.Empty; + var userRound = await _dutyTimeRepository.GetByIdAsync(roundId); - var duty = userRound ?? defaultRound; - if (req.CheckInStatus == "NORMAL") + var duty = userRound ?? defaultRound; + if (req.CheckInStatus == "NORMAL") + { + if(data.CheckInLocationName == "ไปประชุม / อบรม / สัมมนา") { - if(data.CheckInLocationName == "ไปประชุม / อบรม / สัมมนา") - { - data.CheckIn = DateTime.Parse($"{data.CheckIn.Date.ToString("yyyy-MM-dd")} 10:30"); - } - else - { - data.CheckIn = DateTime.Parse($"{data.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}"); - } - + data.CheckIn = DateTime.Parse($"{data.CheckIn.Date.ToString("yyyy-MM-dd")} 10:30"); } - if (req.CheckOutStatus == "NORMAL" ) + else { - var checkOutTime = data.CheckOut != null ? data.CheckOut.Value : data.CheckIn; - var oldCheckOutTime = data.CheckOut != null ? data.CheckOut.Value : DateTime.Now; - var roundCheckOutTime = DateTime.Now; - if(data.CheckOutLocationName == "ไปประชุม / อบรม / สัมมนา") - { - roundCheckOutTime = DateTime.Parse($"{checkOutTime.Date.ToString("yyyy-MM-dd")} 14:30"); - } - else - { - roundCheckOutTime = DateTime.Parse($"{checkOutTime.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}"); - } - - if (oldCheckOutTime < roundCheckOutTime) - { - data.CheckOut = roundCheckOutTime; - } + data.CheckIn = DateTime.Parse($"{data.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}"); + } + + } + if (req.CheckOutStatus == "NORMAL" ) + { + var checkOutTime = data.CheckOut != null ? data.CheckOut.Value : data.CheckIn; + var oldCheckOutTime = data.CheckOut != null ? data.CheckOut.Value : DateTime.Now; + var roundCheckOutTime = DateTime.Now; + if(data.CheckOutLocationName == "ไปประชุม / อบรม / สัมมนา") + { + roundCheckOutTime = DateTime.Parse($"{checkOutTime.Date.ToString("yyyy-MM-dd")} 14:30"); + } + else + { + roundCheckOutTime = DateTime.Parse($"{checkOutTime.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}"); + } + + if (oldCheckOutTime < roundCheckOutTime) + { + data.CheckOut = roundCheckOutTime; } } - + data.CheckInStatus = req.CheckInStatus; data.CheckOutStatus = req.CheckOutStatus; data.EditReason = req.Reason;