fix Leave Issue
Some checks failed
release-dev / release-dev (push) Failing after 13s

This commit is contained in:
Suphonchai Phoonsawat 2024-10-24 20:56:19 +07:00
parent b9814bd346
commit 3c1182ff26
2 changed files with 17 additions and 2 deletions

View file

@ -271,6 +271,19 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
return data.Sum(x => x.LeaveTotal);
}
//public async Task<double> GetSumApproveLeaveByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId, int year)
//{
// var data = await _dbContext.Set<LeaveRequest>().AsQueryable().AsNoTracking()
// .Include(x => x.Type)
// .Where(x => x.KeycloakUserId == keycloakUserId)
// .Where(x => x.Type.Id == leaveTypeId)
// .Where(x => x.LeaveStartDate.Year == year)
// .Where(x => x.LeaveStatus == "APPROVE")
// .ToListAsync();
// return data.Sum(x => x.LeaveTotal);
//}
public async Task<DateTime?> GetLeaveLastByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId)
{
var data = await _dbContext.Set<LeaveRequest>().AsQueryable().AsNoTracking()

View file

@ -712,6 +712,8 @@ namespace BMA.EHR.Leave.Service.Controllers
var totalDay = req.StartLeaveDate.DiffDay(req.EndLeaveDate.Date);
var sumWeekend = _holidayRepository.GetWeekEndCount(req.StartLeaveDate.Date, req.EndLeaveDate.Date, category);
var sumApproveLeave = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(userId, req.Type, req.StartLeaveDate.Year);
var isLeave = false;
switch (leaveType.Code.ToUpper().Trim())
@ -728,7 +730,7 @@ namespace BMA.EHR.Leave.Service.Controllers
isLeave = (totalDay - sumWorkDay - sumWeekend) <= 15;
break;
case "LV-005":
isLeave = (totalDay - sumWorkDay - sumWeekend) <= 10;
isLeave = (totalDay - sumWorkDay - sumWeekend - sumApproveLeave) <= 10;
break;
case "LV-006":
isLeave = totalDay <= 120;
@ -1560,7 +1562,7 @@ namespace BMA.EHR.Leave.Service.Controllers
approver = list.First().Name;
}
var leaveSummary = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(userId, rawData.Type.Id, thisYear);
var leaveSummary = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(rawData.KeycloakUserId, rawData.Type.Id, thisYear);
var sumLeave = rawData.LeaveStartDate.DiffDay(rawData.LeaveEndDate);
var sumHoliday = await _holidayRepository.GetHolidayCountAsync(rawData.LeaveStartDate, rawData.LeaveEndDate, category);