diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs index 62c53709..6c08b893 100644 --- a/BMA.EHR.Leave/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveController.cs @@ -869,18 +869,24 @@ namespace BMA.EHR.Leave.Service.Controllers //var count = await _processUserTimeStampRepository.GetTimeStampHistoryForAdminCountAsync(startDate, endDate); var imgUrl = $"{_configuration["MinIO:Endpoint"]}{_configuration["MinIO:BucketName"]}"; - var data = (await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate)) - .Select(d => new CheckInProcessHistoryForAdminDto - { - Id = d.Id, - FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken), - CheckInDate = d.CheckIn.Date, - CheckInTime = d.CheckIn.ToString("HH:mm"), - CheckInLocation = d.CheckInPOI, - CheckInLat = d.CheckInLat, - CheckInLon = d.CheckInLon, - CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus : + var resultData = await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate); + var data = new List(); + + foreach (var d in resultData) + { + var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(d.KeycloakUserId, AccessToken); + if (pf == null) continue; + data.Add(new CheckInProcessHistoryForAdminDto + { + Id = d.Id, + FullName = $"{pf.Prefix}{pf.FirstName} {pf.LastName}", + CheckInDate = d.CheckIn.Date, + CheckInTime = d.CheckIn.ToString("HH:mm"), + CheckInLocation = d.CheckInPOI, + CheckInLat = d.CheckInLat, + CheckInLon = d.CheckInLon, + CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus : DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) > DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}") ? @@ -891,16 +897,16 @@ namespace BMA.EHR.Leave.Service.Controllers "NORMAL", - CheckInIsLocation = d.IsLocationCheckIn, - CheckInLocationName = d.CheckInLocationName, - //CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}", + CheckInIsLocation = d.IsLocationCheckIn, + CheckInLocationName = d.CheckInLocationName, + //CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}", - CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date, - CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"), - CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI, - CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat, - CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon, - CheckOutStatus = d.CheckOutStatus != "" ? d.CheckOutStatus : + CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date, + CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"), + CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI, + CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat, + CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon, + CheckOutStatus = d.CheckOutStatus != "" ? d.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}") ? "ABSENT" : @@ -908,12 +914,58 @@ namespace BMA.EHR.Leave.Service.Controllers DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ? "ABSENT" : "NORMAL", - CheckOutIsLocation = d.IsLocationCheckOut, - CheckOutLocationName = d.CheckOutLocationName - //CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}", - }) + CheckOutIsLocation = d.IsLocationCheckOut, + CheckOutLocationName = d.CheckOutLocationName + //CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}", + }); + } - .ToList(); + + // var data = (await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate)) + // .Select(d => new CheckInProcessHistoryForAdminDto + // { + // Id = d.Id, + // FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken), + + // CheckInDate = d.CheckIn.Date, + // CheckInTime = d.CheckIn.ToString("HH:mm"), + // CheckInLocation = d.CheckInPOI, + // CheckInLat = d.CheckInLat, + // CheckInLon = d.CheckInLon, + // CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus : + // DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) > + // DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}") ? + + // DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) > + // DateTime.Parse($"{d.CheckIn.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ? + // "ABSENT" : + // "LATE" : + + + // "NORMAL", + // CheckInIsLocation = d.IsLocationCheckIn, + // CheckInLocationName = d.CheckInLocationName, + // //CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}", + + // CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date, + // CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"), + // CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI, + // CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat, + // CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon, + // CheckOutStatus = d.CheckOutStatus != "" ? d.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}") ? + // "ABSENT" : + // DateTime.Parse(d.CheckOut.Value.ToString("yyyy-MM-dd HH:mm")) < + // DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ? + // "ABSENT" : + // "NORMAL", + // CheckOutIsLocation = d.IsLocationCheckOut, + // CheckOutLocationName = d.CheckOutLocationName + // //CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}", + // }) + + // .ToList(); if (keyword != "") {