แก้ Defect + EditReson and EditStatus

This commit is contained in:
Suphonchai Phoonsawat 2023-11-24 16:52:48 +07:00
parent 0096e6dd5b
commit 826431ab48
7 changed files with 641 additions and 7 deletions

View file

@ -520,7 +520,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var checkin_base = DateTime.Parse($"{DateTime.Now.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}");
var checkout_base = DateTime.Parse($"{DateTime.Now.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}");
var data = (await _userTimeStampRepository.GetTimeStampHistoryAsync(userId, year))
var data = (await _processUserTimeStampRepository.GetTimeStampHistoryAsync(userId, year))
.Select(d => new CheckInHistoryDto
{
CheckInId = d.Id,
@ -540,6 +540,9 @@ namespace BMA.EHR.Leave.Service.Controllers
"LATE" :
"NORMAL",
EditReason = d.EditReason ?? "",
EditStatus = d.EditStatus ?? ""
})
.ToList();
@ -590,14 +593,14 @@ namespace BMA.EHR.Leave.Service.Controllers
CheckInLocation = d.CheckInPOI,
CheckInLat = d.CheckInLat,
CheckInLon = d.CheckInLon,
//CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}",
CheckInImage = $"{imgUrl}/{d.CheckInImageUrl}",
CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date,
CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm:ss"),
CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI,
CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat,
CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon,
//CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}",
CheckOutImage = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}",
})
.ToList();
@ -846,9 +849,10 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> CreateChangeRoundAsync([FromBody] CreateChangeRoundDto req)
{
if (req.EffectiveDate.Date < DateTime.Now.Date)
var currentDate = DateTime.Now.Date;
if (req.EffectiveDate.Date < currentDate)
{
return Error(new Exception("วันที่มีผลต้องมากกว่าหรือเท่ากับวันที่ปัจจุบัน"), StatusCodes.Status400BadRequest);
return Error(new Exception($"วันที่มีผลต้องมากกว่าหรือเท่ากับวันที่ปัจจุบัน({currentDate.ToString("yyyy-MM-dd")})"), StatusCodes.Status400BadRequest);
}
var old = await _userDutyTimeRepository.GetExist(req.ProfileId, req.EffectiveDate);
@ -1088,6 +1092,9 @@ namespace BMA.EHR.Leave.Service.Controllers
};
processTimeStamp.EditStatus = "APPROVE";
processTimeStamp.EditReason = req.Reason;
await _processUserTimeStampRepository.AddAsync(processTimeStamp);
}
else
@ -1110,6 +1117,10 @@ namespace BMA.EHR.Leave.Service.Controllers
processTimeStamp.CheckOutPOI = "ลงเวลากรณีพิเศษ";
}
processTimeStamp.EditStatus = "APPROVE";
processTimeStamp.EditReason = req.Reason;
await _processUserTimeStampRepository.UpdateAsync(processTimeStamp);
}
@ -1138,6 +1149,17 @@ namespace BMA.EHR.Leave.Service.Controllers
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
// change user timestamp
var processTimeStamp = await _processUserTimeStampRepository.GetTimestampByDateAsync(requestData.KeycloakUserId, requestData.CheckDate.Date);
if (processTimeStamp != null)
{
processTimeStamp.EditStatus = "REJECT";
processTimeStamp.EditReason = req.Reason;
await _processUserTimeStampRepository.UpdateAsync(processTimeStamp);
}
requestData.Status = "REJECT";
requestData.Comment = req.Reason;
await _additionalCheckRequestRepository.UpdateAsync(requestData);