fix : admin monthly overview

This commit is contained in:
MahanCh
2025-07-02 18:02:11 +03:30
parent 53061f29b7
commit 0ed24dff45

View File

@@ -245,24 +245,51 @@ public class AdminMonthlyOverviewRepository : RepositoryBase<long, AdminMonthlyO
var workingCheckoutEmployeeIds = GetWorkingCheckoutEmployeeIds(workshopIds, targetStartDate, targetEndDate, vipGroup);
var workingContractEmployeeIds = _companyContext.LeftWorkList.AsNoTracking().
GroupJoin(_companyContext.EmployeeComputeOptionsSet.Where(o => workshopIds.Contains(o.WorkshopId)),
//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 <= targetEndDate &&
// x.leftWork.LeftWorkDate.AddDays(-1) >= targetStartDate &&
// x.contract.ContarctStart <= targetEndDate &&
// x.contract.ContractEnd >= targetStartDate &&
// !vipGroup.Contains(x.leftWork.EmployeeId) &&
// !_companyContext.EmployeeClientTemps
// .Any(temp => temp.EmployeeId == x.leftWork.EmployeeId && temp.WorkshopId == x.leftWork.WorkshopId)
// )
// .Select(x => new { x.leftWork.WorkshopId, x.leftWork.EmployeeId });
var workingContractEmployeeIds = _companyContext.LeftWorkList.AsNoTracking()
.Where(x => workshopIds.Contains(x.WorkshopId) && x.StartWorkDate <= nextEndMonth && x.LeftWorkDate.AddDays(-1) >= nextStartMonth &&
!vipGroup.Contains(x.EmployeeId) &&
!_companyContext.EmployeeClientTemps
.Any(temp => temp.EmployeeId == x.EmployeeId && temp.WorkshopId == x.WorkshopId))
.GroupJoin(_companyContext.EmployeeComputeOptionsSet.Where(o => workshopIds.Contains(o.WorkshopId)),
x => new { x.EmployeeId, x.WorkshopId },
option => new { option.EmployeeId, option.WorkshopId },
(x, options) => new { LeftWork = x, options })
.SelectMany(
x => x.options.DefaultIfEmpty(),
(x, option) => new { x.LeftWork, option })
.Where(x => workshopIds.Contains(x.LeftWork.WorkshopId) && x.LeftWork.StartWorkDate <= nextEndMonth && x.LeftWork.LeftWorkDate.AddDays(-1) >= nextStartMonth &&
!vipGroup.Contains(x.LeftWork.EmployeeId) &&
!_companyContext.EmployeeClientTemps
.Any(temp => temp.EmployeeId == x.LeftWork.EmployeeId && temp.WorkshopId == x.LeftWork.WorkshopId) &&
x.option != null ?
x.option.CreateCheckout
: x.LeftWork.Workshop.CreateCheckout)
.Where(x => x.option != null ? x.option.CreateContract
: x.LeftWork.Workshop.CreateContract)
.Select(x => new { x.LeftWork.WorkshopId, x.LeftWork.EmployeeId });
//var workingContractEmployeeIds = _companyContext.LeftWorkList.AsNoTracking()
// .Where(x => workshopIds.Contains(x.WorkshopId) && x.StartWorkDate <= nextEndMonth && x.LeftWorkDate.AddDays(-1) >= nextStartMonth &&
// !vipGroup.Contains(x.EmployeeId) &&
// !_companyContext.EmployeeClientTemps
// .Any(temp => temp.EmployeeId == x.EmployeeId && temp.WorkshopId == x.WorkshopId)
// ).Select(x => new { x.WorkshopId, x.EmployeeId });
var contractSet = (await _companyContext.Contracts.AsNoTracking()
.Where(x => x.ContarctStart <= nextEndMonth && x.ContractEnd >= nextStartMonth && workshopIds.Contains(x.WorkshopIds))
.Select(x => new { x.WorkshopIds, x.EmployeeId })
@@ -370,7 +397,8 @@ public class AdminMonthlyOverviewRepository : RepositoryBase<long, AdminMonthlyO
// ? x.option.CreateCheckout
// : x.leftWork.Workshop.CreateCheckout
// )
// .Select(x => new { x.leftWork.WorkshopId, x.leftWork.EmployeeId });
// .Select(x => new { x.leftWork.WorkshopId, x.leftWork.EmployeeId }).AsEnumerable()
// .Select(x=>(x.WorkshopId,x.EmployeeId)).ToList();
var chcekoutLeftWorks = _companyContext.LeftWorkList