Compare commits
1 Commits
master
...
Feature/se
| Author | SHA1 | Date | |
|---|---|---|---|
| 6eba59fa7b |
@@ -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,87 +50,103 @@ 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)
|
||||||
{
|
{
|
||||||
var op = new OperationResult();
|
var op = new OperationResult();
|
||||||
|
|
||||||
foreach (var employeeId in command.EmployeeIds)
|
foreach (var employeeId in command.EmployeeIds)
|
||||||
{
|
{
|
||||||
#region Validation
|
#region Validation
|
||||||
|
|
||||||
if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false)
|
if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false)
|
||||||
{
|
{
|
||||||
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
|
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
|
||||||
}
|
}
|
||||||
if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingDateGr) == false)
|
if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingDateGr) == false)
|
||||||
{
|
{
|
||||||
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
|
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)
|
if (lastDayStandingDateGr.AddDays(1).Date != leftWorkDateGr)
|
||||||
{
|
{
|
||||||
return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند");
|
return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (leftWork == null)
|
if (leftWork == null)
|
||||||
{
|
{
|
||||||
return op.Failed("شروع به کار پرسنل یافت نشد");
|
return op.Failed("شروع به کار پرسنل یافت نشد");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (leftWork.HasLeft)
|
if (leftWork.HasLeft)
|
||||||
{
|
{
|
||||||
return op.Failed("پرسنل وارد شده قبلا ترک کار ثبت شده است");
|
return op.Failed("پرسنل وارد شده قبلا ترک کار ثبت شده است");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (leftWork.StartWorkDate > lastDayStandingDateGr)
|
if (leftWork.StartWorkDate > lastDayStandingDateGr)
|
||||||
{
|
{
|
||||||
return op.Failed("تاریخ ثبت شده قبل از شروع به کار است");
|
return op.Failed("تاریخ ثبت شده قبل از شروع به کار است");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (leftWork.WorkshopId != command.WorkshopId || leftWork.EmployeeId != employeeId)
|
if (leftWork.WorkshopId != command.WorkshopId || leftWork.EmployeeId != employeeId)
|
||||||
{
|
{
|
||||||
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)
|
||||||
|
//{
|
||||||
|
// return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد");
|
||||||
|
//}
|
||||||
|
|
||||||
//if (leftWork.StartWorkDate >= leftWorkDateGr)
|
//if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
|
||||||
//{
|
// x.WorkshopId == leftWorkTemp.WorkshopId &&
|
||||||
// return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد");
|
// x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
|
||||||
//}
|
//{
|
||||||
|
// return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای فیش حقوقی میباشد. ابتدا فیش حقوقی پرسنل را حذف کنید ");
|
||||||
|
//}
|
||||||
|
|
||||||
//if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
|
//if (_contractRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId &&
|
||||||
// x.WorkshopId == leftWorkTemp.WorkshopId &&
|
// x.WorkshopIds == leftWorkTemp.WorkshopId &&
|
||||||
// x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
|
// x.ContarctStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
|
||||||
//{
|
//{
|
||||||
// return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای فیش حقوقی میباشد. ابتدا فیش حقوقی پرسنل را حذف کنید ");
|
// 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,
|
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);
|
||||||
|
|
||||||
await _leftWorkTempRepository.CreateAsync(leftWorkTemp);
|
employeeStatus?.Deactivate(leftWorkDateGr);
|
||||||
}
|
}
|
||||||
|
|
||||||
await _leftWorkTempRepository.SaveChangesAsync();
|
await _leftWorkTempRepository.CreateAsync(leftWorkTemp);
|
||||||
return op.Succcedded();
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
return _leftWorkTempRepository.GetStartAndLeftWorkDetails(employeeId, workshopId);
|
||||||
}
|
}
|
||||||
@@ -215,7 +234,12 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
|
|||||||
return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد");
|
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.WorkshopId == leftWorkTemp.WorkshopId &&
|
||||||
x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
|
x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user