diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index f7f322f3..ffbb104b 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -713,6 +713,12 @@ namespace BMA.EHR.Leave.Service.Controllers } var leaveLimit = 0.0; + var remainPrev = 0.0; + + + + + if (leaveType.Code.Trim().ToUpper() == "LV-005") { if (govAge >= 180) @@ -721,10 +727,14 @@ namespace BMA.EHR.Leave.Service.Controllers if (govAge >= 3650) { leaveLimit = 30 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); + remainPrev = 30 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน + if (remainPrev >= 20) remainPrev = 20; } else { leaveLimit = 20 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); + remainPrev = 20 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน + if (remainPrev >= 10) remainPrev = 10; } } else @@ -737,7 +747,13 @@ namespace BMA.EHR.Leave.Service.Controllers var sumLeave = await _leaveRequestRepository.GetSumLeaveByTypeForUserAsync(userId, req.Type, thisYear); - var restOldDay = await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear - 1); + var restOldDay = 0.00; + if (leaveType.Code.Trim().ToUpper() == "LV-005") + { + restOldDay = remainPrev; + } + else + restOldDay = await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear - 1); var lastSalary = profile.ProfileSalary; @@ -1224,6 +1240,10 @@ namespace BMA.EHR.Leave.Service.Controllers LeaveNumber = rawData.LeaveNumber, LeaveDetail = rawData.LeaveDetail, LeaveDocument = new(), + + + LeaveLast = rawData.LeaveLast, + //LeaveDocument = rawData.LeaveDocument == null ? null : await _minIOService.ImagesPath(rawData.LeaveDocument.Id), LeaveDraftDocument = rawData.LeaveDraftDocument == null ? "" : await _minIOService.ImagesPath(rawData.LeaveDraftDocument.Id), @@ -2023,7 +2043,7 @@ namespace BMA.EHR.Leave.Service.Controllers else leaveLimit = 0; } - + var data = new { Id = leaveType.Id, diff --git a/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestByIdDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestByIdDto.cs index 5dd222cb..b97474a2 100644 --- a/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestByIdDto.cs +++ b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestByIdDto.cs @@ -107,13 +107,13 @@ namespace BMA.EHR.Leave.Service.DTOs.LeaveRequest public string? CoupleDayCountryHistory { get; set; } - public string? CoupleDayTotalHistory { get; set; } + public string? CoupleDayTotalHistory { get; set; } - public DateTime? CoupleDayStartDateHistory { get; set; } + public DateTime? CoupleDayStartDateHistory { get; set; } public DateTime? CoupleDayEndDateHistory { get; set; } - public string? CoupleDaySumTotalHistory { get; set; } + public string? CoupleDaySumTotalHistory { get; set; } public string? Dear { get; set; } = string.Empty; @@ -124,5 +124,7 @@ namespace BMA.EHR.Leave.Service.DTOs.LeaveRequest public string? PositionLevelName { get; set; } = string.Empty; public string? OrganizationName { get; set; } = string.Empty; + + public DateTime? LeaveLast { get; set; } } }