From 40f021197bc7148bc9bf86a01fbcaa57e7fe212d Mon Sep 17 00:00:00 2001 From: MahanCh Date: Sat, 5 Apr 2025 09:47:00 +0330 Subject: [PATCH 1/2] add method for creating reward for kebab mahdi --- .../Pages/Company/AndroidApk/Index.cshtml.cs | 449 +++++++++--------- 1 file changed, 237 insertions(+), 212 deletions(-) diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs index 38ca5d79..877c11ea 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs @@ -11,266 +11,291 @@ using Microsoft.EntityFrameworkCore; namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk { - [Authorize] - public class IndexModel : PageModel - { - private readonly IAndroidApkVersionApplication _application; - private readonly IRollCallDomainService _rollCallDomainService; - private readonly CompanyContext _context; - private readonly AccountContext _accountContext; + [Authorize] + public class IndexModel : PageModel + { + private readonly IAndroidApkVersionApplication _application; + private readonly IRollCallDomainService _rollCallDomainService; + private readonly CompanyContext _context; + private readonly AccountContext _accountContext; - [BindProperty] - public IFormFile File { get; set; } + [BindProperty] + public IFormFile File { get; set; } - public IndexModel(IAndroidApkVersionApplication application, IRollCallDomainService rollCallDomainService, CompanyContext context, AccountContext accountContext) - { - _application = application; - _rollCallDomainService = rollCallDomainService; - _context = context; - _accountContext = accountContext; - } + public IndexModel(IAndroidApkVersionApplication application, IRollCallDomainService rollCallDomainService, CompanyContext context, AccountContext accountContext) + { + _application = application; + _rollCallDomainService = rollCallDomainService; + _context = context; + _accountContext = accountContext; + } - public void OnGet() - { - } + public void OnGet() + { + } - public async Task OnPostUpload() - { - var result = await _application.CreateAndActive(File); - ViewData["message"] = result.Message; - return Page(); - } + public async Task OnPostUpload() + { + var result = await _application.CreateAndActive(File); + ViewData["message"] = result.Message; + return Page(); + } - public IActionResult OnPostShiftDate() - { - //var startRollCall = new DateTime(2025, 2, 19); - //var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall); + public IActionResult OnPostShiftDate() + { + //var startRollCall = new DateTime(2025, 2, 19); + //var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall); - //var endedRollCalls = rollCalls.Where(x => x.EndDate != null).ToList(); + //var endedRollCalls = rollCalls.Where(x => x.EndDate != null).ToList(); - //var notEndedRollCalls = rollCalls.Where(x => x.EndDate == null).ToList(); - //RefactorAllTheRollCallsOnEsfand(endedRollCalls, notEndedRollCalls); - CreateRewardForKebabMahdi().GetAwaiter().GetResult(); - ViewData["message"] = "ایجاد شد"; - return Page(); - } + //var notEndedRollCalls = rollCalls.Where(x => x.EndDate == null).ToList(); + //RefactorAllTheRollCallsOnEsfand(endedRollCalls, notEndedRollCalls); + CreateRewardForKebabMahdi().GetAwaiter().GetResult(); + ViewData["message"] = "ایجاد شد"; + return Page(); + } - public IActionResult OnPostShiftDateNew() - { - var startRollCall = new DateTime(2025, 2, 19); - var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); - var r1 = rollCalls.Take(3000).ToList(); + public IActionResult OnPostShiftDateNew() + { + var startRollCall = new DateTime(2025, 2, 19); + var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); + var r1 = rollCalls.Take(3000).ToList(); - Console.ForegroundColor = ConsoleColor.DarkRed; - Console.WriteLine("endStep 1 ============"); - SetRollCall(r1); + Console.ForegroundColor = ConsoleColor.DarkRed; + Console.WriteLine("endStep 1 ============"); + SetRollCall(r1); - ViewData["message"] = "تومام یک"; - return Page(); - } - - public IActionResult OnPostShiftDateNew2() - { - var startRollCall = new DateTime(2025, 2, 19); - var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); - - var r2 = rollCalls.Skip(3000).ToList(); + ViewData["message"] = "تومام یک"; + return Page(); + } - Console.ForegroundColor = ConsoleColor.Yellow; - Console.WriteLine("endStep 2 ============"); - SetRollCall2(r2); + public IActionResult OnPostShiftDateNew2() + { + var startRollCall = new DateTime(2025, 2, 19); + var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); - ViewData["message"] = "تومام دو"; - return Page(); - } + var r2 = rollCalls.Skip(3000).ToList(); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine("endStep 2 ============"); + SetRollCall2(r2); - #region Create reward for kebab mahdi + ViewData["message"] = "تومام دو"; + return Page(); + } - public async System.Threading.Tasks.Task CreateRewardForKebabMahdi() - { - var esfandCustomizeCheckouts = _context.CustomizeCheckouts - .Where(x => x.WorkshopId == 170 && x.MonthInt == 12 && x.YearInt == 1403); + #region Create reward for kebab mahdi + public async System.Threading.Tasks.Task CreateRewardForKebabMahdi() + { + //var esfandCustomizeCheckouts = _context.CustomizeCheckouts + // .Where(x => x.WorkshopId == 170 && x.MonthInt == 12 && x.YearInt == 1403); + var sinzdahBedarDate = new DateTime(2025, 04, 2); - var employeeSettings = _context.CustomizeWorkshopEmployeeSettings - .Where(x => x.WorkshopId == 170 && - esfandCustomizeCheckouts.Any(c => c.EmployeeId == x.EmployeeId)); + var workingEmp = _context.LeftWorkList.Where(x => x.WorkshopId == 170 && x.StartWorkDate <= sinzdahBedarDate && x.LeftWorkDate >= sinzdahBedarDate) + .GroupBy(x => x.EmployeeId).Select(x=>x.Key); - var absentEmployees = employeeSettings.Where(x => !_context.RollCalls - .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == new DateTime(2025,03,20))) - .ToList(); - foreach (var employeeSetting in absentEmployees) - { - var amount = (int) employeeSetting.Salary / 30; - var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, new DateTime(2025, 3, 21), - "بابت تعطیلی روز آخر سال 1403"); - _context.Rewards.Add(reward); - } - await _context.SaveChangesAsync(); - } + var employeesHaveRollCall = _context.RollCallEmployees + .Where(x => workingEmp.Contains(x.EmployeeId) && x.WorkshopId == 170) + .Include(x => x.EmployeesStatus) + .Where(x => x.EmployeesStatus.Any(s => s.StartDate <= sinzdahBedarDate && s.EndDate >= sinzdahBedarDate)).Select(x=>x.EmployeeId); - #endregion - #region AccountLeftwork - private void AddToAccountLeftWork() - { - List roleIds = [3, 5, 7, 8, 23, 24]; - var accounts = _accountContext.Accounts - .Where(x => roleIds.Contains(x.RoleId)).Where(x => x.AdminAreaPermission == "true"); - var accountsIds = accounts.Select(x => x.id).ToList(); - var workshopAccount = _context.WorkshopAccounts - .Where(x => accountsIds.Contains(x.AccountId)) - .GroupBy(x => x.AccountId); + var employeeSettings = _context.CustomizeWorkshopEmployeeSettings + .Where(x => x.WorkshopId == 170 && + employeesHaveRollCall.Any(c => c == x.EmployeeId)); - List oldAccountleftworkActiveNow = [300, 332, 333, 334, 18, 25, 14]; - List oldAccountleftworkDeActivedNow = [50, 49, 15]; - var continueWorking = _0_Framework.Application.StaticWorkshopAccounts.ContinuesWorkingDate; + var absentEmployeesInSinzdah = employeeSettings.Where(x => !_context.RollCalls + .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == sinzdahBedarDate)) + .ToList(); - foreach (var item in workshopAccount) - { + var absentEmployeesInChahardah = employeeSettings.Where(x => !_context.RollCalls + .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == sinzdahBedarDate.AddDays(1))) + .ToList(); + foreach (var employeeSetting in absentEmployeesInSinzdah) + { + var amount = (int)employeeSetting.Salary / 30; + var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, sinzdahBedarDate, + "بابت تعطیلی روز 13 فروردین"); + _context.Rewards.Add(reward); + } - var oldActive = item.FirstOrDefault(x => oldAccountleftworkActiveNow.Contains(x.AccountId)); - if (oldActive != null) - { - var roleId = accounts.FirstOrDefault(x => x.id == oldActive.AccountId)!.RoleId; - var startGr = item.Key != 25 ? new DateTime(2024, 07, 22) : new DateTime(2024, 08, 22); - //if (item.Key is 380 or 381) - // startGr = new DateTime(2025, 02, 19); - if (item.Key is 14 or 18) - startGr = new DateTime(2020, 05, 21); - if (item.Key is 300) - startGr = new DateTime(2024, 05, 22); + foreach (var employeeSetting in absentEmployeesInChahardah) + { + var amount = (int)employeeSetting.Salary / 30; + var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, sinzdahBedarDate.AddDays(1), + "بابت تعطیلی روز 14 فروردین"); + _context.Rewards.Add(reward); + } - foreach (var workshop in item) - { - _accountContext.AccountLeftWorks.Add(new AccountLeftWork(startGr, continueWorking, workshop.AccountId, workshop.WorkshopId, roleId, true)); + await _context.SaveChangesAsync(); + } - } - _accountContext.SaveChanges(); + #endregion - } - var oldDeActive = item.FirstOrDefault(x => oldAccountleftworkDeActivedNow.Contains(x.AccountId)); - if (oldDeActive != null) - { - var roleId = accounts.FirstOrDefault(x => x.id == oldDeActive.AccountId)!.RoleId; - var startGr = new DateTime(2022, 03, 21); - if (item.Key == 49) - startGr = new DateTime(2023, 04, 21); - if (item.Key == 50) - startGr = new DateTime(2023, 03, 21); - foreach (var workshop in item) - { - _accountContext.Add(new AccountLeftWork(startGr, new DateTime(2024, 07, 21), workshop.AccountId, workshop.WorkshopId, roleId, false)); + #region AccountLeftwork - } - _accountContext.SaveChanges(); + private void AddToAccountLeftWork() + { + List roleIds = [3, 5, 7, 8, 23, 24]; + var accounts = _accountContext.Accounts + .Where(x => roleIds.Contains(x.RoleId)).Where(x => x.AdminAreaPermission == "true"); + var accountsIds = accounts.Select(x => x.id).ToList(); + var workshopAccount = _context.WorkshopAccounts + .Where(x => accountsIds.Contains(x.AccountId)) + .GroupBy(x => x.AccountId); - } + List oldAccountleftworkActiveNow = [300, 332, 333, 334, 18, 25, 14]; + List oldAccountleftworkDeActivedNow = [50, 49, 15]; + var continueWorking = _0_Framework.Application.StaticWorkshopAccounts.ContinuesWorkingDate; - } + foreach (var item in workshopAccount) + { - Console.WriteLine("finished"); - } - #endregion + var oldActive = item.FirstOrDefault(x => oldAccountleftworkActiveNow.Contains(x.AccountId)); + if (oldActive != null) + { + var roleId = accounts.FirstOrDefault(x => x.id == oldActive.AccountId)!.RoleId; + var startGr = item.Key != 25 ? new DateTime(2024, 07, 22) : new DateTime(2024, 08, 22); + //if (item.Key is 380 or 381) + // startGr = new DateTime(2025, 02, 19); + if (item.Key is 14 or 18) + startGr = new DateTime(2020, 05, 21); + if (item.Key is 300) + startGr = new DateTime(2024, 05, 22); - #region RefactorRollcall + foreach (var workshop in item) + { + _accountContext.AccountLeftWorks.Add(new AccountLeftWork(startGr, continueWorking, workshop.AccountId, workshop.WorkshopId, roleId, true)); - private void RefactorAllTheRollCallsOnEsfand(List endedRollCalls, List notEndedRollCalls) - { - var countEndedRollCalls = endedRollCalls.Count; - var countNotEndedRollCalls = notEndedRollCalls.Count; + } + _accountContext.SaveChanges(); - var step1 = 1; - foreach (var rollCall in endedRollCalls) - { - rollCall.setStartAndEnd(rollCall.StartDate.Value, rollCall.EndDate.Value, _rollCallDomainService); - Console.WriteLine($"{step1} - {countEndedRollCalls} ended Edit {rollCall.id}"); - step1 += 1; - } - - var step2 = 1; - foreach (var notEndedRollCall in notEndedRollCalls) - { - notEndedRollCall.SetStartAgain(notEndedRollCall.StartDate.Value); - Console.WriteLine($"{step2} - {countNotEndedRollCalls} not ended startAgain {notEndedRollCall.id}"); - step2 += 1; - } - - _context.SaveChanges(); - - - } + } - private void SetRollCall(List r1) - { - - var endedRollCalls2 = r1.Where(x => x.EndDate != null).ToList(); - var countSetTDRollCall = endedRollCalls2.Count; - var stepSetTDRollCal = 1; - foreach (var endedRollCall in endedRollCalls2) - { - endedRollCall.ClearTimeDiff(); - _context.SaveChanges(); - endedRollCall.SetEndDateTime(endedRollCall.EndDate.Value, _rollCallDomainService); - Console.WriteLine($"{stepSetTDRollCal} - {countSetTDRollCall} ended Set Time Differences{endedRollCall.id}"); - stepSetTDRollCal += 1; - } - - //_context.SaveChanges(); - } - - - private void SetRollCall2(List r2) - { - - - var endedRollCalls2 = r2.Where(x => x.EndDate != null).ToList(); - var countSetTDRollCall = endedRollCalls2.Count; - var stepSetTDRollCal = 1; - foreach (var endedRollCall in endedRollCalls2) - { - endedRollCall.SetEndDateTime(endedRollCall.EndDate.Value, _rollCallDomainService); - Console.WriteLine($"{stepSetTDRollCal} - {countSetTDRollCall} ended Set Time Differences{endedRollCall.id}"); - stepSetTDRollCal += 1; - } - - //_context.SaveChanges(); - } - #endregion - //public async Task OnPostShiftDate() - //{ - // var customizeWorkshopSettings = _context.CustomizeWorkshopSettings.AsSplitQuery(); + var oldDeActive = item.FirstOrDefault(x => oldAccountleftworkDeActivedNow.Contains(x.AccountId)); + if (oldDeActive != null) + { + var roleId = accounts.FirstOrDefault(x => x.id == oldDeActive.AccountId)!.RoleId; + var startGr = new DateTime(2022, 03, 21); + if (item.Key == 49) + startGr = new DateTime(2023, 04, 21); + if (item.Key == 50) + startGr = new DateTime(2023, 03, 21); + foreach (var workshop in item) + { + _accountContext.Add(new AccountLeftWork(startGr, new DateTime(2024, 07, 21), workshop.AccountId, workshop.WorkshopId, roleId, false)); + } + _accountContext.SaveChanges(); - // customizeWorkshopSettings = customizeWorkshopSettings.Where(x => x.WorkshopId == 499); - - // var rollCalls = - // _context.RollCalls.Where(x => customizeWorkshopSettings.Any(a => a.WorkshopId == x.WorkshopId)) - // .ToList(); - - // foreach (var rollCall in rollCalls) - // { - // rollCall.SetShiftDate(_rollCallDomainService); - // Console.WriteLine(rollCall.id); - // } + } - // await _context.SaveChangesAsync(); - // ViewData["message"] = "تومام"; - // return Page(); - //} - } + + } + + Console.WriteLine("finished"); + } + + #endregion + + #region RefactorRollcall + + private void RefactorAllTheRollCallsOnEsfand(List endedRollCalls, List notEndedRollCalls) + { + var countEndedRollCalls = endedRollCalls.Count; + var countNotEndedRollCalls = notEndedRollCalls.Count; + + var step1 = 1; + foreach (var rollCall in endedRollCalls) + { + rollCall.setStartAndEnd(rollCall.StartDate.Value, rollCall.EndDate.Value, _rollCallDomainService); + Console.WriteLine($"{step1} - {countEndedRollCalls} ended Edit {rollCall.id}"); + step1 += 1; + } + + var step2 = 1; + foreach (var notEndedRollCall in notEndedRollCalls) + { + notEndedRollCall.SetStartAgain(notEndedRollCall.StartDate.Value); + Console.WriteLine($"{step2} - {countNotEndedRollCalls} not ended startAgain {notEndedRollCall.id}"); + step2 += 1; + } + + _context.SaveChanges(); + + + } + + private void SetRollCall(List r1) + { + + var endedRollCalls2 = r1.Where(x => x.EndDate != null).ToList(); + var countSetTDRollCall = endedRollCalls2.Count; + var stepSetTDRollCal = 1; + foreach (var endedRollCall in endedRollCalls2) + { + endedRollCall.ClearTimeDiff(); + _context.SaveChanges(); + endedRollCall.SetEndDateTime(endedRollCall.EndDate.Value, _rollCallDomainService); + Console.WriteLine($"{stepSetTDRollCal} - {countSetTDRollCall} ended Set Time Differences{endedRollCall.id}"); + stepSetTDRollCal += 1; + } + + //_context.SaveChanges(); + } + + + private void SetRollCall2(List r2) + { + + + var endedRollCalls2 = r2.Where(x => x.EndDate != null).ToList(); + var countSetTDRollCall = endedRollCalls2.Count; + var stepSetTDRollCal = 1; + foreach (var endedRollCall in endedRollCalls2) + { + endedRollCall.SetEndDateTime(endedRollCall.EndDate.Value, _rollCallDomainService); + Console.WriteLine($"{stepSetTDRollCal} - {countSetTDRollCall} ended Set Time Differences{endedRollCall.id}"); + stepSetTDRollCal += 1; + } + + //_context.SaveChanges(); + } + #endregion + //public async Task OnPostShiftDate() + //{ + // var customizeWorkshopSettings = _context.CustomizeWorkshopSettings.AsSplitQuery(); + + + // customizeWorkshopSettings = customizeWorkshopSettings.Where(x => x.WorkshopId == 499); + + // var rollCalls = + // _context.RollCalls.Where(x => customizeWorkshopSettings.Any(a => a.WorkshopId == x.WorkshopId)) + // .ToList(); + + // foreach (var rollCall in rollCalls) + // { + // rollCall.SetShiftDate(_rollCallDomainService); + // Console.WriteLine(rollCall.id); + // } + + // await _context.SaveChangesAsync(); + // ViewData["message"] = "تومام"; + // return Page(); + //} + } } From 3e914b7b1df68d01c1d7bcc7e54d49fafcbf4bae Mon Sep 17 00:00:00 2001 From: MahanCh Date: Sat, 5 Apr 2025 12:29:29 +0330 Subject: [PATCH 2/2] fix add reward bug --- .../Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs index 877c11ea..45df1227 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs @@ -95,6 +95,7 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk // .Where(x => x.WorkshopId == 170 && x.MonthInt == 12 && x.YearInt == 1403); var sinzdahBedarDate = new DateTime(2025, 04, 2); + var chahardah = sinzdahBedarDate.AddDays(1); var workingEmp = _context.LeftWorkList.Where(x => x.WorkshopId == 170 && x.StartWorkDate <= sinzdahBedarDate && x.LeftWorkDate >= sinzdahBedarDate) @@ -119,7 +120,7 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk .ToList(); var absentEmployeesInChahardah = employeeSettings.Where(x => !_context.RollCalls - .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == sinzdahBedarDate.AddDays(1))) + .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == chahardah)) .ToList(); foreach (var employeeSetting in absentEmployeesInSinzdah)