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.LeftWorkAgg;
using Company.Domain.LeftWorkTempAgg;
using Company.Domain.RollCallAgg;
using Company.Domain.RollCallEmployeeAgg;
using Company.Domain.RollCallEmployeeStatusAgg;
using Company.Domain.WorkshopAgg;
@@ -34,9 +35,11 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
private readonly IContractRepository _contractRepository;
private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository;
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;
_leftWorkRepository = leftWorkRepository;
@@ -47,87 +50,103 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
_contractRepository = contractRepository;
_rollCallEmployeeStatusRepository = rollCallEmployeeStatusRepository;
_rollCallEmployeeRepository = rollCallEmployeeRepository;
}
_rollCallRepository = rollCallRepository;
}
public async Task<OperationResult> Create(CreateLeftWorkTemp command)
{
var op = new OperationResult();
public async Task<OperationResult> Create(CreateLeftWorkTemp command)
{
var op = new OperationResult();
foreach (var employeeId in command.EmployeeIds)
{
#region Validation
foreach (var employeeId in command.EmployeeIds)
{
#region Validation
if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false)
{
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
}
if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingDateGr) == false)
{
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
}
if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false)
{
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
}
if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingDateGr) == false)
{
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
}
var leftWork = await _leftWorkRepository.GetLastLeftWork(employeeId, command.WorkshopId);
var leftWork = await _leftWorkRepository.GetLastLeftWork(employeeId, command.WorkshopId);
if (lastDayStandingDateGr.AddDays(1).Date != leftWorkDateGr)
{
return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند");
}
if (lastDayStandingDateGr.AddDays(1).Date != leftWorkDateGr)
{
return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند");
}
if (leftWork == null)
{
return op.Failed("شروع به کار پرسنل یافت نشد");
}
if (leftWork == null)
{
return op.Failed("شروع به کار پرسنل یافت نشد");
}
if (leftWork.HasLeft)
{
return op.Failed("پرسنل وارد شده قبلا ترک کار ثبت شده است");
}
if (leftWork.HasLeft)
{
return op.Failed("پرسنل وارد شده قبلا ترک کار ثبت شده است");
}
if (leftWork.StartWorkDate > lastDayStandingDateGr)
{
return op.Failed("تاریخ ثبت شده قبل از شروع به کار است");
}
if (leftWork.StartWorkDate > lastDayStandingDateGr)
{
return op.Failed("تاریخ ثبت شده قبل از شروع به کار است");
}
if (leftWork.WorkshopId != command.WorkshopId || leftWork.EmployeeId != employeeId)
{
return op.Failed("اطلاعات وارد شده نامعتبر است");
}
if (leftWork.WorkshopId != command.WorkshopId || leftWork.EmployeeId != employeeId)
{
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)
//{
// return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد");
//}
//if (leftWork.StartWorkDate >= leftWorkDateGr)
//{
// return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد");
//}
//if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
// x.WorkshopId == leftWorkTemp.WorkshopId &&
// x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
//{
// return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای فیش حقوقی میباشد. ابتدا فیش حقوقی پرسنل را حذف کنید ");
//}
//if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
// x.WorkshopId == leftWorkTemp.WorkshopId &&
// x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
//{
// return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای فیش حقوقی میباشد. ابتدا فیش حقوقی پرسنل را حذف کنید ");
//}
//if (_contractRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
// x.WorkshopIds == leftWorkTemp.WorkshopId &&
// x.ContarctStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
//{
// return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای قرارداد میباشد");
//}
//if (_contractRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
// x.WorkshopIds == leftWorkTemp.WorkshopId &&
// x.ContarctStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
//{
// return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای قرارداد میباشد");
//}
#endregion
#endregion
var leftWorkTemp = LeftWorkTemp.CreateLeftWork(leftWork.id, leftWork.StartWorkDate, leftWorkDateGr, lastDayStandingDateGr,
command.WorkshopId, employeeId, leftWork.JobId);
var leftWorkTemp = LeftWorkTemp.CreateLeftWork(leftWork.id, leftWork.StartWorkDate, leftWorkDateGr, lastDayStandingDateGr,
command.WorkshopId, employeeId, leftWork.JobId);
var rollCallEmployee =
_rollCallEmployeeRepository.GetByEmployeeIdAndWorkshopId(employeeId, leftWork.WorkshopId);
if (rollCallEmployee != null)
{
var employeeStatus =
_rollCallEmployeeStatusRepository.GetByRollCallEmployeeIdAndDate(
rollCallEmployee.Id, leftWorkDateGr);
await _leftWorkTempRepository.CreateAsync(leftWorkTemp);
}
employeeStatus?.Deactivate(leftWorkDateGr);
}
await _leftWorkTempRepository.SaveChangesAsync();
return op.Succcedded();
}
await _leftWorkTempRepository.CreateAsync(leftWorkTemp);
public Task<GetStartWorkTempDetails> GetStartAndLeftWorkDetails(long employeeId, long workshopId)
}
await _leftWorkTempRepository.SaveChangesAsync();
return op.Succcedded();
}
public Task<GetStartWorkTempDetails> GetStartAndLeftWorkDetails(long employeeId, long workshopId)
{
return _leftWorkTempRepository.GetStartAndLeftWorkDetails(employeeId, workshopId);
}
@@ -215,7 +234,12 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد");
}
if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
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 &&
x.WorkshopId == leftWorkTemp.WorkshopId &&
x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
{