fix #1466
Some checks failed
release-dev / release-dev (push) Failing after 11s

This commit is contained in:
Suphonchai Phoonsawat 2025-04-30 11:57:07 +07:00
parent 7d39720121
commit 34f0499986

View file

@ -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(),
}
};
}