Update LeaveController to adjust check-in/check-out times based on location for meetings
This commit is contained in:
parent
ecf5ada7ed
commit
cfb2a8e55b
1 changed files with 21 additions and 3 deletions
|
|
@ -3637,7 +3637,8 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
|
|
||||||
if (data.CheckInStatus == "NORMAL" || data.CheckOutStatus == "NORMAL")
|
if (data.CheckInStatus == "NORMAL" || data.CheckOutStatus == "NORMAL")
|
||||||
{
|
{
|
||||||
var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(id, AccessToken);
|
var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId);
|
||||||
|
var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken);
|
||||||
var defaultRound = await _dutyTimeRepository.GetDefaultAsync();
|
var defaultRound = await _dutyTimeRepository.GetDefaultAsync();
|
||||||
if (defaultRound == null)
|
if (defaultRound == null)
|
||||||
{
|
{
|
||||||
|
|
@ -3650,13 +3651,30 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
var duty = userRound ?? defaultRound;
|
var duty = userRound ?? defaultRound;
|
||||||
if (req.CheckInStatus == "NORMAL")
|
if (req.CheckInStatus == "NORMAL")
|
||||||
{
|
{
|
||||||
data.CheckIn = DateTime.Parse($"{data.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}");
|
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}");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (req.CheckOutStatus == "NORMAL" )
|
if (req.CheckOutStatus == "NORMAL" )
|
||||||
{
|
{
|
||||||
var checkOutTime = data.CheckOut != null ? data.CheckOut.Value : data.CheckIn;
|
var checkOutTime = data.CheckOut != null ? data.CheckOut.Value : data.CheckIn;
|
||||||
var oldCheckOutTime = data.CheckOut != null ? data.CheckOut.Value : DateTime.Now;
|
var oldCheckOutTime = data.CheckOut != null ? data.CheckOut.Value : DateTime.Now;
|
||||||
var roundCheckOutTime = DateTime.Parse($"{checkOutTime.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}");
|
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)
|
if (oldCheckOutTime < roundCheckOutTime)
|
||||||
{
|
{
|
||||||
data.CheckOut = roundCheckOutTime;
|
data.CheckOut = roundCheckOutTime;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue