From 19f109254db6102a7b9360d969dfb3d62051bfda Mon Sep 17 00:00:00 2001 From: SamSys Date: Sun, 25 May 2025 17:38:57 +0330 Subject: [PATCH 1/2] Autoextention except vipGroup kaba mahd --- .../LeftWorkAgg/ILeftWorkRepository.cs | 1 + .../LeftWork/ILeftWorkApplication.cs | 3 ++ .../LeftWorkApplication.cs | 8 +++++ .../Repository/CheckoutRepository.cs | 9 +++-- .../Repository/LeftWorkRepository.cs | 34 ++++++++++++++++++- .../Company/Workshops/AutoExtension.cshtml.cs | 2 +- 6 files changed, 52 insertions(+), 5 deletions(-) diff --git a/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs b/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs index 4a32f49a..78c73415 100644 --- a/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs +++ b/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs @@ -45,4 +45,5 @@ public interface ILeftWorkRepository : IRepository #endregion Task GetLastLeftWork(long employeeId, long workshopId); + List SearchCreateContract(LeftWorkSearchModel searchModel); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/LeftWork/ILeftWorkApplication.cs b/CompanyManagment.App.Contracts/LeftWork/ILeftWorkApplication.cs index ef9db641..8e5a19b6 100644 --- a/CompanyManagment.App.Contracts/LeftWork/ILeftWorkApplication.cs +++ b/CompanyManagment.App.Contracts/LeftWork/ILeftWorkApplication.cs @@ -16,6 +16,9 @@ public interface ILeftWorkApplication EditLeftWork GetDetails(long id); LeftWorkViewModel CheckoutleftWorkCheck(DateTime contractStart, long workshopId, long employeeId); List search(LeftWorkSearchModel searchModel); + + + List SearchCreateContract(LeftWorkSearchModel searchModel); Task> searchAsync(LeftWorkSearchModel searchModel); string StartWork(long employeeId, long workshopId, string leftWork); OperationResult RemoveLeftWork(long id); diff --git a/CompanyManagment.Application/LeftWorkApplication.cs b/CompanyManagment.Application/LeftWorkApplication.cs index 0abe9603..83cf6825 100644 --- a/CompanyManagment.Application/LeftWorkApplication.cs +++ b/CompanyManagment.Application/LeftWorkApplication.cs @@ -211,6 +211,14 @@ public class LeftWorkApplication : ILeftWorkApplication return _leftWorkRepository.search(searchModel); } + public List SearchCreateContract(LeftWorkSearchModel searchModel) + { + + return _leftWorkRepository.SearchCreateContract(searchModel); + } + + + public async Task> searchAsync(LeftWorkSearchModel searchModel) { var res = search(searchModel); diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index 742a4615..c3034a1b 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -1141,19 +1141,22 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos var orderedRollcalls = x.OrderBy(y => y.ShiftDate).ToList(); var rollCallTimeSpanPerDay = - new TimeSpan(x.Where(y => y.EndDate != null).Sum(y => (y.ShiftEndWithoutRest - y.StartDate)!.Value.Ticks)); + new TimeSpan(x.Where(y => y.EndDate != null).Sum(y => y.ShiftEndWithoutRest == null ? (y.EndDate - y.StartDate).Value!.Ticks : (y.ShiftEndWithoutRest - y.StartDate)!.Value.Ticks)); var breakTimePerDay = new TimeSpan(x.Sum(r => r.BreakTimeSpan.Ticks)); var firstRollCall = orderedRollcalls.FirstOrDefault(); var secondRollCall = orderedRollcalls.Skip(1).FirstOrDefault(); + var firstRCEndDate = firstRollCall.ShiftEndWithoutRest ?? firstRollCall.EndDate; + var secondRCEndDate = secondRollCall.ShiftEndWithoutRest ?? secondRollCall.EndDate; + return new CheckoutDailyRollCallViewModel() { StartDate1 = firstRollCall?.StartDate?.ToString("HH:mm") ?? "", - EndDate1 = firstRollCall?.ShiftEndWithoutRest?.ToString("HH:mm") ?? "", + EndDate1 =firstRCEndDate?.ToString("HH:mm") ?? "", StartDate2 = secondRollCall?.StartDate?.ToString("HH:mm") ?? "", - EndDate2 = secondRollCall?.ShiftEndWithoutRest?.ToString("HH:mm") ?? "", + EndDate2 = secondRCEndDate?.ToString("HH:mm") ?? "", TotalhourseSpan = rollCallTimeSpanPerDay, diff --git a/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs b/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs index 3ab929d8..08caa664 100644 --- a/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs +++ b/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs @@ -173,7 +173,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos } - + _context.SaveChanges(); return op.Succcedded(); } @@ -649,6 +649,38 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos return leftWork; } + public List SearchCreateContract(LeftWorkSearchModel searchModel) + { + var vipGroup = _context.CustomizeWorkshopEmployeeSettings.Where(x => x.CustomizeWorkshopGroupSettingId == 117) + .Select(x => x.EmployeeId).ToList(); + var query = _context.LeftWorkList.Select(x => new LeftWorkViewModel() + { + Id = x.id, + LeftWorkDate = x.LeftWorkDate.ToFarsi(), + StartWorkDate = x.StartWorkDate.ToFarsi(), + LeftWorkDateGr = x.LeftWorkDate, + StartWorkDateGr = x.StartWorkDate, + EmployeeFullName = x.EmployeeFullName, + WorkshopName = x.WorkshopName, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + AddBonusesPay = x.AddBonusesPay, + AddYearsPay = x.AddYearsPay, + AddLeavePay = x.AddLeavePay, + JobId = x.JobId, + JobName = _context.Jobs.FirstOrDefault(j => j.id == x.JobId).JobName + + + }).Where(x=> !vipGroup.Contains(x.EmployeeId)); + if (searchModel.WorkshopId != 0 && searchModel.EmployeeId != 0) + query = query.Where(x => x.WorkshopId == searchModel.WorkshopId && x.EmployeeId == searchModel.EmployeeId); + if (searchModel.EmployeeId != 0 && searchModel.WorkshopId == 0) + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + if (searchModel.WorkshopId != 0 && searchModel.EmployeeId == 0) + query = query.Where(x => x.WorkshopId == searchModel.WorkshopId); + return query.OrderByDescending(x => x.StartWorkDateGr).ToList(); + } + private bool HasActiveRollCallStatus(long workshopId, long employeeId) { var now = DateTime.Today; diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml.cs index 68fef39a..5dd119ce 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml.cs @@ -109,7 +109,7 @@ public class AutoExtensionModel : PageModel { WorkshopId = id }; - var LeftWorkList = _leftWorkApplication.search(LeftWorkSerchModel); + var LeftWorkList = _leftWorkApplication.SearchCreateContract(LeftWorkSerchModel); var personnelCodeSearch = new PersonnelCodeSearchModel { WorkshopId = id From 44d5225ff35a27573f87b2ec767c142c043d94be Mon Sep 17 00:00:00 2001 From: SamSys Date: Sun, 25 May 2025 19:08:49 +0330 Subject: [PATCH 2/2] Static Chekoout Bug Fixed --- .../Repository/CheckoutRepository.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index c3034a1b..9284e09e 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -1146,9 +1146,15 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos var firstRollCall = orderedRollcalls.FirstOrDefault(); var secondRollCall = orderedRollcalls.Skip(1).FirstOrDefault(); + DateTime? secondRCEndDate = null; + DateTime? firstRCEndDate = null; - var firstRCEndDate = firstRollCall.ShiftEndWithoutRest ?? firstRollCall.EndDate; - var secondRCEndDate = secondRollCall.ShiftEndWithoutRest ?? secondRollCall.EndDate; + if (firstRollCall != null) + firstRCEndDate = firstRollCall.ShiftEndWithoutRest ?? firstRollCall.EndDate; + if (secondRollCall != null) + secondRCEndDate = secondRollCall.ShiftEndWithoutRest ?? secondRollCall.EndDate; + + return new CheckoutDailyRollCallViewModel() {