|
@@ -10,6 +10,7 @@ using System.Linq.Dynamic.Core;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using MTWorkHR.Infrastructure.Entities;
|
|
using MTWorkHR.Infrastructure.Entities;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
|
|
+using MTWorkHR.Core.IDto;
|
|
|
|
|
|
namespace MTWorkHR.Application.Services
|
|
namespace MTWorkHR.Application.Services
|
|
{
|
|
{
|
|
@@ -127,7 +128,7 @@ namespace MTWorkHR.Application.Services
|
|
}
|
|
}
|
|
|
|
|
|
#region HR data____________________________
|
|
#region HR data____________________________
|
|
- public async Task<PagingResultDto<ContractDto>> GetAllForHr(ContractPagingInputDto PagingInputDto)
|
|
|
|
|
|
+ public async Task<PagingResultDto<ContractAllHRDto>> GetAllForHr(ContractPagingInputDto PagingInputDto)
|
|
{
|
|
{
|
|
var res = await _unitOfWork.Contract.GetAllWithChildrenAsync();
|
|
var res = await _unitOfWork.Contract.GetAllWithChildrenAsync();
|
|
var query = res.Item1;
|
|
var query = res.Item1;
|
|
@@ -159,7 +160,7 @@ namespace MTWorkHR.Application.Services
|
|
var total = await query.CountAsync();
|
|
var total = await query.CountAsync();
|
|
|
|
|
|
var list = MapperObject.Mapper
|
|
var list = MapperObject.Mapper
|
|
- .Map<IList<ContractDto>>(await page.ToListAsync());
|
|
|
|
|
|
+ .Map<IList<ContractAllHRDto>>(await page.ToListAsync());
|
|
|
|
|
|
|
|
|
|
var teamUsersList = await _unitOfWork.TeamUser.GetAllWithChildrenAsync();
|
|
var teamUsersList = await _unitOfWork.TeamUser.GetAllWithChildrenAsync();
|
|
@@ -174,23 +175,35 @@ namespace MTWorkHR.Application.Services
|
|
item.EmployeeName = user.FirstName + " " + user.LastName;
|
|
item.EmployeeName = user.FirstName + " " + user.LastName;
|
|
item.EmployeeEmail = user.Email;
|
|
item.EmployeeEmail = user.Email;
|
|
//___________Get Teams
|
|
//___________Get Teams
|
|
- var TeamsList = teamUsersList.Item1.Where(t => t.AssignedUserId == item.UserId).Select(t => GlobalInfo.lang == "en" ? t.Team.NameEn : t.Team.NameAr);
|
|
|
|
- item.Teams = TeamsList == null ? "" : string.Join(",", TeamsList);
|
|
|
|
|
|
+ //var TeamsList = teamUsersList.Item1.Where(t => t.AssignedUserId == item.UserId).Select(t => GlobalInfo.lang == "en" ? t.Team.NameEn : t.Team.NameAr);
|
|
|
|
+ //item.Teams = TeamsList == null ? "" : string.Join(",", TeamsList);
|
|
|
|
+ var latestTeam = teamUsersList.Item1.OrderByDescending(a=> a.Id).FirstOrDefault(t => t.AssignedUserId == item.UserId);
|
|
|
|
+ item.Teams = latestTeam == null ? "" : GlobalInfo.lang == "en" ? latestTeam.Team?.NameEn : latestTeam.Team?.NameAr;
|
|
//_____________Get vacation balance
|
|
//_____________Get vacation balance
|
|
var remainVacations = vacationAllocations.Item1.FirstOrDefault(t => t.EmployeeId == item.UserId && t.ContractId == item.Id);
|
|
var remainVacations = vacationAllocations.Item1.FirstOrDefault(t => t.EmployeeId == item.UserId && t.ContractId == item.Id);
|
|
- item.Vacations = remainVacations == null ? "" : remainVacations.NumberOfDays + " / " + item.VacationDays;
|
|
|
|
|
|
+ item.RestVacations = remainVacations == null ? item.VacationDays : remainVacations.NumberOfDays ;
|
|
|
|
+ item.SpentVacations = item.VacationDays - item.RestVacations;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // Filter employees by name if provided
|
|
|
|
+ if (!string.IsNullOrEmpty(PagingInputDto.UserName))
|
|
|
|
+ {
|
|
|
|
+ var filter = PagingInputDto.UserName;
|
|
|
|
|
|
|
|
+ list = list.Where(u =>
|
|
|
|
+ (u.EmployeeName != null && u.EmployeeName.Contains(filter))
|
|
|
|
+ || (u.EmployeeEmail != null && u.EmployeeEmail.Contains(filter))
|
|
|
|
+ ).ToList();
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- var response = new PagingResultDto<ContractDto>
|
|
|
|
|
|
+ var response = new PagingResultDto<ContractAllHRDto>
|
|
{
|
|
{
|
|
Result = list,
|
|
Result = list,
|
|
- Total = total
|
|
|
|
|
|
+ Total = list.Count
|
|
};
|
|
};
|
|
|
|
|
|
return response;
|
|
return response;
|
|
@@ -214,7 +227,8 @@ namespace MTWorkHR.Application.Services
|
|
//_____________Get vacation balance
|
|
//_____________Get vacation balance
|
|
var vacationAllocations = await _unitOfWork.OrderAllocation.GetUserAllocations(entity.UserId, 1, 1, entity.Id, DateTime.Now.Year);
|
|
var vacationAllocations = await _unitOfWork.OrderAllocation.GetUserAllocations(entity.UserId, 1, 1, entity.Id, DateTime.Now.Year);
|
|
var remainVacations = vacationAllocations;
|
|
var remainVacations = vacationAllocations;
|
|
- response.Vacations = remainVacations == null ? "" : remainVacations.NumberOfDays + " / " + entity.VacationDays;
|
|
|
|
|
|
+ response.RestVacations = remainVacations == null ? entity.VacationDays : remainVacations.NumberOfDays;
|
|
|
|
+ response.SpentVacations = entity.VacationDays - response.RestVacations;
|
|
//__-----------Order Requests----
|
|
//__-----------Order Requests----
|
|
var orderRequestsList = await _unitOfWork.OrderRequest.GetAllUserOrdersAsync(entity.UserId, contractId);
|
|
var orderRequestsList = await _unitOfWork.OrderRequest.GetAllUserOrdersAsync(entity.UserId, contractId);
|
|
var orderList = MapperObject.Mapper.Map<List<OrderRequestDto>>(orderRequestsList.Item1);
|
|
var orderList = MapperObject.Mapper.Map<List<OrderRequestDto>>(orderRequestsList.Item1);
|