From 2fffa67ff6011aa6c4ccb0fcbf6b8174e9034040 Mon Sep 17 00:00:00 2001 From: SamSys Date: Sun, 18 May 2025 21:06:18 +0330 Subject: [PATCH] CopyFromLastYear OnGet --- .../InsurancJobAgg/IInsuranceJobRepositpry.cs | 2 +- .../InsuranceJob/CopyFromLastYearViewModel.cs | 3 +- .../InsuranceJob/IInsuranceJobApplication.cs | 2 +- .../InsuranceJobApplication.cs | 4 +- .../Repository/InsuranceJobRepository.cs | 19 ++-- .../InsuranceJob/CopyFromLastYear.cshtml | 95 +++++++++++++++++++ .../Pages/Company/InsuranceJob/Index.cshtml | 14 ++- .../Company/InsuranceJob/Index.cshtml.cs | 19 ++-- 8 files changed, 135 insertions(+), 23 deletions(-) create mode 100644 ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/CopyFromLastYear.cshtml diff --git a/Company.Domain/InsurancJobAgg/IInsuranceJobRepositpry.cs b/Company.Domain/InsurancJobAgg/IInsuranceJobRepositpry.cs index 99a6d9a8..67fa9799 100644 --- a/Company.Domain/InsurancJobAgg/IInsuranceJobRepositpry.cs +++ b/Company.Domain/InsurancJobAgg/IInsuranceJobRepositpry.cs @@ -19,7 +19,7 @@ public interface IInsuranceJobRepositpry:IRepository List Search(InsuranceJobSearchModel searchModel); OperationResult CreateInsuranceJob(CreateInsuranceJob command); List<(long id, string date)> GetOldYersInsuranceItemIds(); - OperationResult CopyFromLastYear(string startDate, string endDate, long insuranceJobItem); + OperationResult CopyFromLastYear(CopyFromLastYearViewModel command); OperationResult Remove(long id); OperationResult EditInsuranceJob(EditInsuranceJob command); } diff --git a/CompanyManagment.App.Contracts/InsuranceJob/CopyFromLastYearViewModel.cs b/CompanyManagment.App.Contracts/InsuranceJob/CopyFromLastYearViewModel.cs index 1512edd6..cf3cfd55 100644 --- a/CompanyManagment.App.Contracts/InsuranceJob/CopyFromLastYearViewModel.cs +++ b/CompanyManagment.App.Contracts/InsuranceJob/CopyFromLastYearViewModel.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using CompanyManagment.App.Contracts.InsuranceJobItem; +using Microsoft.AspNetCore.Mvc.Rendering; namespace CompanyManagment.App.Contracts.InsuranceJob; @@ -10,5 +11,5 @@ public class CopyFromLastYearViewModel public long InsuranceJobItemId { get; set; } - public List<(long id, string date)> InsuranceJobItemViewModels { get; set; } + public SelectList InsuranceJobItemViewModels { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceJob/IInsuranceJobApplication.cs b/CompanyManagment.App.Contracts/InsuranceJob/IInsuranceJobApplication.cs index e9df94bd..915d3a5d 100644 --- a/CompanyManagment.App.Contracts/InsuranceJob/IInsuranceJobApplication.cs +++ b/CompanyManagment.App.Contracts/InsuranceJob/IInsuranceJobApplication.cs @@ -11,7 +11,7 @@ namespace CompanyManagment.App.Contracts.InsuranceJob; public interface IInsuranceJobApplication { List<(long id, string date)> GetOldYersInsuranceItemIds(); - OperationResult CopyFromLastYear(string startDate, string endDate, long insuranceJobItem); + OperationResult CopyFromLastYear(CopyFromLastYearViewModel command); OperationResult Create(CreateInsuranceJob command); OperationResult Edit(EditInsuranceJob command); EditInsuranceJob GetDetails(long id); diff --git a/CompanyManagment.Application/InsuranceJobApplication.cs b/CompanyManagment.Application/InsuranceJobApplication.cs index c896ef3b..c5213272 100644 --- a/CompanyManagment.Application/InsuranceJobApplication.cs +++ b/CompanyManagment.Application/InsuranceJobApplication.cs @@ -24,9 +24,9 @@ public class InsuranceJobApplication: IInsuranceJobApplication return _insuranceJobRepositpry.GetOldYersInsuranceItemIds(); } - public OperationResult CopyFromLastYear(string startDate, string endDate, long insuranceJobItem) + public OperationResult CopyFromLastYear(CopyFromLastYearViewModel command) { - return _insuranceJobRepositpry.CopyFromLastYear(startDate, endDate, insuranceJobItem); + return _insuranceJobRepositpry.CopyFromLastYear(command); } public OperationResult Create(CreateInsuranceJob command) diff --git a/CompanyManagment.EFCore/Repository/InsuranceJobRepository.cs b/CompanyManagment.EFCore/Repository/InsuranceJobRepository.cs index 6bff4f0c..428feb77 100644 --- a/CompanyManagment.EFCore/Repository/InsuranceJobRepository.cs +++ b/CompanyManagment.EFCore/Repository/InsuranceJobRepository.cs @@ -136,28 +136,31 @@ public class InsuranceJobRepository : RepositoryBase, IInsur var res = _context.InsuranceJobItems .GroupBy(x => x.StartDate) .Select(g => g.First()) - .Select(x=> new InsuranceJobItemViewModel() + + .ToList().Select(x => new InsuranceJobItemViewModel() { Id = x.id, StartDate = x.StartDate, EndDate = x.EndDate, - - }) - .ToList(); + + }); + return res.Select(x=> (x.Id, $"{(x.StartDate.HasValue ? x.StartDate.Value.ToFarsi() : "نامشخص")} - {(x.EndDate.HasValue ? x.EndDate.Value.ToFarsi() : "نامشخص")}")).ToList(); } - public OperationResult CopyFromLastYear(string startDate, string endDate, long insuranceJobItem) + public OperationResult CopyFromLastYear(CopyFromLastYearViewModel command) { var op = new OperationResult(); + if (command.InsuranceJobItemId == 0) + return op.Failed("بازه را انتخاب کنید"); DateTime startDateGr = new DateTime(); DateTime endDateGr = new DateTime(); try { - startDateGr = startDate.ToGeorgianDateTime(); - endDateGr = endDate.ToGeorgianDateTime(); + startDateGr = command.StartDate.ToGeorgianDateTime(); + endDateGr = command.EndDate.ToGeorgianDateTime(); } catch (Exception e) @@ -171,7 +174,7 @@ public class InsuranceJobRepository : RepositoryBase, IInsur if (chekExist) return op.Failed("بازه تاریخ وارد شده با بازه های قبلی تداخل دارد"); - var insuranceJobItemObj = _insuranceJobItemRepositpry.Get(insuranceJobItem); + var insuranceJobItemObj = _insuranceJobItemRepositpry.Get(command.InsuranceJobItemId); if (insuranceJobItemObj == null) return op.Failed("آیتم شغلی انتخاب شده وجود ندارد"); var insuranceJobItemList = _context.InsuranceJobItems.Where(x => x.StartDate == insuranceJobItemObj.StartDate).Select(x => new InsuranceJobItemViewModel() diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/CopyFromLastYear.cshtml b/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/CopyFromLastYear.cshtml new file mode 100644 index 00000000..aa425437 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/CopyFromLastYear.cshtml @@ -0,0 +1,95 @@ +@model CompanyManagment.App.Contracts.InsuranceJob.CopyFromLastYearViewModel +@{ + +} + + +
+ + @**@ + + +
+ \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/Index.cshtml index 222a815e..4a7c10aa 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/Index.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/Index.cshtml @@ -5,11 +5,17 @@
diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/Index.cshtml.cs index d9cb4f0e..8ed82289 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceJob/Index.cshtml.cs @@ -6,6 +6,7 @@ using CompanyManagment.App.Contracts.YearlySalary; using MD.PersianDateTime.Standard; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.Rendering; namespace ServiceHost.Areas.Admin.Pages.Company.InsuranceJob; @@ -59,16 +60,22 @@ public class IndexModel : PageModel public IActionResult OnGetCopyFromLastYear() { - - var model = new CopyFromLastYearViewModel() + var dats = _insuranceJobApplication.GetOldYersInsuranceItemIds() + .Select(x => new { Id = x.id, Date = x.date }) + .ToList(); + var model = new CopyFromLastYearViewModel() { - InsuranceJobItemViewModels = _insuranceJobApplication.GetOldYersInsuranceItemIds() + InsuranceJobItemId = 0, + StartDate = "", + EndDate = "", + InsuranceJobItemViewModels = new SelectList(dats,"Id", "Date"), }; - return new JsonResult(new { }); + return Partial("./CopyFromLastYear", model); } - public IActionResult OnPostCopyFromLastYear(string startDate, string endDate, long insuranceJobItemId) + public IActionResult OnPostCopyFromLastYear(CopyFromLastYearViewModel commnad) { - return new JsonResult(new { }); + var res = _insuranceJobApplication.CopyFromLastYear(commnad); + return new JsonResult(res); } //public async Task OnPostJobListByText(string textSearch)