From 8eafb7d70a66413e90f583bb1a48b9332864dbcb Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sun, 17 Dec 2023 11:05:48 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=20defect=2017/12/66?= =?UTF-8?q?=2011:05?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessUserTimeStampRepository.cs | 23 +++++++++++++++---- .../Controllers/LeaveController.cs | 7 ++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/ProcessUserTimeStampRepository.cs b/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/ProcessUserTimeStampRepository.cs index 1b1f08bc..dd0a0f70 100644 --- a/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/ProcessUserTimeStampRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/ProcessUserTimeStampRepository.cs @@ -56,11 +56,26 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants #region " Methods " + public bool IsEditRequest(Guid userId, DateTime checkDate) + { + try + { + var data = _dbContext.Set().AsQueryable() + .FirstOrDefault(x => x.KeycloakUserId == userId && x.CheckDate.Date == checkDate.Date); + + return !(data == null); + } + catch + { + throw; + } + } + public async Task Copy() { var userTimeStamps = await _dbContext.Set().ToListAsync(); - foreach(var u in userTimeStamps) + foreach (var u in userTimeStamps) { var p = new ProcessUserTimeStamp { @@ -84,7 +99,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants CheckOutRemark = u.CheckOutRemark, }; - + _dbContext.Set().Add(p); } await _dbContext.SaveChangesAsync(); @@ -135,7 +150,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants var data = await _dbContext.Set() .Where(u => u.CheckIn.Date >= startDate.Date && u.CheckIn.Date <= endDate.Date) .ToListAsync(); - + return data.Count; } @@ -145,7 +160,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants var data = await _dbContext.Set() .Where(u => u.CheckIn.Date >= startDate.Date && u.CheckIn.Date <= endDate.Date) .OrderBy(u => u.CheckIn) - + .ToListAsync(); return data; diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveController.cs index 8e21ceab..d6b11a7a 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveController.cs @@ -533,6 +533,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 _processUserTimeStampRepository.GetTimeStampHistoryAsync(userId, year)) .Select(d => new CheckInHistoryDto { @@ -553,9 +554,11 @@ namespace BMA.EHR.Leave.Service.Controllers "LATE" : "NORMAL", - IsEdit = (d.EditStatus != null && d.EditStatus != "") + IsEdit = _processUserTimeStampRepository.IsEditRequest(userId, d.CheckIn.Date) - //EditReason = d.EditReason ?? "", + //IsEdit = (d.EditStatus != null && d.EditStatus != "") + + //EditReason = d.EditReason ?? "",ß //EditStatus = d.EditStatus ?? "" })