diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/EditEmployeeGroup.cs b/CompanyManagment.App.Contracts/ClassificationScheme/EditEmployeeGroup.cs index 0d4ed7bd..e680c19e 100644 --- a/CompanyManagment.App.Contracts/ClassificationScheme/EditEmployeeGroup.cs +++ b/CompanyManagment.App.Contracts/ClassificationScheme/EditEmployeeGroup.cs @@ -100,5 +100,10 @@ public class EditEmployeeGroupList /// public long SchemeId { get; set; } + /// + /// شماره گروه + /// + public string GroupNo { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs b/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs index 058e3dc2..b4f9a358 100644 --- a/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs +++ b/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs @@ -94,4 +94,9 @@ public class BaseYearDataList /// آیا تاریخ پایان کار دارد /// public bool HasLeftWork { get; set; } + + /// + /// شماره گروه + /// + public string GroupNo { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ClassificationEmployeeRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationEmployeeRepository.cs index 70605d41..a855e97f 100644 --- a/CompanyManagment.EFCore/Repository/ClassificationEmployeeRepository.cs +++ b/CompanyManagment.EFCore/Repository/ClassificationEmployeeRepository.cs @@ -185,7 +185,7 @@ public class ClassificationEmployeeRepository : RepositoryBase public async Task> GetEmployeeMemberizeData(long employeeId) { - return await _context.ClassificationEmployees.Where(x => x.EmployeeId == employeeId).Select(x=> new EditEmployeeGroupList + return await _context.ClassificationEmployees.Where(x => x.EmployeeId == employeeId).Include(x=>x.ClassificationGroup).Select(x=> new EditEmployeeGroupList { Id = x.id, WorkshopId = x.WorkshopId, @@ -196,6 +196,8 @@ public class ClassificationEmployeeRepository : RepositoryBasex.StartGroupDate).ToListAsync(); diff --git a/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs index 1707ef00..1935b6a9 100644 --- a/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs +++ b/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs @@ -100,6 +100,39 @@ public class ClassificationSchemeRepository :RepositoryBasex.ClassificationGroup) + .Where(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId).OrderBy(x=>x.StartGroupDate) + .Select(x=> new{x.StartGroupDate, x.EndGroupDate, x.ClassificationGroup.GroupNo}) + .OrderByDescending(x=>x.StartGroupDate) + .ToListAsync(); + var employeeGroupMemberData = new List<(DateTime startGroupDate, DateTime EndGroupDate, string GroupNo)>(); + if (employeeGroupMember.Any()) + { + + var lastGroup = employeeGroupMember.FirstOrDefault(); + foreach (var group in employeeGroupMember) + { + if (group == lastGroup) + { + + employeeGroupMemberData.Add(new ValueTuple(group.StartGroupDate.Value, contractEnd, group.GroupNo)); + } + else + { + var endOfGroup = employeeGroupMemberData.Last().startGroupDate.AddDays(-1); + employeeGroupMemberData.Add(new ValueTuple(group.StartGroupDate.Value, endOfGroup, group.GroupNo)); + + } + } + + } + + + + + + //لیست شروع بکار / ترک کار پرسنل @@ -325,7 +358,7 @@ public class ClassificationSchemeRepository :RepositoryBase(); + var baseList = new List<(double baseYaer, DateTime start, DateTime end, string baseYearPay, DateTime baseYearPayGr, string year, bool hasStartWork, bool hasLeftWork, string groupNo)>(); if (baseYearDateList.Count > 0) @@ -335,8 +368,11 @@ public class ClassificationSchemeRepository :RepositoryBase x.StartDate <= firstBaseYearDate && x.EndDate >= firstBaseYearDate); var firstClassifiedBaseYear = classifiedBaseYearList.FirstOrDefault(x => x.StartDate <= firstBaseYearDate && x.EndDate >= firstBaseYearDate); - + //پایه سنوات سال جاری + var firstGroupData = employeeGroupMemberData.FirstOrDefault(x => x.startGroupDate <= firstBaseYearDate && x.EndGroupDate >= firstBaseYearDate); + + groupNo = firstGroupData.GroupNo; var firstBasicObject = Tools.GetDynamicDouble(firstClassifiedBaseYear, $"Group{groupNo}"); double firstBasic = firstBasicObject != null ? firstBasicObject.Value : 0; var firstfixFeePercentage = firstbasicSalari @@ -350,7 +386,7 @@ public class ClassificationSchemeRepository :RepositoryBase x.StartDate > firstbasicSalari.EndDate).ToList(); - var first = (firstBasic, firstbasicSalari.StartDate, firstbasicSalari.EndDate, firstBaseYearDate.ToFarsi(), firstBaseYearDate, firstbasicSalari.Year, false, false); + var first = (firstBasic, firstbasicSalari.StartDate, firstbasicSalari.EndDate, firstBaseYearDate.ToFarsi(), firstBaseYearDate, firstbasicSalari.Year, false, false, $"گروه {groupNo}"); baseList.Add(first); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{1398} -> firstBasic : {firstBasic}"); @@ -396,6 +432,11 @@ public class ClassificationSchemeRepository :RepositoryBase x.startGroupDate <= currentBaseYear.EndDate && x.EndGroupDate >= currentBaseYear.StartDate); + + groupNo = transferGroupData.GroupNo; + var currentBasicObject = Tools.GetDynamicDouble(currentBaseYear, $"Group{groupNo}"); double currentBasic = currentBasicObject != null ? currentBasicObject.Value : 0; //var currentBasic = currentSalary @@ -428,7 +469,7 @@ public class ClassificationSchemeRepository :RepositoryBase x.BaseYearPayDayGr).ToList(), }; diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml index 4b958fde..fec146c2 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml @@ -5,6 +5,7 @@