From 71a1c4839253a5a3ca9c70bc18ea21593371c51c Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Fri, 21 Mar 2025 13:01:17 +0700 Subject: [PATCH] refix issue #1265 --- BMA.EHR.Leave/Controllers/LeaveController.cs | 11 ++++++++++- BMA.EHR.Leave/wwwroot/keycloak.json | 2 -- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs index 76f9844d..c88c3430 100644 --- a/BMA.EHR.Leave/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveController.cs @@ -16,6 +16,7 @@ using BMA.EHR.Leave.Service.DTOs.DutyTime; using BMA.EHR.Leave.Service.DTOs.LeaveRequest; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.ObjectPool; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -1767,9 +1768,17 @@ namespace BMA.EHR.Leave.Service.Controllers var duty = userRound ?? getDefaultRound; + + var lastCheckIn = await _context.Set() + .Where(u => u.KeycloakUserId == userId) + .Where(d => d.CheckOut == null) + .OrderByDescending(u => u.CheckIn) + .FirstOrDefaultAsync(); + + var endTime = DateTime.Parse($"{DateTime.Now.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}"); - var status = time < endTime ? "ABSENT" : "NORMAL"; + var status = lastCheckIn == null ? "ABSENT" : lastCheckIn.CheckIn.Date < DateTime.Now.Date ? "NORMAL" : time < endTime ? "ABSENT" : "NORMAL"; return Success(new { diff --git a/BMA.EHR.Leave/wwwroot/keycloak.json b/BMA.EHR.Leave/wwwroot/keycloak.json index d1218fee..04ddac93 100644 --- a/BMA.EHR.Leave/wwwroot/keycloak.json +++ b/BMA.EHR.Leave/wwwroot/keycloak.json @@ -1,9 +1,7 @@ { "realm": "hrms", "auth-server-url": "https://id.frappet.synology.me", - //"auth-server-url": "https://hrms-id.bangkok.go.th", "ssl-required": "external", "resource": "bma-ehr", - //"resource": "hrms", "public-client": true } \ No newline at end of file