From efcf40eea80bf63c02d6b1ceefd143060f9af1d9 Mon Sep 17 00:00:00 2001 From: mahan Date: Mon, 29 Dec 2025 16:24:36 +0330 Subject: [PATCH] feat: add method to retrieve working employees select list by workshop ID --- .../Repository/EmployeeRepository .cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) 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