fix: Leave Performance
This commit is contained in:
parent
aaa180e217
commit
9c696be46e
4 changed files with 132 additions and 140 deletions
|
|
@ -3,6 +3,7 @@ using System.Net.Http.Headers;
|
||||||
using System.Net.Http.Json;
|
using System.Net.Http.Json;
|
||||||
using BMA.EHR.Application.Common.Interfaces;
|
using BMA.EHR.Application.Common.Interfaces;
|
||||||
using BMA.EHR.Application.Messaging;
|
using BMA.EHR.Application.Messaging;
|
||||||
|
using BMA.EHR.Application.Responses.Leaves;
|
||||||
using BMA.EHR.Domain.Models.HR;
|
using BMA.EHR.Domain.Models.HR;
|
||||||
using BMA.EHR.Domain.Models.Leave.Commons;
|
using BMA.EHR.Domain.Models.Leave.Commons;
|
||||||
using BMA.EHR.Domain.Models.Leave.Requests;
|
using BMA.EHR.Domain.Models.Leave.Requests;
|
||||||
|
|
@ -552,6 +553,48 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<List<GetSumApproveLeaveByTypeDto>> GetSumApproveLeaveByTypeAndRange(DateTime startDate, DateTime endDate)
|
||||||
|
{
|
||||||
|
var data = await _dbContext.Set<LeaveRequest>().AsQueryable()
|
||||||
|
.Include(x => x.Type)
|
||||||
|
.Where(x => x.LeaveStartDate.Date >= startDate.Date && x.LeaveStartDate.Date <= endDate.Date)
|
||||||
|
.Where(x => x.LeaveStatus == "APPROVE").ToListAsync();
|
||||||
|
|
||||||
|
var res = (from d in data
|
||||||
|
group d by new { d.KeycloakUserId, LeaveTypeId = d.Type.Id, LeaveTypeCode = d.Type.Code } into grp
|
||||||
|
select new GetSumApproveLeaveByTypeDto
|
||||||
|
{
|
||||||
|
KeycloakUserId = grp.Key.KeycloakUserId,
|
||||||
|
LeaveTypeId = grp.Key.LeaveTypeId,
|
||||||
|
LeaveTypeCode = grp.Key.LeaveTypeCode,
|
||||||
|
SumLeaveDay = grp.Sum(x => x.LeaveTotal)
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<GetCountApproveLeaveByTypeDto>> GetCountApproveLeaveByTypeAndRange(DateTime startDate, DateTime endDate)
|
||||||
|
{
|
||||||
|
var data = await _dbContext.Set<LeaveRequest>().AsQueryable()
|
||||||
|
.Include(x => x.Type)
|
||||||
|
.Where(x => x.LeaveStartDate.Date >= startDate.Date && x.LeaveStartDate.Date <= endDate.Date)
|
||||||
|
.Where(x => x.LeaveStatus == "APPROVE").ToListAsync();
|
||||||
|
|
||||||
|
var res = (from d in data
|
||||||
|
group d by new { d.KeycloakUserId, LeaveTypeId = d.Type.Id, LeaveTypeCode = d.Type.Code } into grp
|
||||||
|
select new GetCountApproveLeaveByTypeDto
|
||||||
|
{
|
||||||
|
KeycloakUserId = grp.Key.KeycloakUserId,
|
||||||
|
LeaveTypeId = grp.Key.LeaveTypeId,
|
||||||
|
LeaveTypeCode = grp.Key.LeaveTypeCode,
|
||||||
|
CountLeave = grp.Count()
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<double> GetSumApproveLeaveByTypeAndRangeForUser(Guid keycloakUserId, Guid leaveTypeId, DateTime startDate, DateTime endDate)
|
public async Task<double> GetSumApproveLeaveByTypeAndRangeForUser(Guid keycloakUserId, Guid leaveTypeId, DateTime startDate, DateTime endDate)
|
||||||
{
|
{
|
||||||
var data = await _dbContext.Set<LeaveRequest>().AsQueryable()
|
var data = await _dbContext.Set<LeaveRequest>().AsQueryable()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
namespace BMA.EHR.Application.Responses.Leaves
|
||||||
|
{
|
||||||
|
public class GetCountApproveLeaveByTypeDto
|
||||||
|
{
|
||||||
|
public Guid KeycloakUserId { get; set; }
|
||||||
|
|
||||||
|
public Guid LeaveTypeId { get; set; }
|
||||||
|
|
||||||
|
public string LeaveTypeCode { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public int CountLeave { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
namespace BMA.EHR.Application.Responses.Leaves
|
||||||
|
{
|
||||||
|
public class GetSumApproveLeaveByTypeDto
|
||||||
|
{
|
||||||
|
public Guid KeycloakUserId { get; set; }
|
||||||
|
|
||||||
|
public Guid LeaveTypeId { get; set; }
|
||||||
|
|
||||||
|
public string LeaveTypeCode { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public double SumLeaveDay { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,3 @@
|
||||||
using System.Data.Common;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.IO.Pipelines;
|
|
||||||
using System.Security.Claims;
|
|
||||||
using BMA.EHR.Application.Repositories;
|
using BMA.EHR.Application.Repositories;
|
||||||
using BMA.EHR.Application.Repositories.Commands;
|
using BMA.EHR.Application.Repositories.Commands;
|
||||||
using BMA.EHR.Application.Repositories.Leaves.LeaveRequests;
|
using BMA.EHR.Application.Repositories.Leaves.LeaveRequests;
|
||||||
|
|
@ -10,14 +6,13 @@ using BMA.EHR.Application.Repositories.MetaData;
|
||||||
using BMA.EHR.Domain.Common;
|
using BMA.EHR.Domain.Common;
|
||||||
using BMA.EHR.Domain.Extensions;
|
using BMA.EHR.Domain.Extensions;
|
||||||
using BMA.EHR.Domain.Models.Leave.Requests;
|
using BMA.EHR.Domain.Models.Leave.Requests;
|
||||||
using BMA.EHR.Domain.Models.Leave.TimeAttendants;
|
|
||||||
using BMA.EHR.Domain.Shared;
|
using BMA.EHR.Domain.Shared;
|
||||||
using BMA.EHR.Infrastructure.Persistence;
|
|
||||||
using BMA.EHR.Leave.Service.DTOs.Reports;
|
using BMA.EHR.Leave.Service.DTOs.Reports;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Org.BouncyCastle.Utilities;
|
|
||||||
using Swashbuckle.AspNetCore.Annotations;
|
using Swashbuckle.AspNetCore.Annotations;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Security.Claims;
|
||||||
|
|
||||||
namespace BMA.EHR.Leave.Service.Controllers
|
namespace BMA.EHR.Leave.Service.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -751,6 +746,10 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
//var profile = await _userProfileRepository.SearchProfile(null, null, null);
|
//var profile = await _userProfileRepository.SearchProfile(null, null, null);
|
||||||
var profile = await _userProfileRepository.GetProfileWithKeycloak(AccessToken);
|
var profile = await _userProfileRepository.GetProfileWithKeycloak(AccessToken);
|
||||||
|
|
||||||
|
// get leave day
|
||||||
|
var leaveDays = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRange(req.StartDate, req.EndDate);
|
||||||
|
var leaveTypes = await _leaveTypeRepository.GetAllAsync();
|
||||||
|
|
||||||
var count = 1;
|
var count = 1;
|
||||||
var employees = new List<dynamic>();
|
var employees = new List<dynamic>();
|
||||||
|
|
||||||
|
|
@ -758,93 +757,40 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
|
|
||||||
foreach (var p in profile)
|
foreach (var p in profile)
|
||||||
{
|
{
|
||||||
var sickType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-001");
|
var keycloakUserId = p.Keycloak ?? Guid.Empty;
|
||||||
if (sickType == null)
|
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var sickDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
sickType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var personalType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-002");
|
var sickDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-001");
|
||||||
if (personalType == null)
|
var sickDayCount = sickDay != null ? sickDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var personalDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
personalType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var maternityType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-003");
|
var personalDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-002");
|
||||||
if (maternityType == null)
|
var personalDayCount = personalDay != null ? personalDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var maternityDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
maternityType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var wifeType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-004");
|
var maternityDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-003");
|
||||||
if (wifeType == null)
|
var maternityDayCount = maternityDay != null ? maternityDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var wifeDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
wifeType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var restType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-005");
|
var wifeDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-004");
|
||||||
if (restType == null)
|
var wifeDayCount = wifeDay != null ? wifeDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var restDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
restType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var ordainType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-006");
|
var restDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-005");
|
||||||
if (ordainType == null)
|
var restDayCount = restDay != null ? restDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var ordainDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
ordainType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var absentType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-007");
|
var ordainDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-006");
|
||||||
if (absentType == null)
|
var ordainDayCount = ordainDay != null ? ordainDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var absentDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
absentType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var studyType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-008");
|
var absentDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-007");
|
||||||
if (studyType == null)
|
var absentDayCount = absentDay != null ? absentDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var studyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
studyType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var agencyType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-009");
|
var studyDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-008");
|
||||||
if (agencyType == null)
|
var studyDayCount = studyDay != null ? studyDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var agencyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
agencyType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var coupleType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-010");
|
var agencyDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-009");
|
||||||
if (coupleType == null)
|
var agencyDayCount = agencyDay != null ? agencyDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var coupleDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
coupleType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var therapyType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-011");
|
var coupleDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-010");
|
||||||
if (therapyType == null)
|
var coupleDayCount = coupleDay != null ? coupleDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var therapyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
var therapyDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-011");
|
||||||
therapyType.Id,
|
var therapyDayCount = therapyDay != null ? therapyDay.SumLeaveDay : 0;
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var timeStamps = await _processUserTimeStampRepository.GetTimeStampHistoryByRangeForUserAsync(p.Keycloak ?? Guid.Empty,
|
var timeStamps = await _processUserTimeStampRepository.GetTimeStampHistoryByRangeForUserAsync(p.Keycloak ?? Guid.Empty,
|
||||||
req.StartDate,
|
req.StartDate,
|
||||||
|
|
@ -885,12 +831,10 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
var absentCount = processTimeStamps.Count(x => x.CheckOutStatus == "ABSENT");
|
var absentCount = processTimeStamps.Count(x => x.CheckOutStatus == "ABSENT");
|
||||||
var lateCount = processTimeStamps.Count(x => x.CheckInStatus == "LATE");
|
var lateCount = processTimeStamps.Count(x => x.CheckInStatus == "LATE");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var emp = new
|
var emp = new
|
||||||
{
|
{
|
||||||
no = count,
|
no = count,
|
||||||
fullName = _userProfileRepository.GetUserFullName(p.Keycloak ?? Guid.Empty, AccessToken),
|
fullName = $"{p.Prefix}{p.FirstName} {p.LastName}",// _userProfileRepository.GetUserFullName(p.Keycloak ?? Guid.Empty, AccessToken),
|
||||||
position = p.Position == null ? "" : p.Position,
|
position = p.Position == null ? "" : p.Position,
|
||||||
positionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName,
|
positionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName,
|
||||||
posNo = p.ProfileSalary == null ? "" : p.ProfileSalary.PosNo,
|
posNo = p.ProfileSalary == null ? "" : p.ProfileSalary.PosNo,
|
||||||
|
|
@ -970,67 +914,46 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
var count = 1;
|
var count = 1;
|
||||||
var employees = new List<dynamic>();
|
var employees = new List<dynamic>();
|
||||||
|
|
||||||
|
// get leave day
|
||||||
|
var leaveDays = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRange(req.StartDate, req.EndDate);
|
||||||
|
var leaveCounts = await _leaveRequestRepository.GetCountApproveLeaveByTypeAndRange(req.StartDate, req.EndDate);
|
||||||
|
var leaveTypes = await _leaveTypeRepository.GetAllAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var p in profile)
|
foreach (var p in profile)
|
||||||
{
|
{
|
||||||
var sickType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-001");
|
var keycloakUserId = p.Keycloak ?? Guid.Empty;
|
||||||
if (sickType == null)
|
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var sickDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
sickType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var sickCount = await _leaveRequestRepository.GetCountApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
var sickDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-001");
|
||||||
sickType.Id,
|
var sickDayCount = sickDay != null ? sickDay.SumLeaveDay : 0;
|
||||||
req.StartDate,
|
var sickCountData = leaveCounts.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-001");
|
||||||
req.EndDate);
|
var sickCount = sickCountData != null ? sickCountData.CountLeave : 0;
|
||||||
|
|
||||||
var personalType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-002");
|
var personalDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-002");
|
||||||
if (personalType == null)
|
var personalDayCount = personalDay != null ? personalDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
var personalCountData = leaveCounts.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-002");
|
||||||
var personalDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
var personalCount = personalCountData != null ? personalCountData.CountLeave : 0;
|
||||||
personalType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var personalCount = await _leaveRequestRepository.GetCountApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
var maternityDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-003");
|
||||||
personalType.Id,
|
var maternityDayCount = maternityDay != null ? maternityDay.SumLeaveDay : 0;
|
||||||
req.StartDate,
|
var maternityCountData = leaveCounts.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-003");
|
||||||
req.EndDate);
|
var maternityCount = maternityCountData != null ? maternityCountData.CountLeave : 0;
|
||||||
|
|
||||||
var maternityType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-003");
|
var wifeDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-004");
|
||||||
if (maternityType == null)
|
var wifeDayCount = wifeDay != null ? wifeDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
var wifeCountData = leaveCounts.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-004");
|
||||||
var maternityDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
var wifeCount = wifeCountData != null ? wifeCountData.CountLeave : 0;
|
||||||
maternityType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var wifeType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-004");
|
var restDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-005");
|
||||||
if (wifeType == null)
|
var restDayCount = restDay != null ? restDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
var restCountData = leaveCounts.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-005");
|
||||||
var wifeDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
var restCount = restCountData != null ? restCountData.CountLeave : 0;
|
||||||
wifeType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var restType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-005");
|
var ordainDay = leaveDays.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-006");
|
||||||
if (restType == null)
|
var ordainDayCount = ordainDay != null ? ordainDay.SumLeaveDay : 0;
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
var ordainCountData = leaveCounts.FirstOrDefault(x => x.KeycloakUserId == keycloakUserId && x.LeaveTypeCode == "LV-006");
|
||||||
var restDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
var ordainCount = ordainCountData != null ? ordainCountData.CountLeave : 0;
|
||||||
restType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var ordainType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-006");
|
|
||||||
if (ordainType == null)
|
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
|
||||||
var ordainDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
|
|
||||||
ordainType.Id,
|
|
||||||
req.StartDate,
|
|
||||||
req.EndDate);
|
|
||||||
|
|
||||||
var timeStamps = await _processUserTimeStampRepository.GetTimeStampHistoryByRangeForUserAsync(p.Keycloak ?? Guid.Empty,
|
var timeStamps = await _processUserTimeStampRepository.GetTimeStampHistoryByRangeForUserAsync(p.Keycloak ?? Guid.Empty,
|
||||||
req.StartDate,
|
req.StartDate,
|
||||||
|
|
@ -1075,7 +998,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
var emp = new
|
var emp = new
|
||||||
{
|
{
|
||||||
no = count,
|
no = count,
|
||||||
fullName = _userProfileRepository.GetUserFullName(p.Keycloak ?? Guid.Empty, AccessToken),
|
fullName = $"{p.Prefix}{p.FirstName} {p.LastName}",// _userProfileRepository.GetUserFullName(p.Keycloak ?? Guid.Empty, AccessToken),
|
||||||
posNo = p.PosNoEmployee ?? "",
|
posNo = p.PosNoEmployee ?? "",
|
||||||
reason = "",
|
reason = "",
|
||||||
|
|
||||||
|
|
@ -1173,7 +1096,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
|
|
||||||
var timeStamps = await _processUserTimeStampRepository.GetTimestampByDateAsync(keycloakUserId, dd);
|
var timeStamps = await _processUserTimeStampRepository.GetTimestampByDateAsync(keycloakUserId, dd);
|
||||||
|
|
||||||
var fullName = _userProfileRepository.GetUserFullName(keycloakUserId, AccessToken);
|
var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}"; // _userProfileRepository.GetUserFullName(keycloakUserId, AccessToken);
|
||||||
|
|
||||||
|
|
||||||
var defaultRound = await _dutyTimeRepository.GetDefaultAsync();
|
var defaultRound = await _dutyTimeRepository.GetDefaultAsync();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue