diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs
index c0daaa97..7d7dbcfb 100644
--- a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs
+++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs
@@ -39,7 +39,10 @@ public class CreateCheckoutListViewModel
public string Description { get; set; }
-
+ ///
+ /// آیا پرسنل اجازه ایجاد قرارداد دارد
+ ///
+ public bool EmployeeHasCreateCheckout { get; set; }
public List CreateCheckoutList { get; set; }
}
\ No newline at end of file
diff --git a/CompanyManagment.Application/EmployeeComputeOptionsApplication.cs b/CompanyManagment.Application/EmployeeComputeOptionsApplication.cs
index 67f792a3..d7becaf1 100644
--- a/CompanyManagment.Application/EmployeeComputeOptionsApplication.cs
+++ b/CompanyManagment.Application/EmployeeComputeOptionsApplication.cs
@@ -21,8 +21,16 @@ public class EmployeeComputeOptionsApplication : IEmployeeComputeOptionsApplicat
public OperationResult Create(CreateEmployeeComputeOptions command)
{
+
var opration = new OperationResult();
- try
+ if (command.CreateContract && command.ContractTerm != "1" && command.CutContractEndOfYear == IsActive.None)
+ return opration.Failed("لطفا تعیین کنید که قراداد منتهی به پایان سال یاشد یا نباشد");
+
+ if (command.ContractTerm == "1")
+ command.CutContractEndOfYear = IsActive.None;
+
+
+ try
{
if (_employeeComputeOptionsRepository.Exists(x =>
x.EmployeeId == command.EmployeeId && x.WorkshopId == command.WorkshopId))
diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
index 619ee3c9..162eaec7 100644
--- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
+++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
@@ -217,7 +217,15 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
checkout => checkout.ContractId,
(contractWorkshopEmployeeleftWorkPersonnelCode, checkout) =>
new { contractWorkshopEmployeeleftWorkPersonnelCode, checkout })
- .ToList();
+
+ .GroupJoin(_context.EmployeeComputeOptionsSet.Where(o => o.WorkshopId == workshopId),
+ x => x.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork.leftwork.EmployeeId,
+ option => option.EmployeeId,
+ (x, options) => new { x.checkout, x.contractWorkshopEmployeeleftWorkPersonnelCode, options })
+ .SelectMany(
+ x => x.options.DefaultIfEmpty(),
+ (x, option) => new { x.checkout, x.contractWorkshopEmployeeleftWorkPersonnelCode, option })
+ .ToList();
Console.WriteLine("query : " + timer.Elapsed);
timer.Reset();
timer.Start();
@@ -249,8 +257,9 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
LaterThanEnd = false,
Extension = false,
Description = "دارای فیش حقوقی",
- HasCheckout = true
- };
+ HasCheckout = true,
+ EmployeeHasCreateCheckout = true
+ };
}
var employeeJoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
.contractWorkshopEmployee.employee.id;
@@ -469,10 +478,12 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
Description = description,
ContractStart = contractStart,
ContractEnd = contractEnd,
- LeftWorkDate = leftWorkDate
- };
+ LeftWorkDate = leftWorkDate,
+ EmployeeHasCreateCheckout = result.option != null ? result.option.CreateCheckout : result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork.contractWorkshopEmployee.contractWorkshop.workshop.CreateCheckout
- }).OrderByDescending(x => x.Extension).ToList();
+ };
+
+ }).Where(x=>x.EmployeeHasCreateCheckout).OrderByDescending(x => x.Extension).ToList();