From 3f23d1dac07d773dd74d39dbf389438b2117b676 Mon Sep 17 00:00:00 2001 From: gozareshgir Date: Sat, 31 Jan 2026 17:08:24 +0330 Subject: [PATCH] saparation creatcheckout on api mehod changes --- .../Repository/CheckoutRepository.cs | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index 3290fed4..1321ab42 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -3929,7 +3929,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos foreach (var contract in seprationData) { - var leftWork = leftWorks.FirstOrDefault(x => x.EmployeeId == contract.EmployeeId && contract.ContarctStart <= x.LeftWorkDate && contract.ContractEnd >= x.StartWorkDate); + var leftWork = leftWorks.FirstOrDefault(x => x.EmployeeId == contract.EmployeeId && contract.ContarctStart < x.LeftWorkDate && contract.ContractEnd >= x.StartWorkDate); var start = new DateTime(); var end = new DateTime(); if (leftWork == null) @@ -3957,14 +3957,14 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos } var leftFirstDayOfNextMonth = end.AddDays(1); - if (leftWork.HasLeft && (leftWork.LeftWorkDate <= == leftFirstDayOfNextMonth) && + if (leftWork.HasLeft && leftWork.LeftWorkDate <= leftFirstDayOfNextMonth && leftWork.LeftWorkDate > start) { var ContractEnd = leftWork.LeftWorkDate.AddDays(-1); separation.Add(new ContractSeparationViewModel() { StartWorkDate = leftWork.StartWorkDate, - LeftWorkDate = leftWork.LeftWorkDate, + LeftWorkDate = ContractEnd, HasLeft = true, ContarctStart = start.ToFarsi(), ContractEnd = ContractEnd.ToFarsi(), @@ -3974,6 +3974,36 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos EmployeeId = contract.EmployeeId }); } + else if(leftWork.HasLeft && leftWork.LeftWorkDate > leftFirstDayOfNextMonth) + { + separation.Add(new ContractSeparationViewModel() + { + StartWorkDate = leftWork.StartWorkDate, + LeftWorkDate = leftWork.LeftWorkDate.AddDays(-1), + HasLeft = false, + ContarctStart = start.ToFarsi(), + ContractEnd = end.ToFarsi(), + ContractStartGr = start, + ContractEndGr = end, + checker = true, + EmployeeId = contract.EmployeeId + }); + } + else if(!leftWork.HasLeft) + { + separation.Add(new ContractSeparationViewModel() + { + StartWorkDate = leftWork.StartWorkDate, + LeftWorkDate = new DateTime(2121, 3, 21), + HasLeft = false, + ContarctStart = start.ToFarsi(), + ContractEnd = end.ToFarsi(), + ContractStartGr = start, + ContractEndGr = end, + checker = true, + EmployeeId = contract.EmployeeId + }); + } }