From 4a041ca8e2e30cb4d52b92fd165471e57a1f4e75 Mon Sep 17 00:00:00 2001 From: mahan Date: Wed, 3 Dec 2025 12:10:48 +0330 Subject: [PATCH] add condition for null rollcall employee in IfEmloyeeHasNewLeftWorkDateAddEndDateToRollCallStatus --- .../LeftWorkTempApplication.cs | 49 ++++++++++--------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/CompanyManagment.Application/LeftWorkTempApplication.cs b/CompanyManagment.Application/LeftWorkTempApplication.cs index 3f2b2dab..75a27a98 100644 --- a/CompanyManagment.Application/LeftWorkTempApplication.cs +++ b/CompanyManagment.Application/LeftWorkTempApplication.cs @@ -290,8 +290,34 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication //get rollCallEmployee associated with those leftworks which have a higher end date than leftworkDate + var rollCallsEmployee = _rollCallEmployeeRepository.GetBy(employeeId, workshopId); + if (rollCallsEmployee != null) + { + var status = rollCallsEmployee.EmployeesStatus.OrderByDescending(z => z.StartDate) + .FirstOrDefault(rollCallEmployeeStatus => rollCallEmployeeStatus.StartDate.Date < maxLeftWork.LeftWorkDateGr + && rollCallEmployeeStatus.EndDate.Date > + maxLeftWork.LeftWorkDateGr); + + if (status != null) + { + var adjust = new AdjustRollCallEmployeesWithEmployeeLeftWork() + { + LeaveDate = maxLeftWork.LeftWorkDateGr, + RollCallStatusId = status.id + }; + _rollCallEmployeeStatusRepository.AdjustRollCallStatusEndDates([adjust]); + } + + var rollCallEmployeeStatusList = rollCallsEmployee.EmployeesStatus + .Where(x => x.StartDate >= maxLeftWork.LeftWorkDateGr).ToList(); + if (rollCallEmployeeStatusList.Any()) + { + _rollCallEmployeeStatusRepository.RemoveRange(rollCallEmployeeStatusList); + _rollCallEmployeeStatusRepository.SaveChanges(); + } + } // var joinedList = rollCallsEmployee.Join(leftWorks, x => x.WorkshopId, y => y.WorkshopId, (x, y) => new // { // x.WorkshopId, @@ -301,27 +327,6 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication // }); - var status = rollCallsEmployee.EmployeesStatus.OrderByDescending(z => z.StartDate) - .FirstOrDefault(rollCallEmployeeStatus => rollCallEmployeeStatus.StartDate.Date < maxLeftWork.LeftWorkDateGr - && rollCallEmployeeStatus.EndDate.Date > - maxLeftWork.LeftWorkDateGr); - - if (status != null) - { - var adjust = new AdjustRollCallEmployeesWithEmployeeLeftWork() - { - LeaveDate = maxLeftWork.LeftWorkDateGr, - RollCallStatusId = status.id - }; - _rollCallEmployeeStatusRepository.AdjustRollCallStatusEndDates([adjust]); - } - - var rollCallEmployeeStatusList = rollCallsEmployee.EmployeesStatus - .Where(x => x.StartDate >= maxLeftWork.LeftWorkDateGr).ToList(); - if (rollCallEmployeeStatusList.Any()) - { - _rollCallEmployeeStatusRepository.RemoveRange(rollCallEmployeeStatusList); - _rollCallEmployeeStatusRepository.SaveChanges(); - } + } } \ No newline at end of file