remove leftWork for rejected employeedocument rejected
This commit is contained in:
@@ -1035,28 +1035,10 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
|
||||
{
|
||||
var now = DateTime.Now;
|
||||
|
||||
// آمادهسازی activeEmployees یکبار با EF و انتقال به حافظه
|
||||
var activeEmployees = _companyContext.LeftWorkList
|
||||
.Where(x => workshops.Contains(x.WorkshopId) && x.LeftWorkDate.AddDays(-1) >= now)
|
||||
.Select(x => new { x.WorkshopId, x.EmployeeId });
|
||||
|
||||
var clientTemp = _companyContext.EmployeeClientTemps
|
||||
.Where(x => workshops.Contains(x.WorkshopId))
|
||||
.Select(x => new { x.WorkshopId, x.EmployeeId });
|
||||
|
||||
var leftWorkTemp = _companyContext.LeftWorkTemps
|
||||
.Where(x => workshops.Contains(x.WorkshopId))
|
||||
.Select(x => new { x.WorkshopId, x.EmployeeId });
|
||||
|
||||
// ترکیب کل لیستها در حافظه
|
||||
var allActiveEmployees = activeEmployees
|
||||
.Concat(clientTemp)
|
||||
.Concat(leftWorkTemp);
|
||||
|
||||
// دریافت فقط اطلاعات مورد نیاز
|
||||
var employeeDocumentsQuery = _companyContext.EmployeeDocuments
|
||||
.Where(x => workshops.Contains(x.WorkshopId)
|
||||
&& allActiveEmployees.Any(a=>a.WorkshopId == x.WorkshopId && a.EmployeeId == x.EmployeeId)
|
||||
&& x.IsSentToChecker == false
|
||||
&& x.HasRejectedItems)
|
||||
.Where(x => x.EmployeeDocumentItemCollection
|
||||
@@ -1104,29 +1086,10 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
|
||||
|
||||
public async Task<List<EmployeeDocumentsViewModel>> GetRejectedItemsByWorkshopIdAndRoleForAdminWorkFlow(long workshopId, long roleId)
|
||||
{
|
||||
var employeeIdsInWorkshop = await _companyContext.LeftWorkList
|
||||
.Where(x => x.WorkshopId == workshopId && x.LeftWorkDate.AddDays(-1) >= DateTime.Today)
|
||||
.Select(x => new { x.EmployeeId, FullName = x.Employee.FName + " " + x.Employee.LName })
|
||||
.Union(
|
||||
_companyContext.EmployeeClientTemps
|
||||
.Where(x => x.WorkshopId == workshopId)
|
||||
.Select(x => new { x.EmployeeId, FullName = x.EmployeeFullName })
|
||||
)
|
||||
.Union(
|
||||
_companyContext.LeftWorkTemps
|
||||
.Where(x => x.WorkshopId == workshopId)
|
||||
.Join(_companyContext.Employees, x => x.EmployeeId, e => e.id,
|
||||
(x, e) => new { x.EmployeeId, FullName = e.FName + " " + e.LName })
|
||||
)
|
||||
.Distinct()
|
||||
.ToListAsync();
|
||||
|
||||
var employeeIdList = employeeIdsInWorkshop.Select(x => x.EmployeeId).ToList();
|
||||
|
||||
var edItemsQuery = _companyContext.EmployeeDocumentItems
|
||||
.Where(x => x.WorkshopId == workshopId &&
|
||||
x.DocumentStatus == DocumentStatus.Rejected &&
|
||||
employeeIdList.Contains(x.EmployeeId) &&
|
||||
x.EmployeeDocuments.IsSentToChecker == false &&
|
||||
x.EmployeeDocuments.HasRejectedItems)
|
||||
.Include(x => x.EmployeeDocuments).AsSplitQuery();
|
||||
@@ -1165,6 +1128,9 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
|
||||
.Select(x => new MediaViewModel { Id = x.id, Path = x.Path })
|
||||
.ToListAsync();
|
||||
|
||||
var employeeIds = edItemsGrouped.Select(x => x.EmployeeId).ToList();
|
||||
|
||||
var employees = _companyContext.Employees.Where(x => employeeIds.Contains(x.id)).ToList();
|
||||
|
||||
|
||||
var result = edItemsGrouped.GroupBy(x => x.EmployeeId)
|
||||
@@ -1184,7 +1150,7 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
|
||||
StatusString = y.DocumentStatus.ToString()
|
||||
}).ToList();
|
||||
|
||||
var employeeInfo = employeeIdsInWorkshop.First(e => e.EmployeeId == x.Key);
|
||||
var employeeInfo = employees.First(e => e.id == x.Key);
|
||||
|
||||
//var requiredItemsUploaded = employeeLatestConfirmedDocuments
|
||||
// .Where(y => requiredDocs.Contains(y.DocumentItemLabel)).Select(y => y.DocumentItemLabel)
|
||||
|
||||
Reference in New Issue
Block a user