This commit is contained in:
Suphonchai Phoonsawat 2023-11-14 10:29:07 +07:00
parent 3a20a2b5dd
commit 247071b246
2 changed files with 23 additions and 4 deletions

View file

@ -71,7 +71,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
{
var data = await _dbContext.Set<UserTimeStamp>()
.Where(u => u.KeycloakUserId == keycloakId)
.Where(u => u.CheckIn.Year.ToCeYear() == year.ToCeYear())
.Where(u => u.CheckIn.Year == year)
.OrderBy(u => u.CheckIn)
.Skip((page - 1) * pageSize)
.Take(pageSize)

View file

@ -405,6 +405,8 @@ namespace BMA.EHR.Command.Service.Controllers
checkout.CheckOutRemark = data.Remark;
checkout.CheckOutImageUrl = fileName;
checkout.CheckOut = currentDate;
await _userTimeStampRepository.UpdateAsync(checkout);
}
else
{
@ -430,6 +432,18 @@ namespace BMA.EHR.Command.Service.Controllers
public async Task<ActionResult<ResponseObject>> CheckInHistoryAsync(int year, int page = 1, int pageSize = 10, string keyword = "")
{
var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId);
// TODO : รอดุึงรอบที่ผูกกับ user
var duty = await _dutyTimeRepository.GetDefaultAsync();
if(duty == null)
{
throw new Exception(GlobalMessages.DataNotFound);
}
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, page, pageSize, keyword))
.Select(d => new CheckInHistoryDto
{
@ -438,12 +452,17 @@ namespace BMA.EHR.Command.Service.Controllers
CheckInDate = d.CheckIn.Date,
CheckInTime = d.CheckIn.ToString("HH:mm"),
CheckInLocation = d.CheckInPOI,
CheckInStatus = "NORMAL", // TODO : เอาจากที่ประมวลแล้ว
CheckInStatus = DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) >
DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}") ?
"LATE" :
"NORMAL",
CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date,
CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"),
CheckOutLocation = d.CheckOutPOI ?? "",
CheckOutStatus = d.CheckOut == null ? "" : "NORMAL" // TODO : เอาจากที่ประมวลแล้ว
CheckOutStatus = d.CheckOut == null ? null : DateTime.Parse(d.CheckOut.Value.ToString("yyyy-MM-dd HH:mm")) <
DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}") ?
"LATE" :
"NORMAL",
})
.ToList();