change current day mannual edit validaton

This commit is contained in:
MahanCh
2025-04-22 18:13:09 +03:30
parent aff835fd7f
commit 671f6be87a

View File

@@ -336,15 +336,19 @@ public class RollCallApplication : IRollCallApplication
public OperationResult ManualEdit(CreateOrEditEmployeeRollCall command)
{
var operation = new OperationResult();
var now = DateTime.Now;
DateTime date = command.DateFa.ToGeorgianDateTime();
if (date == Tools.GetUndefinedDateTime())
return operation.Failed("فرمت تاریخ وارد شده صحیح نمی باشد");
if (date >= DateTime.Now.Date)
{
return operation.Failed("امکان اضافه کردن حضور غیاب برای روز جاری و روز های آینده وجود ندارد");
}
//if (date >= DateTime.Now.Date)
//{
// return operation.Failed("امکان اضافه کردن حضور غیاب برای روز جاری و روز های آینده وجود ندارد");
//}
var twoDaysEarlier = date.AddDays(-2).Date;
var twoDaysLater = date.AddDays(2).Date >= DateTime.Today
@@ -407,8 +411,8 @@ public class RollCallApplication : IRollCallApplication
if (startDateTime >= endDateTime)
return operation.Failed("زمان ورود نمی تواند بعد یا مساوی زمان خروج باشد");
if (endDateTime.Date >= DateTime.Today)
return operation.Failed("نمی توانید برای روز جاری یا روز های آینده حضور غیاب ثبت کنید");
//if (endDateTime.Date >= DateTime.Today)
// return operation.Failed("نمی توانید برای روز جاری یا روز های آینده حضور غیاب ثبت کنید");
var rollCall = new EditRollCall
{
@@ -420,7 +424,10 @@ public class RollCallApplication : IRollCallApplication
}
if (newRollCallDates.Any(x => x.StartDate >= now || x.EndDate >= now))
{
return operation.Failed("حضورغیاب وارد شده نمیتواند در آینده باشد");
}
if (newRollCallDates.Any(x => newRollCallDates.Any(y => x != y && x.EndDate >= y.StartDate && x.StartDate <= y.EndDate)))
return operation.Failed("بازه های وارد شده با هم تداخل دارند");
@@ -447,7 +454,7 @@ public class RollCallApplication : IRollCallApplication
{
x.ShiftDate =
_rollCallDomainService.GetEmployeeShiftDateByRollCallStartDate(command.WorkshopId, command.EmployeeId,
x.StartDate!.Value,x.EndDate!.Value);
x.StartDate!.Value,x.EndDate.Value);
});
if (newRollCallDates.Any(x => x.ShiftDate.Date != date.Date))
@@ -455,14 +462,13 @@ public class RollCallApplication : IRollCallApplication
return operation.Failed("حضور غیاب در حال ویرایش را نمیتوانید از تاریخ شیفت عقب تر یا جلو تر ببرید");
}
if (new TimeSpan(newRollCallDates.Sum(x => (x.EndDate.Value - x.StartDate.Value).Ticks)) > TimeSpan.FromHours(26))
{
return operation.Failed("بازه حضور پرسنل نمی تواند بیشتر از 26 ساعت باشد");
}
if (new TimeSpan(newRollCallDates.Sum(x => (x.EndDate.Value - x.StartDate.Value).Ticks)) > TimeSpan.FromHours(26))
{
return operation.Failed("بازه حضور پرسنل نمی تواند بیشتر از 26 ساعت باشد");
}
if (newRollCallDates.Any(x => employeeRollCalls.Any(y =>
if (newRollCallDates.Any(x => employeeRollCalls.Any(y =>
y.StartDate.Value.Date != command.DateFa.ToGeorgianDateTime().Date &&
x.EndDate >= y.StartDate.Value && x.StartDate <= y.EndDate.Value)))
return operation.Failed("بازه های وارد شده با حضور غیاب های مربوط به روز های قبل و بعد تداخل زمانی دارد");
@@ -496,26 +502,27 @@ public class RollCallApplication : IRollCallApplication
_rollCallRepository.AddRange(rollCallsAsEntityModels);
_rollCallRepository.SaveChanges();
foreach (var rollCallsAsEntityModel in rollCallsAsEntityModels)
{
rollCallsAsEntityModel.Edit(rollCallsAsEntityModel.StartDate.Value, rollCallsAsEntityModel.EndDate.Value, _rollCallDomainService);
}
_rollCallRepository.SaveChanges();
return operation.Succcedded();
}
public OperationResult ManualEditForUndefined(CreateOrEditEmployeeRollCall command)
{
var operation = new OperationResult();
var now = DateTime.Now;
DateTime date = command.DateFa.ToGeorgianDateTime();
if (date == Tools.GetUndefinedDateTime())
return operation.Failed("فرمت تاریخ وارد شده صحیح نمی باشد");
if (date >= DateTime.Now.Date)
{
return operation.Failed("امکان اضافه کردن حضور غیاب برای روز جاری و روز های آینده وجود ندارد");
}
//if (date >= DateTime.Now.Date)
//{
// return operation.Failed("امکان اضافه کردن حضور غیاب برای روز جاری و روز های آینده وجود ندارد");
//}
var twoDaysEarlier = date.AddDays(-2).Date;
var twoDaysLater = date.AddDays(2).Date >= DateTime.Today
@@ -578,8 +585,8 @@ public class RollCallApplication : IRollCallApplication
if (startDateTime >= endDateTime)
return operation.Failed("زمان ورود نمی تواند بعد یا مساوی زمان خروج باشد");
if (endDateTime.Date >= DateTime.Today)
return operation.Failed("نمی توانید برای روز جاری یا روز های آینده حضور غیاب ثبت کنید");
//if (endDateTime.Date >= DateTime.Today)
// return operation.Failed("نمی توانید برای روز جاری یا روز های آینده حضور غیاب ثبت کنید");
var rollCall = new EditRollCall
{
@@ -594,6 +601,12 @@ public class RollCallApplication : IRollCallApplication
{
});
if (newRollCallDates.Any(x => x.StartDate >= now || x.EndDate >= now))
{
return operation.Failed("حضورغیاب وارد شده نمیتواند در آینده باشد");
}
if (newRollCallDates.Any(x => newRollCallDates.Any(y => x != y && x.EndDate >= y.StartDate && x.StartDate <= y.EndDate)))
return operation.Failed("بازه های وارد شده با هم تداخل دارند");
@@ -618,7 +631,7 @@ public class RollCallApplication : IRollCallApplication
{
x.ShiftDate =
_rollCallDomainService.GetEmployeeShiftDateByRollCallStartDate(command.WorkshopId, command.EmployeeId,
x.StartDate!.Value,x.EndDate!.Value);
x.StartDate!.Value,x.EndDate.Value);
});
if (newRollCallDates.Any(x => x.ShiftDate.Date != date.Date))
{
@@ -626,10 +639,10 @@ public class RollCallApplication : IRollCallApplication
}
if (new TimeSpan(newRollCallDates.Sum(x => (x.EndDate.Value - x.StartDate.Value).Ticks)) > TimeSpan.FromHours(26))
{
return operation.Failed("بازه حضور پرسنل نمی تواند بیشتر از 26 ساعت باشد");
return operation.Failed("بازه حضور پرسنل نمی تواند بیشتر از 26 ساعت باشد");
}
if (newRollCallDates.Any(x => employeeRollCalls.Any(y =>
if (newRollCallDates.Any(x => employeeRollCalls.Any(y =>
y.StartDate.Value.Date != command.DateFa.ToGeorgianDateTime().Date &&
x.EndDate >= y.StartDate.Value && x.StartDate <= y.EndDate.Value)))
return operation.Failed("بازه های وارد شده با حضور غیاب های مربوط به روز های قبل و بعد تداخل زمانی دارد");