diff --git a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs index 5d82f0ca..0f708422 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs +++ b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs @@ -1286,5 +1286,30 @@ public class EmployeeRepository : RepositoryBase, IEmployeeRepos && x.EmployeeStatusInWorkshop != EmployeeStatusInWorkshop.LefWorkTemp) .Select(x => new PrintAllEmployeesInfoDtoClient(x)).ToList(); } + + public async Task> GetWorkingEmployeesSelectList(long workshopId) + { + var dateNow = DateTime.Now.Date; + + + var workshopActiveLeftWorksQuery = _context.LeftWorkList.Where(x => x.WorkshopId == workshopId && + x.StartWorkDate <= dateNow && x.LeftWorkDate > dateNow); + + + var workshopActiveInsuranceLeftWorksQuery = _context.LeftWorkInsuranceList.Where(x => x.WorkshopId == workshopId && + x.StartWorkDate <= dateNow && (x.LeftWorkDate > dateNow || x.LeftWorkDate == null)); + + + var employeesQuery = _context.Employees.Where(x => workshopActiveLeftWorksQuery.Any(y => y.EmployeeId == x.id) || + workshopActiveInsuranceLeftWorksQuery.Any(y => y.EmployeeId == x.id)); + + + return await employeesQuery.Select(x => new EmployeeSelectListViewModel() + { + Id = x.id, + EmployeeFullName = x.FullName + }).ToListAsync(); + } + #endregion } \ No newline at end of file