diff --git a/Company.Domain/ClassificationSchemeAgg/ClassificationScheme.cs b/Company.Domain/ClassificationSchemeAgg/ClassificationScheme.cs index 83ec2185..bc2c12dd 100644 --- a/Company.Domain/ClassificationSchemeAgg/ClassificationScheme.cs +++ b/Company.Domain/ClassificationSchemeAgg/ClassificationScheme.cs @@ -76,12 +76,13 @@ public class ClassificationScheme : EntityBase /// /// /// - public void Edit(DateTime includingDateGr, DateTime executionDateGr,string designerFullName, string designerPhone, long workshopId) + public void Edit(DateTime includingDateGr, DateTime executionDateGr,string designerFullName, string designerPhone, TypeOfCoefficient typeOfCoefficient) { IncludingDateGr = includingDateGr; ExecutionDateGr = executionDateGr; DesignerFullName = designerFullName; DesignerPhone = designerPhone; - WorkshopId = workshopId; + TypeOfCoefficient = typeOfCoefficient; + } } \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs new file mode 100644 index 00000000..c68e31f4 --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.ClassificationScheme; + +namespace Company.Domain.ClassificationSchemeAgg; + +public interface IClassificationGroupRepository : IRepository +{ + Task GetGroups(long schemeId); + + /// + /// ایجاد گروه های بیست گانه + /// + /// + /// + Task CreateGroups(List groupList); +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs index dc6943c9..5862352d 100644 --- a/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs @@ -16,9 +16,11 @@ public interface IClassificationSchemeRepository : IRepository - /// ایجاد طرح + /// دریافت اطلاعات طرح برای ویرایش /// - /// + /// /// - Task CreateClassificationScheme(CreateClassificationScheme command); + Task GetClassificationScheme(long id); + + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationGroup.cs b/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationGroupAndJobModel.cs similarity index 96% rename from CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationGroup.cs rename to CompanyManagment.App.Contracts/ClassificationScheme/ClassificationGroupAndJobModel.cs index ccff09bd..f96bad66 100644 --- a/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationGroup.cs +++ b/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationGroupAndJobModel.cs @@ -5,7 +5,7 @@ namespace CompanyManagment.App.Contracts.ClassificationScheme; /// /// ایجاد گروه /// -public class CreateClassificationGroup +public class ClassificationGroupAndJobModel { /// /// شماره گروه diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs b/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs index 43fd45cc..2454a813 100644 --- a/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs +++ b/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs @@ -23,6 +23,13 @@ public interface IClassificationSchemeApplication /// Task CreateClassificationScheme(CreateClassificationScheme command); + /// + /// دریافت اطلاعات طرح برای مودال ویرایش + /// + /// + /// + Task GetClassificationScheme(long id); + /// /// ویرایش طرح /// @@ -35,7 +42,7 @@ public interface IClassificationSchemeApplication /// /// /// - Task CreateGroupJobs(CreateClassificationGroup command); + Task CreateGroupJobs(ClassificationGroupAndJobModel command); /// /// ایجاد دستمزدها و ضرایب ریالی هر گروه در هر سال diff --git a/CompanyManagment.Application/ClassificationSchemeApplication.cs b/CompanyManagment.Application/ClassificationSchemeApplication.cs index ebee3c43..cfef7cc2 100644 --- a/CompanyManagment.Application/ClassificationSchemeApplication.cs +++ b/CompanyManagment.Application/ClassificationSchemeApplication.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using _0_Framework.Application; using Company.Domain.ClassificationSchemeAgg; @@ -9,10 +10,12 @@ namespace CompanyManagment.Application; public class ClassificationSchemeApplication : IClassificationSchemeApplication { private readonly IClassificationSchemeRepository _classificationSchemeRepository; + private readonly IClassificationGroupRepository _classificationGroupRepository; - public ClassificationSchemeApplication(IClassificationSchemeRepository classificationSchemeRepository) + public ClassificationSchemeApplication(IClassificationSchemeRepository classificationSchemeRepository, IClassificationGroupRepository classificationGroupRepository) { _classificationSchemeRepository = classificationSchemeRepository; + _classificationGroupRepository = classificationGroupRepository; } public Task ClassificationSchemePartialModel(long workshopId) @@ -38,20 +41,76 @@ public class ClassificationSchemeApplication : IClassificationSchemeApplication #endregion - + //ایجاد طرح var create = new ClassificationScheme(command.IncludingDateGr, command.ExecutionDateGr, command.DesignerFullName, command.DesignerPhone, command.WorkshopId, command.TypeOfCoefficient); _classificationSchemeRepository.Create(create); await _classificationSchemeRepository.SaveChangesAsync(); + //ایجاد گروه های طرح + var groups = new List() + { + new ClassificationGroup("1",command.WorkshopId,create.id), + new ClassificationGroup("2",command.WorkshopId,create.id), + new ClassificationGroup("3",command.WorkshopId,create.id), + new ClassificationGroup("4",command.WorkshopId,create.id), + new ClassificationGroup("5",command.WorkshopId,create.id), + new ClassificationGroup("6",command.WorkshopId,create.id), + new ClassificationGroup("7",command.WorkshopId,create.id), + new ClassificationGroup("8",command.WorkshopId,create.id), + new ClassificationGroup("9",command.WorkshopId,create.id), + new ClassificationGroup("10",command.WorkshopId,create.id), + new ClassificationGroup("11",command.WorkshopId,create.id), + new ClassificationGroup("12",command.WorkshopId,create.id), + new ClassificationGroup("13",command.WorkshopId,create.id), + new ClassificationGroup("14",command.WorkshopId,create.id), + new ClassificationGroup("15",command.WorkshopId,create.id), + new ClassificationGroup("16",command.WorkshopId,create.id), + new ClassificationGroup("17",command.WorkshopId,create.id), + new ClassificationGroup("18",command.WorkshopId,create.id), + new ClassificationGroup("19",command.WorkshopId,create.id), + new ClassificationGroup("20",command.WorkshopId,create.id), + }; + + await _classificationGroupRepository.CreateGroups(groups); + + + return op.Succcedded(); } - public Task EditClassificationScheme(EditClassificationScheme command) + public Task GetClassificationScheme(long id) { - throw new System.NotImplementedException(); + return _classificationSchemeRepository.GetClassificationScheme(id); } - public Task CreateGroupJobs(CreateClassificationGroup command) + public async Task EditClassificationScheme(EditClassificationScheme command) + { + var op = new OperationResult(); + + try + { + command.ExecutionDateGr = command.ExecutionDateFa.ToGeorgianDateTime(); + command.IncludingDateGr = command.IncludingDateFa.ToGeorgianDateTime(); + } + catch (Exception e) + { + return op.Failed("تاریخ به درستی وارد نشده است"); + } + #region Validation + + + + #endregion + var scheme = _classificationSchemeRepository.Get(command.Id); + if (scheme == null) + return op.Failed("رکورد مورد نظر وجود ندارد"); + + scheme.Edit(command.IncludingDateGr,command.ExecutionDateGr,command.DesignerFullName,command.DesignerPhone,command.TypeOfCoefficient); + await _classificationSchemeRepository.SaveChangesAsync(); + return op.Succcedded(); + } + + public Task CreateGroupJobs(ClassificationGroupAndJobModel command) { throw new System.NotImplementedException(); } diff --git a/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs new file mode 100644 index 00000000..3fdfa565 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using _0_Framework.InfraStructure; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class ClassificationGroupRepository : RepositoryBase, IClassificationGroupRepository +{ + private readonly CompanyContext _context; + public ClassificationGroupRepository(CompanyContext context) : base(context) + { + _context = context; + } + + public Task GetGroups(long schemeId) + { + throw new System.NotImplementedException(); + } + + /// + /// ایجاد گروه های بیست گانه + /// + /// + /// + public async Task CreateGroups(List groupList) + { + await _context.AddRangeAsync(groupList); + await _context.SaveChangesAsync(); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs index e4f87765..ba0ee0ed 100644 --- a/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs +++ b/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs @@ -51,6 +51,31 @@ public class ClassificationSchemeRepository :RepositoryBase + /// دریافت اطلاعات طرح برای ویرایش + /// + /// + /// + public Task GetClassificationScheme(long id) + { + return _context.ClassificationSchemes.Select(x => + new EditClassificationScheme() + { + + Id = x.id, + WorkshopId = x.WorkshopId, + IncludingDateGr = x.IncludingDateGr, + ExecutionDateGr = x.ExecutionDateGr, + EndSchemeDateGr = x.EndSchemeDateGr, + IncludingDateFa = x.IncludingDateGr.ToFarsi(), + ExecutionDateFa = x.ExecutionDateGr.ToFarsi(), + DesignerFullName = x.DesignerFullName, + DesignerPhone = x.DesignerPhone, + TypeOfCoefficient = x.TypeOfCoefficient + + }).FirstOrDefaultAsync(x => x.Id == id); + } + public Task CreateClassificationScheme(CreateClassificationScheme command) { throw new System.NotImplementedException(); diff --git a/PersonalContractingParty.Config/PersonalBootstrapper.cs b/PersonalContractingParty.Config/PersonalBootstrapper.cs index 1794058a..12ed81bc 100644 --- a/PersonalContractingParty.Config/PersonalBootstrapper.cs +++ b/PersonalContractingParty.Config/PersonalBootstrapper.cs @@ -502,6 +502,9 @@ public class PersonalBootstrapper services.AddTransient(); services.AddTransient(); + + services.AddTransient(); + #endregion //=========End Of Main==================================== diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs index ca0c01ed..1bcfaded 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs @@ -63,6 +63,27 @@ public class ClassificationSchemeModel : PageModel return new JsonResult(result); } + /// + /// لود مودال ویرایش طرح + /// + /// + /// + public IActionResult OnGetEditScheme(long id) + { + var model = _classificationSchemeApplication.GetClassificationScheme(id).GetAwaiter().GetResult(); + return Partial("_ClassificationPartials/EditScheme", model); + } + + /// + /// ویرایش طرح + /// + /// + /// + public async Task OnPostEditScheme(EditClassificationScheme command) + { + var result = _classificationSchemeApplication.EditClassificationScheme(command).GetAwaiter().GetResult(); + return new JsonResult(result); + } public IActionResult OnGetCreateJobs() { return Partial("_ClassificationPartials/CreateClassificationGroupJobs"); diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationSchemeTab.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationSchemeTab.cshtml index 8fc24974..93251c53 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationSchemeTab.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationSchemeTab.cshtml @@ -102,8 +102,8 @@ - - + + diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateScheme.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateScheme.cshtml index 58e581cf..1639536b 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateScheme.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateScheme.cshtml @@ -26,7 +26,7 @@
- +
@@ -40,7 +40,7 @@
- +
@@ -54,7 +54,7 @@
- +
diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/EditScheme.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/EditScheme.cshtml new file mode 100644 index 00000000..3ee5b793 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/EditScheme.cshtml @@ -0,0 +1,87 @@ +@using _0_Framework.Application.Enums +@model CompanyManagment.App.Contracts.ClassificationScheme.EditClassificationScheme + +@{ + +} + + +
+ + + + +