diff --git a/BMA.EHR.Leave/Controllers/LeaveReportController.cs b/BMA.EHR.Leave/Controllers/LeaveReportController.cs index 224bcbda..76678fba 100644 --- a/BMA.EHR.Leave/Controllers/LeaveReportController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveReportController.cs @@ -6,6 +6,7 @@ using BMA.EHR.Application.Repositories.MetaData; using BMA.EHR.Application.Responses.Profiles; using BMA.EHR.Domain.Common; using BMA.EHR.Domain.Extensions; +using BMA.EHR.Domain.Models.Leave.Commons; using BMA.EHR.Domain.Models.Leave.Requests; using BMA.EHR.Domain.Shared; using BMA.EHR.Leave.Service.DTOs.Reports; @@ -158,7 +159,10 @@ namespace BMA.EHR.Leave.Service.Controllers // approver = list.First().Name; //} - var sumLeave = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(data.KeycloakUserId, data.Type.Id, data.LeaveStartDate.Year); + //var sumLeave = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(data.KeycloakUserId, data.Type.Id, data.LeaveStartDate.Year); + + var leaveData = await _leaveBeginningRepository.GetByYearAndTypeIdForUserAsync(data.LeaveStartDate.Year, data.Type.Id, data.KeycloakUserId); + var sumLeave = leaveData == null ? 0 : leaveData.LeaveDaysUsed; return new { @@ -262,7 +266,7 @@ namespace BMA.EHR.Leave.Service.Controllers // approver = list.First().Name; //} - var sumLeave = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(data.KeycloakUserId, data.Type.Id, data.LeaveStartDate.Year); + //var sumLeave = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(data.KeycloakUserId, data.Type.Id, data.LeaveStartDate.Year); //var userCalendar = await _userCalendarRepository.GetExist(profile.Id); //var category = userCalendar == null ? "NORMAL" : userCalendar.Calendar; @@ -271,43 +275,13 @@ namespace BMA.EHR.Leave.Service.Controllers //var sumWeekend = _holidayRepository.GetWeekEndCount(data.LeaveStartDate.Date, data.LeaveEndDate.Date, category); + var leaveData = await _leaveBeginningRepository.GetByYearAndTypeIdForUserAsync(data.LeaveStartDate.Year, data.Type.Id, data.KeycloakUserId); + var sumLeave = leaveData == null ? 0 : leaveData.LeaveDaysUsed; - var extendLeave = 0.0; - var leaveLimit = data.Type.Limit; + var leaveLimit = leaveData == null ? 0.0 : leaveData.LeaveDays; + var extendLeave = leaveLimit - 10; - var approvePrevYear = await _leaveRequestRepository.GetSumApproveLeaveAsync(data.LeaveStartDate.Year - 1); - - if (data.Type.Code == "LV-005") - { - var apprvPrevData = approvePrevYear.FirstOrDefault(x => x.KeycloakUserId == data.KeycloakUserId && x.LeaveTypeId == data.Type.Id); - var apprvPrev = apprvPrevData == null ? 0 : apprvPrevData.SumLeaveDay; - - //หาวันลายกมาของปีก่อน - var leaveBeginning = await _leaveBeginningRepository.GetByYearAndTypeIdAsync(data.LeaveStartDate.Year, data.Type.Id); - - //var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken); - var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date); - - if (govAge >= 180) - { - if (govAge >= 3650) - { - // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน - //extendLeave = 30 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน - extendLeave = leaveBeginning == null ? 30 - apprvPrev : leaveBeginning.LeaveDays; - if (extendLeave >= 20) extendLeave = 20; - } - else - { - //extendLeave = 20 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน - extendLeave = leaveBeginning == null ? 20 - apprvPrev : leaveBeginning.LeaveDays; - if (extendLeave >= 10) extendLeave = 10; - } - } - else - leaveLimit = 0; - } return new { @@ -326,7 +300,7 @@ namespace BMA.EHR.Leave.Service.Controllers organizationName = profile!.Oc!.ToThaiNumber() ?? "", restDayOldTotal = extendLeave.ToString().ToThaiNumber(), - restDayCurrentTotal = leaveLimit.ToString().ToThaiNumber(), + restDayCurrentTotal = (10).ToString().ToThaiNumber(), //restDayOldTotal = data.RestDayOldTotal.ToString().ToThaiNumber(), //restDayCurrentTotal = data.RestDayCurrentTotal.ToString().ToThaiNumber(), @@ -339,7 +313,7 @@ namespace BMA.EHR.Leave.Service.Controllers leaveNumber = data.LeaveNumber.ToThaiNumber(), LeaveSummary = sumLeave.ToString().ToThaiNumber(), - LeaveRemain = (data.Type.Limit + extendLeave - sumLeave).ToString().ToThaiNumber(), + LeaveRemain = (leaveLimit - sumLeave).ToString().ToThaiNumber(), } }; }