From 89a88c92dc9da32844db96accef6ed0f2a4c9a02 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Fri, 15 Dec 2023 09:59:03 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=20defect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/LeaveController.cs | 40 +++++++++++++++++-- .../Controllers/LeaveRequestController.cs | 8 ++++ .../GetAdditionalCheckRequestHistoryDto.cs | 4 +- .../GetLeaveRequestForAdminByIdDto.cs | 6 +++ 4 files changed, 53 insertions(+), 5 deletions(-) diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveController.cs index c7e5a79a..8e21ceab 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveController.cs @@ -202,7 +202,7 @@ namespace BMA.EHR.Leave.Service.Controllers EndTimeMorning = data.EndTimeMorning, StartTimeAfternoon = data.StartTimeAfternoon, EndTimeAfternoon = data.EndTimeAfternoon, - IsActive = true, + IsActive = data.IsActive, IsDefault = data.IsDefault, }; @@ -1312,13 +1312,47 @@ namespace BMA.EHR.Leave.Service.Controllers var duty = userRound ?? getDefaultRound; + DateTime? resultCheckInDate, resultCheckOutDate; + string resultCheckInTime, resultCheckOutTime; + + if (data.CheckInEdit) + { + resultCheckInDate = data.CheckDate.Date; + resultCheckInTime = duty.StartTimeMorning; + } + else + { + resultCheckInDate = checkInData == null ? null : checkInData.CheckIn; + resultCheckInTime = checkInData == null ? "00:00" : checkInData.CheckIn.ToString("HH:mm"); + } + + if (data.CheckOutEdit) + { + resultCheckOutDate = data.CheckDate.Date; + resultCheckOutTime = duty.EndTimeAfternoon; + } + else + { + resultCheckOutDate = checkInData == null ? null : + checkInData.CheckOut == null ? null : + checkInData.CheckOut.Value.Date; + + resultCheckOutTime = checkInData == null ? "00:00" : + checkInData.CheckOut == null ? "00:00" : + checkInData.CheckOut.Value.ToString("HH:mm"); + } + + // create result object to return var resObj = new GetAdditionalCheckRequestHistoryDto { Id = data.Id, - CheckInTime = checkInData == null ? duty.StartTimeMorning : checkInData.CheckIn.ToString("HH:mm"), - CheckOutTime = checkInData == null ? duty.EndTimeAfternoon : checkInData.CheckOut == null ? "00:00" : checkInData.CheckOut.Value.ToString("HH:mm"), + CheckInDate = resultCheckInDate, + CheckOutDate = resultCheckOutDate, + + CheckInTime = resultCheckInTime, + CheckOutTime = resultCheckOutTime, CheckInStatus = checkInData == null ? null : DateTime.Parse(checkInData.CheckIn.ToString("yyyy-MM-dd HH:mm")) > diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs index 199bfe9b..922db369 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs @@ -891,6 +891,8 @@ namespace BMA.EHR.Leave.Service.Controllers [ProducesResponseType(StatusCodes.Status500InternalServerError)] public async Task> GetLeaveRequestForAdminByIdAsync(Guid id) { + var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); + var rawData = await _leaveRequestRepository.GetByIdAsync(id); var thisYear = DateTime.Now.Year; @@ -923,6 +925,8 @@ namespace BMA.EHR.Leave.Service.Controllers approver = list.First().Name; } + var leaveSummary = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(userId, rawData.Type.Id, thisYear); + var result = new GetLeaveRequestForAdminByIdDto { Id = rawData.Id, @@ -993,6 +997,10 @@ namespace BMA.EHR.Leave.Service.Controllers Dear = approver, ApproveStep = rawData.ApproveStep ?? "-", + + LeaveLimit = rawData.Type.Limit, + LeaveSummary = leaveSummary, + LeaveRemain = rawData.Type.Limit - leaveSummary }; return Success(result); diff --git a/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/GetAdditionalCheckRequestHistoryDto.cs b/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/GetAdditionalCheckRequestHistoryDto.cs index 203e5efc..8fb70ae8 100644 --- a/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/GetAdditionalCheckRequestHistoryDto.cs +++ b/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/GetAdditionalCheckRequestHistoryDto.cs @@ -4,9 +4,9 @@ { public Guid Id { get; set; } - public DateTime CheckInDate { get; set; } + public DateTime? CheckInDate { get; set; } - public DateTime CheckOutDate { get; set; } + public DateTime? CheckOutDate { get; set; } public string CheckInTime { get; set; } diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminByIdDto.cs b/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminByIdDto.cs index 1e18f5a2..6fd495bd 100644 --- a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminByIdDto.cs +++ b/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminByIdDto.cs @@ -125,5 +125,11 @@ namespace BMA.EHR.Leave.Service.DTOs.LeaveRequest public string Dear { get; set; } = string.Empty; public string ApproveStep { get; set; } = string.Empty; + + public double LeaveLimit { get; set; } = 0; + + public double LeaveSummary { get; set; } = 0; + + public double LeaveRemain { get; set; } = 0; } }