From acb572d94af5156a8851287b1f3077e4ebbf2618 Mon Sep 17 00:00:00 2001 From: MahanCh Date: Mon, 11 Aug 2025 13:05:55 +0330 Subject: [PATCH] fix admin monthly overview bug --- .../AdminMonthlyOverviewRepository.cs | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/AdminMonthlyOverviewRepository.cs b/CompanyManagment.EFCore/Repository/AdminMonthlyOverviewRepository.cs index adc86a98..a7ca7a2d 100644 --- a/CompanyManagment.EFCore/Repository/AdminMonthlyOverviewRepository.cs +++ b/CompanyManagment.EFCore/Repository/AdminMonthlyOverviewRepository.cs @@ -359,19 +359,33 @@ public class AdminMonthlyOverviewRepository : RepositoryBase g.Data.All(emp => contractSet.Contains((emp.WorkshopId, emp.EmployeeId)))) - .Select(g => g.WorkshopId) + // var workshopsWithFullContracts = workingContractGrouping + // .Where(g => g.Data.All(emp => contractSet.Contains((emp.WorkshopId, emp.EmployeeId)))) + // .Select(g => g.WorkshopId) + // .ToList(); + + var workshopsWithFullContracts = workshopIds + .Where(workshopId => + { + var group = workingContractGrouping.FirstOrDefault(x => x.WorkshopId == workshopId); + return group == null || group.Data.All(emp => contractSet.Contains((emp.WorkshopId, emp.EmployeeId))); + }) .ToList(); var list = workingContractEmployeeIds.ToList().Where(x => !contractSet.Any(a => a.EmployeeId == x.EmployeeId && a.WorkshopIds == x.WorkshopId)).ToList(); - var workshopsWithFullCheckout = workingCheckoutGrouping - .Where(g => g.All(emp => checkoutSet.Contains((emp.WorkshopId, emp.EmployeeId)))) - .Select(g => g.Key) + // var workshopsWithFullCheckout = workingCheckoutGrouping + // .Where(g => g.All(emp => checkoutSet.Contains((emp.WorkshopId, emp.EmployeeId)))) + // .Select(g => g.Key) + // .ToList(); + var workshopsWithFullCheckout = workshopIds + .Where(workshopId => + { + var group = workingCheckoutGrouping.FirstOrDefault(x => x.Key == workshopId); + return group == null || group.All(emp => contractSet.Contains((emp.WorkshopId, emp.EmployeeId))); + }) .ToList(); - var fullyCoveredWorkshops = workshopsWithFullContracts.Intersect(workshopsWithFullCheckout).ToList(); //var notFullyCoveredWorkshops = groupedCheckout