HasRollCall Method Changeed

This commit is contained in:
gozareshgir
2026-02-01 13:20:22 +03:30
parent b088d3089d
commit e2bab8c1ce

View File

@@ -82,25 +82,45 @@ public class RollCallEmployeeRepository : RepositoryBase<long, RollCallEmployee>
var service = _rollCallServiceRepository.GetAllServiceByWorkshopId(workshopId);
//اگر سرویس حضور غیاب نداشت
if (!service.Any(x => x.StartService.Date <= contractStart.Date && x.EndService.Date >= contractEnd.Date))
return false;
//var rollCallEmployee = GetByEmployeeIdAndWorkshopId(employeeId, workshopId);
//if (rollCallEmployee == null)
// return false;
var rollCallEmployee = _context.RollCallEmployees
.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId)
.Include(x => x.EmployeesStatus);
if (!rollCallEmployee.Any())
var rollCallEmployee = _context.RollCallEmployees.Include(xs => xs.EmployeesStatus)
.FirstOrDefault(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId);
//اگر تنظیمات حضور غیاب نداشت
if (rollCallEmployee == null)
return false;
var a = rollCallEmployee.Any(x => x.EmployeesStatus.Any(s =>
(s.StartDate <= contractStart.Date && s.EndDate.Date >= contractEnd.Date) ||
(s.StartDate.Date <= contractStart.Date && s.EndDate.Date > contractStart.Date)));
//var result = _employeeRollCallStatusRepository.w(x => x.RollCallEmployeeId == rollCallEmployee.Id &&
// (x.StartDate.Date <= contractStart.Date && x.EndDate.Date >= contractEnd.Date) ||
// (x.StartDate.Date <= contractStart.Date && x.EndDate.Date > contractStart.Date));
return a;
//اگر استاتوس نداشت
if (!rollCallEmployee.EmployeesStatus.Any())
return false;
var leftWork =
_context.LeftWorkList.FirstOrDefault(x =>
x.StartWorkDate <= contractEnd.Date && x.LeftWorkDate > contractStart);
if (leftWork == null)
return false;
var status = rollCallEmployee.EmployeesStatus.FirstOrDefault(s =>
(s.StartDate <= contractStart.Date && s.EndDate.Date >= contractEnd.Date));
//اگر استاتوس کامل پوشش داد
if (status != null)
return true;
status = rollCallEmployee.EmployeesStatus.FirstOrDefault(s =>
(s.StartDate.Date <= contractStart.Date && s.EndDate.Date > contractStart.Date &&
s.EndDate.Date < contractEnd.Date));
//اگر قبل از پایان فیس استاتوس قطع شده ولی ترک کار داره
if (status != null && leftWork.HasLeft)
return true;
return false;
}
public List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId)
{