Compare commits
2 commits
4e4eec3d84
...
9bd6017ded
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9bd6017ded | ||
|
|
e1c7688913 |
1 changed files with 40 additions and 4 deletions
|
|
@ -1015,13 +1015,18 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
};
|
};
|
||||||
|
|
||||||
var startTime = "";
|
var startTime = "";
|
||||||
|
var endTime = "";
|
||||||
if (!data.IsLocation && data.LocationName == "ไปประชุม / อบรม / สัมมนา")
|
if (!data.IsLocation && data.LocationName == "ไปประชุม / อบรม / สัมมนา")
|
||||||
{
|
{
|
||||||
//startTime = "09:30";
|
//startTime = "09:30";
|
||||||
startTime = "10:30";
|
startTime = "10:30";
|
||||||
|
endTime = "12:00";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
startTime = duty.StartTimeMorning;
|
startTime = duty.StartTimeMorning;
|
||||||
|
endTime = duty.EndTimeMorning;
|
||||||
|
}
|
||||||
|
|
||||||
string checkInStatus = "NORMAL";
|
string checkInStatus = "NORMAL";
|
||||||
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(userId, currentDate.Date);
|
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(userId, currentDate.Date);
|
||||||
|
|
@ -1126,15 +1131,22 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
var endTime = "";
|
var endTime = "";
|
||||||
|
var startTime = "";
|
||||||
|
var endTimeMorning = "";
|
||||||
if (!data.IsLocation && data.LocationName == "ไปประชุม / อบรม / สัมมนา")
|
if (!data.IsLocation && data.LocationName == "ไปประชุม / อบรม / สัมมนา")
|
||||||
{
|
{
|
||||||
//startTime = "09:30";
|
startTime = "13:00";
|
||||||
endTime = "14:30";
|
endTime = "14:30";
|
||||||
|
endTimeMorning = "12:00";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
endTime = duty.EndTimeAfternoon;
|
endTime = duty.EndTimeAfternoon;
|
||||||
|
startTime = duty.StartTimeAfternoon;
|
||||||
|
endTimeMorning = duty.EndTimeMorning;
|
||||||
|
}
|
||||||
|
|
||||||
var endTimeMorning = duty.EndTimeMorning;
|
|
||||||
|
|
||||||
string checkOutStatus = "NORMAL";
|
string checkOutStatus = "NORMAL";
|
||||||
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(userId, currentDate.Date);
|
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(userId, currentDate.Date);
|
||||||
|
|
@ -1161,7 +1173,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
"NORMAL" :
|
"NORMAL" :
|
||||||
"ABSENT" :
|
"ABSENT" :
|
||||||
DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) <
|
DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) <
|
||||||
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ?
|
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeMorning}") ?
|
||||||
"ABSENT" :
|
"ABSENT" :
|
||||||
"NORMAL";
|
"NORMAL";
|
||||||
}
|
}
|
||||||
|
|
@ -1178,7 +1190,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
"NORMAL" :
|
"NORMAL" :
|
||||||
"ABSENT" :
|
"ABSENT" :
|
||||||
DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) <
|
DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) <
|
||||||
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ?
|
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeMorning}") ?
|
||||||
"ABSENT" :
|
"ABSENT" :
|
||||||
"NORMAL";
|
"NORMAL";
|
||||||
}
|
}
|
||||||
|
|
@ -3622,6 +3634,30 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
var data = await _processUserTimeStampRepository.GetByIdAsync(id);
|
var data = await _processUserTimeStampRepository.GetByIdAsync(id);
|
||||||
if (data == null)
|
if (data == null)
|
||||||
return Error(GlobalMessages.DataNotFound);
|
return Error(GlobalMessages.DataNotFound);
|
||||||
|
|
||||||
|
if (data.CheckInStatus == "NORMAL" || data.CheckOutStatus == "NORMAL")
|
||||||
|
{
|
||||||
|
var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(id, 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);
|
||||||
|
|
||||||
|
var duty = userRound ?? defaultRound;
|
||||||
|
if (req.CheckInStatus == "NORMAL")
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
data.CheckOut = DateTime.Parse($"{checkOutTime.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data.CheckInStatus = req.CheckInStatus;
|
data.CheckInStatus = req.CheckInStatus;
|
||||||
data.CheckOutStatus = req.CheckOutStatus;
|
data.CheckOutStatus = req.CheckOutStatus;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue