Compare commits

...

1 Commits

Author SHA1 Message Date
6eba59fa7b set leftWork 2025-04-05 21:44:05 +03:30

View File

@@ -9,6 +9,7 @@ using Company.Domain.EmployeeAgg;
using Company.Domain.JobAgg; using Company.Domain.JobAgg;
using Company.Domain.LeftWorkAgg; using Company.Domain.LeftWorkAgg;
using Company.Domain.LeftWorkTempAgg; using Company.Domain.LeftWorkTempAgg;
using Company.Domain.RollCallAgg;
using Company.Domain.RollCallEmployeeAgg; using Company.Domain.RollCallEmployeeAgg;
using Company.Domain.RollCallEmployeeStatusAgg; using Company.Domain.RollCallEmployeeStatusAgg;
using Company.Domain.WorkshopAgg; using Company.Domain.WorkshopAgg;
@@ -34,9 +35,11 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
private readonly IContractRepository _contractRepository; private readonly IContractRepository _contractRepository;
private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository; private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository;
private readonly IRollCallEmployeeStatusRepository _rollCallEmployeeStatusRepository; private readonly IRollCallEmployeeStatusRepository _rollCallEmployeeStatusRepository;
private readonly IRollCallRepository _rollCallRepository;
public LeftWorkTempApplication(ILeftWorkTempRepository leftWorkTempRepository, ILeftWorkRepository leftWorkRepository, IWorkshopRepository workshopRepository, IEmployeeRepository employeeRepository, IJobRepository jobRepository, ICheckoutRepository checkoutRepository, IContractRepository contractRepository, IRollCallEmployeeStatusRepository rollCallEmployeeStatusRepository, IRollCallEmployeeRepository rollCallEmployeeRepository)
public LeftWorkTempApplication(ILeftWorkTempRepository leftWorkTempRepository, ILeftWorkRepository leftWorkRepository, IWorkshopRepository workshopRepository, IEmployeeRepository employeeRepository, IJobRepository jobRepository, ICheckoutRepository checkoutRepository, IContractRepository contractRepository, IRollCallEmployeeStatusRepository rollCallEmployeeStatusRepository, IRollCallEmployeeRepository rollCallEmployeeRepository, IRollCallRepository rollCallRepository)
{ {
_leftWorkTempRepository = leftWorkTempRepository; _leftWorkTempRepository = leftWorkTempRepository;
_leftWorkRepository = leftWorkRepository; _leftWorkRepository = leftWorkRepository;
@@ -47,6 +50,7 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
_contractRepository = contractRepository; _contractRepository = contractRepository;
_rollCallEmployeeStatusRepository = rollCallEmployeeStatusRepository; _rollCallEmployeeStatusRepository = rollCallEmployeeStatusRepository;
_rollCallEmployeeRepository = rollCallEmployeeRepository; _rollCallEmployeeRepository = rollCallEmployeeRepository;
_rollCallRepository = rollCallRepository;
} }
public async Task<OperationResult> Create(CreateLeftWorkTemp command) public async Task<OperationResult> Create(CreateLeftWorkTemp command)
@@ -93,6 +97,10 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
return op.Failed("اطلاعات وارد شده نامعتبر است"); return op.Failed("اطلاعات وارد شده نامعتبر است");
} }
if (_rollCallRepository.Exists(x => x.ShiftDate >= leftWorkDateGr && x.EmployeeId == leftWork.EmployeeId && x.WorkshopId == leftWork.WorkshopId))
{
return op.Failed("در تاریخ ترک کار وارد شده یا جلوتر ، پرسنل دارای حضورغیاب میباشد. لطفا اول حضور غیاب های پرسنل را حذف نمایید");
}
//if (leftWork.StartWorkDate >= leftWorkDateGr) //if (leftWork.StartWorkDate >= leftWorkDateGr)
@@ -119,8 +127,19 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
var leftWorkTemp = LeftWorkTemp.CreateLeftWork(leftWork.id, leftWork.StartWorkDate, leftWorkDateGr, lastDayStandingDateGr, var leftWorkTemp = LeftWorkTemp.CreateLeftWork(leftWork.id, leftWork.StartWorkDate, leftWorkDateGr, lastDayStandingDateGr,
command.WorkshopId, employeeId, leftWork.JobId); command.WorkshopId, employeeId, leftWork.JobId);
var rollCallEmployee =
_rollCallEmployeeRepository.GetByEmployeeIdAndWorkshopId(employeeId, leftWork.WorkshopId);
if (rollCallEmployee != null)
{
var employeeStatus =
_rollCallEmployeeStatusRepository.GetByRollCallEmployeeIdAndDate(
rollCallEmployee.Id, leftWorkDateGr);
employeeStatus?.Deactivate(leftWorkDateGr);
}
await _leftWorkTempRepository.CreateAsync(leftWorkTemp); await _leftWorkTempRepository.CreateAsync(leftWorkTemp);
} }
await _leftWorkTempRepository.SaveChangesAsync(); await _leftWorkTempRepository.SaveChangesAsync();
@@ -215,6 +234,11 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد"); return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد");
} }
if (_rollCallRepository.Exists(x => x.ShiftDate >= leftWorkDateGr && x.EmployeeId == leftWork.EmployeeId && x.WorkshopId == leftWork.WorkshopId))
{
return op.Failed("در تاریخ ترک کار وارد شده یا جلوتر ، پرسنل دارای حضورغیاب میباشد. لطفا اول حضور غیاب های پرسنل را حذف نمایید");
}
if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId && if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
x.WorkshopId == leftWorkTemp.WorkshopId && x.WorkshopId == leftWorkTemp.WorkshopId &&
x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr)) x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))