change amo logic

This commit is contained in:
2025-05-27 12:47:19 +03:30
parent 86a3a21d5b
commit 0ec62e5e83

View File

@@ -234,11 +234,23 @@ public class AdminMonthlyOverviewRepository : RepositoryBase<long, AdminMonthlyO
private async Task UpdateAdminMonthlyOverviewStatus(int year, int month, List<long> workshopIds, DateTime targetDate, DateTime nextMonth)
{
var workingCheckoutEmployeeIds = _companyContext.LeftWorkList.AsNoTracking()
.Where(x => workshopIds.Contains(x.WorkshopId) && x.StartWorkDate <= targetDate && x.LeftWorkDate.AddDays(-1) >= targetDate)
.Select(x => new { x.WorkshopId, x.EmployeeId });
var workingCheckoutEmployeeIds = _companyContext.LeftWorkList.AsNoTracking()
.Join(
_companyContext.Contracts.AsNoTracking(),
leftWork => new { leftWork.EmployeeId, WorkshopId = leftWork.WorkshopId },
contract => new { contract.EmployeeId, WorkshopId = contract.WorkshopIds },
(leftWork, contract) => new { leftWork, contract }
)
.Where(x =>
workshopIds.Contains(x.leftWork.WorkshopId) &&
x.leftWork.StartWorkDate <= targetDate &&
x.leftWork.LeftWorkDate.AddDays(-1) >= targetDate &&
x.contract.ContarctStart <= targetDate &&
x.contract.ContractEnd >= targetDate
)
.Select(x => new { x.leftWork.WorkshopId, x.leftWork.EmployeeId });
var workingContractEmployeeIds = _companyContext.LeftWorkList.AsNoTracking()
var workingContractEmployeeIds = _companyContext.LeftWorkList.AsNoTracking()
.Where(x => workshopIds.Contains(x.WorkshopId) && x.StartWorkDate <= nextMonth && x.LeftWorkDate.AddDays(-1) >= nextMonth)
.Select(x => new { x.WorkshopId, x.EmployeeId });