diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs new file mode 100644 index 00000000..dc6943c9 --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs @@ -0,0 +1,24 @@ +using _0_Framework.Application; +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.ClassificationScheme; +using System.Threading.Tasks; + +namespace Company.Domain.ClassificationSchemeAgg; + +public interface IClassificationSchemeRepository : IRepository +{ + /// + /// پارشیال صفحه ایجاد طرح + /// + /// + /// + Task ClassificationSchemePartialModel(long workshopId); + + + /// + /// ایجاد طرح + /// + /// + /// + Task CreateClassificationScheme(CreateClassificationScheme command); +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationSchemePartialModel.cs b/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationSchemePartialModel.cs new file mode 100644 index 00000000..18778e3a --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationSchemePartialModel.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// پارشیال صفحه ایجاد طرح +/// +public class ClassificationSchemePartialModel +{ + /// + /// آیا طرح دارد + /// + public bool HasScheme { get; set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + /// + /// لیست طرح + /// + public List ClassificationSchemesList { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationScheme.cs b/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationScheme.cs index 135c1c3e..49f67be2 100644 --- a/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationScheme.cs +++ b/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationScheme.cs @@ -10,14 +10,28 @@ public class CreateClassificationScheme { /// /// تاریخ شمول طرح + /// میلادی /// public DateTime IncludingDateGr { get; set; } + + /// + /// تاریخ شمول طرح + /// شمسی + /// + public string IncludingDateFa { get; set; } /// /// تاریخ اجرای طرح + /// میلادی /// public DateTime ExecutionDateGr { get; set; } + /// + /// تاریخ اجرای طرح + /// شمسی + /// + public string ExecutionDateFa { get; set; } + /// /// تاریخ پایان طرح /// diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs b/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs index 11943f96..43fd45cc 100644 --- a/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs +++ b/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs @@ -9,6 +9,13 @@ namespace CompanyManagment.App.Contracts.ClassificationScheme; /// public interface IClassificationSchemeApplication { + /// + /// پارشیال صفحه ایجاد طرح + /// + /// + /// + Task ClassificationSchemePartialModel(long workshopId); + /// /// ایجاد طرح /// diff --git a/CompanyManagment.Application/ClassificationSchemeApplication.cs b/CompanyManagment.Application/ClassificationSchemeApplication.cs new file mode 100644 index 00000000..ebee3c43 --- /dev/null +++ b/CompanyManagment.Application/ClassificationSchemeApplication.cs @@ -0,0 +1,63 @@ +using System; +using System.Threading.Tasks; +using _0_Framework.Application; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; + +namespace CompanyManagment.Application; + +public class ClassificationSchemeApplication : IClassificationSchemeApplication +{ + private readonly IClassificationSchemeRepository _classificationSchemeRepository; + + public ClassificationSchemeApplication(IClassificationSchemeRepository classificationSchemeRepository) + { + _classificationSchemeRepository = classificationSchemeRepository; + } + + public Task ClassificationSchemePartialModel(long workshopId) + { + return _classificationSchemeRepository.ClassificationSchemePartialModel(workshopId); + } + + public async Task CreateClassificationScheme(CreateClassificationScheme 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 create = new ClassificationScheme(command.IncludingDateGr, command.ExecutionDateGr, + command.DesignerFullName, command.DesignerPhone, command.WorkshopId, command.TypeOfCoefficient); + _classificationSchemeRepository.Create(create); + await _classificationSchemeRepository.SaveChangesAsync(); + return op.Succcedded(); + } + + public Task EditClassificationScheme(EditClassificationScheme command) + { + throw new System.NotImplementedException(); + } + + public Task CreateGroupJobs(CreateClassificationGroup command) + { + throw new System.NotImplementedException(); + } + + public Task CreateGroupSalaryAndCoefficient(CreateClassificationGroupSalaryAndRialCoefficient command) + { + throw new System.NotImplementedException(); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs new file mode 100644 index 00000000..e4f87765 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs @@ -0,0 +1,58 @@ +using System.Linq; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.InfraStructure; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class ClassificationSchemeRepository :RepositoryBase, IClassificationSchemeRepository +{ + private readonly CompanyContext _context; + public ClassificationSchemeRepository(CompanyContext context) : base(context) + { + _context = context; + } + + public async Task ClassificationSchemePartialModel(long workshopId) + { + var hasScheme =await _context.ClassificationSchemes.AnyAsync(x => x.WorkshopId == workshopId); + if (!hasScheme) + return new ClassificationSchemePartialModel() + { + HasScheme = false, + + }; + + var schemeList = _context.ClassificationSchemes.Where(x => x.WorkshopId == workshopId).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 + + }).ToListAsync(); + return new ClassificationSchemePartialModel() + { + HasScheme = true, + WorkshopId = workshopId, + ClassificationSchemesList = schemeList.GetAwaiter().GetResult() + }; + + } + + public Task CreateClassificationScheme(CreateClassificationScheme command) + { + throw new System.NotImplementedException(); + } +} \ No newline at end of file diff --git a/PersonalContractingParty.Config/PersonalBootstrapper.cs b/PersonalContractingParty.Config/PersonalBootstrapper.cs index 7cbbae65..1794058a 100644 --- a/PersonalContractingParty.Config/PersonalBootstrapper.cs +++ b/PersonalContractingParty.Config/PersonalBootstrapper.cs @@ -209,10 +209,12 @@ using Company.Domain.ContactUsAgg; using CompanyManagment.App.Contracts.ContactUs; using Company.Domain.EmployeeAuthorizeTempAgg; using Company.Domain.AdminMonthlyOverviewAgg; +using Company.Domain.ClassificationSchemeAgg; using Company.Domain.ContractingPartyBankAccountsAgg; using Company.Domain.PaymentInstrumentAgg; using Company.Domain.PaymentTransactionAgg; using CompanyManagment.App.Contracts.AdminMonthlyOverview; +using CompanyManagment.App.Contracts.ClassificationScheme; using CompanyManagment.App.Contracts.ContractingPartyBankAccounts; using CompanyManagment.App.Contracts.PaymentInstrument; using CompanyManagment.App.Contracts.PaymentTransaction; @@ -493,11 +495,19 @@ public class PersonalBootstrapper services.AddTransient(); services.AddTransient(); - //=========End Of Main==================================== - //---File Project------------------------------------ - services.AddTransient(); + #region ClassificationScheme + + services.AddTransient(); + services.AddTransient(); + + #endregion + //=========End Of Main==================================== + + //---File Project------------------------------------ + + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml index d43077f4..0bb085c2 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml @@ -2,6 +2,202 @@ @model ServiceHost.Areas.Admin.Pages.Company.Workshops.ClassificationSchemeModel @{ string adminVersion = _0_Framework.Application.Version.AdminVersion; + + } -

طرح طبقه بندی مشاغل

\ No newline at end of file + +@section Script +{ + + +} diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs index 4cf1f6fa..ca0c01ed 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs @@ -1,12 +1,81 @@ +using CompanyManagment.App.Contracts.ClassificationScheme; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; -namespace ServiceHost.Areas.Admin.Pages.Company.Workshops +namespace ServiceHost.Areas.Admin.Pages.Company.Workshops; + +/// +/// صفحه تنظیمات طرح طبقه بندی مشاغل +/// +public class ClassificationSchemeModel : PageModel { - public class ClassificationSchemeModel : PageModel + private readonly IClassificationSchemeApplication _classificationSchemeApplication; + + + public ClassificationSchemeModel(IClassificationSchemeApplication classificationSchemeApplication) { - public void OnGet() - { - } + _classificationSchemeApplication = classificationSchemeApplication; } -} + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + public bool HasScheme { get; set; } + public void OnGet(long workshopId) + { + WorkshopId = workshopId; + var scheme = _classificationSchemeApplication.ClassificationSchemePartialModel(workshopId).GetAwaiter().GetResult(); + HasScheme = scheme.HasScheme; + } + + /// + /// تب ایجاد طرح + /// + /// + public IActionResult OnGetSchemeTab(long workshopId) + { + //دریافت طرح + var scheme = _classificationSchemeApplication.ClassificationSchemePartialModel(workshopId).GetAwaiter().GetResult(); + scheme.WorkshopId = workshopId; + return Partial("_ClassificationPartials/ClassificationSchemeTab", scheme); + } + + /// + /// لود مودال ایجاد طرح + /// + /// + public IActionResult OnGetCreateScheme(long workshopId) + { + var model = new CreateClassificationScheme(); + model.WorkshopId = workshopId; + return Partial("_ClassificationPartials/CreateScheme", model); + } + + /// + /// ایجاد طرح + /// + /// + public async Task OnPostCreateScheme(CreateClassificationScheme command) + { + var result = await _classificationSchemeApplication.CreateClassificationScheme(command); + return new JsonResult(result); + } + + public IActionResult OnGetCreateJobs() + { + return Partial("_ClassificationPartials/CreateClassificationGroupJobs"); + } + + public IActionResult OnGetCreateSalaries() + { + return Partial("_ClassificationPartials/CreateClassificationGroupSalary"); + } + + public IActionResult OnGetAddEmployees() + { + return Partial("_ClassificationPartials/AddClassificationEmployees"); + } + +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml.cs index 664b7ff0..d851a360 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml.cs @@ -10,218 +10,217 @@ using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.AspNetCore.SignalR; using ServiceHost.Hubs; -namespace ServiceHost.Areas.Admin.Pages.Company.Workshops +namespace ServiceHost.Areas.Admin.Pages.Company.Workshops; + +[Authorize] +public class CreateWorkshopModel : PageModel { - [Authorize] - public class CreateWorkshopModel : PageModel + private readonly IWorkshopApplication _workshopApplication; + private readonly IEmployerApplication _EmployerApplication; + private readonly IAccountRepository _accountRepository; + private readonly IInsuranceJobApplication _insuranceJobApplication; + private readonly IAuthHelper _authHelper; + public CreateWorkshop Command; + public SelectList Employers; + + public CreateWorkshopModel(IWorkshopApplication workshopApplication, IEmployerApplication employerApplication, IAccountRepository accountRepository, IInsuranceJobApplication insuranceJobApplication, IAuthHelper authHelper) { - private readonly IWorkshopApplication _workshopApplication; - private readonly IEmployerApplication _EmployerApplication; - private readonly IAccountRepository _accountRepository; - private readonly IInsuranceJobApplication _insuranceJobApplication; - private readonly IAuthHelper _authHelper; - public CreateWorkshop Command; - public SelectList Employers; + _workshopApplication = workshopApplication; + _EmployerApplication = employerApplication; + _accountRepository = accountRepository; + _insuranceJobApplication = insuranceJobApplication; + _authHelper = authHelper; + } - public CreateWorkshopModel(IWorkshopApplication workshopApplication, IEmployerApplication employerApplication, IAccountRepository accountRepository, IInsuranceJobApplication insuranceJobApplication, IAuthHelper authHelper) + public void OnGet() + { + var permissionIds = _authHelper.GetPermissions(); + var list = _insuranceJobApplication.GetInsurancJob(); + var insuranceJob = list.Select(x => new InsuranceJobViewModel() { - _workshopApplication = workshopApplication; - _EmployerApplication = employerApplication; - _accountRepository = accountRepository; - _insuranceJobApplication = insuranceJobApplication; - _authHelper = authHelper; - } - - public void OnGet() + Id = x.Id, + InsuranceJobTitle = x.InsuranceJobTitle + " | " + x.EconomicCode, + }).ToList(); + var accounts = _accountRepository.GetAdminAccountsNew(); + var command = new CreateWorkshop { - var permissionIds = _authHelper.GetPermissions(); - var list = _insuranceJobApplication.GetInsurancJob(); - var insuranceJob = list.Select(x => new InsuranceJobViewModel() - { - Id = x.Id, - InsuranceJobTitle = x.InsuranceJobTitle + " | " + x.EconomicCode, - }).ToList(); - var accounts = _accountRepository.GetAdminAccountsNew(); - var command = new CreateWorkshop - { - Employers = _EmployerApplication.GetAllEmployers(), - AccountsList = accounts, - SeniorContractAccountsList = accounts.Where(x => x.RoleId == 3).ToList(), - JuniorContractAccountsList = accounts.Where(x => x.RoleId == 5).ToList(), - SeniorInsuranceAccountList = accounts.Where(x => x.RoleId == 7).ToList(), - JuniorInsuranceAccountsList = accounts.Where(x => x.RoleId == 8).ToList(), - InsuranceJobViewModels = new SelectList(insuranceJob, "Id", "InsuranceJobTitle"), - CutContractEndOfYear = IsActive.None, - RotatingShiftCompute = true - }; + Employers = _EmployerApplication.GetAllEmployers(), + AccountsList = accounts, + SeniorContractAccountsList = accounts.Where(x => x.RoleId == 3).ToList(), + JuniorContractAccountsList = accounts.Where(x => x.RoleId == 5).ToList(), + SeniorInsuranceAccountList = accounts.Where(x => x.RoleId == 7).ToList(), + JuniorInsuranceAccountsList = accounts.Where(x => x.RoleId == 8).ToList(), + InsuranceJobViewModels = new SelectList(insuranceJob, "Id", "InsuranceJobTitle"), + CutContractEndOfYear = IsActive.None, + RotatingShiftCompute = true + }; - var res = _workshopApplication.GetWorkshop(); - var checkOk = res.Any(); - int item = 0; + var res = _workshopApplication.GetWorkshop(); + var checkOk = res.Any(); + int item = 0; - var codes = new List(); - foreach (var i in res) - { - - - string bb = string.Empty; - - if (i.ArchiveCode != null) - { - for (int x = 0; x < i.ArchiveCode.Length; x++) - { - if (char.IsDigit(i.ArchiveCode[x])) - bb += i.ArchiveCode[x]; - } - - if (bb.Length > 0) - { - int convert = int.Parse(bb); - codes.Add(convert); - } - } - } - if (checkOk) - { - item = codes.Max(); - } - - int sum = item + 1; - string newcode = sum.ToString(); - command.ArchiveCode = newcode; - command.PermissionIds = permissionIds; - // command.CurrentAccoutRoleId = currentAccout.RoleId; - - - Command = command; - } - - public IActionResult OnPostCreate(CreateWorkshop command) + var codes = new List(); + foreach (var i in res) { - #region checkIsLegalAndNotIsLegal - OperationResult resultIsLegal = new OperationResult(); - var selectEmployerList = _EmployerApplication.GetEmployers().Where(x => command.EmployerIdList.Contains(x.Id)).ToList(); - var isNotlegal = selectEmployerList.Where(x => x.IsLegal == "حقیقی").FirstOrDefault(); - var islegal = selectEmployerList.Where(x => x.IsLegal == "حقوقی").FirstOrDefault(); - if (isNotlegal != null && islegal != null) - return new JsonResult(resultIsLegal.Failed("امکان انتخاب کارفرمای حقیقی و حقوقی به دلیل موانع قانونی در نرم افزار بصورت همزمان امکان پذیر نمی باشد")); - #endregion - var res = _workshopApplication.GetWorkshop(); - bool checkNumber = false; - bool checkExist = false; - - string a = command.ArchiveCode; string bb = string.Empty; - int convert2 = 0; - if (!string.IsNullOrWhiteSpace(a)) + + if (i.ArchiveCode != null) { - for (int x = 0; x < a.Length; x++) + for (int x = 0; x < i.ArchiveCode.Length; x++) { - if (char.IsDigit(a[x])) - bb += a[x]; + if (char.IsDigit(i.ArchiveCode[x])) + bb += i.ArchiveCode[x]; } if (bb.Length > 0) { - checkNumber = true; - convert2 = int.Parse(bb); - } - else - { - checkNumber = false; - + int convert = int.Parse(bb); + codes.Add(convert); } } - else + } + if (checkOk) + { + item = codes.Max(); + } + + int sum = item + 1; + string newcode = sum.ToString(); + command.ArchiveCode = newcode; + command.PermissionIds = permissionIds; + // command.CurrentAccoutRoleId = currentAccout.RoleId; + + + Command = command; + } + + public IActionResult OnPostCreate(CreateWorkshop command) + { + #region checkIsLegalAndNotIsLegal + OperationResult resultIsLegal = new OperationResult(); + var selectEmployerList = _EmployerApplication.GetEmployers().Where(x => command.EmployerIdList.Contains(x.Id)).ToList(); + var isNotlegal = selectEmployerList.Where(x => x.IsLegal == "حقیقی").FirstOrDefault(); + var islegal = selectEmployerList.Where(x => x.IsLegal == "حقوقی").FirstOrDefault(); + + if (isNotlegal != null && islegal != null) + return new JsonResult(resultIsLegal.Failed("امکان انتخاب کارفرمای حقیقی و حقوقی به دلیل موانع قانونی در نرم افزار بصورت همزمان امکان پذیر نمی باشد")); + #endregion + + var res = _workshopApplication.GetWorkshop(); + bool checkNumber = false; + bool checkExist = false; + + string a = command.ArchiveCode; + string bb = string.Empty; + int convert2 = 0; + if (!string.IsNullOrWhiteSpace(a)) + { + for (int x = 0; x < a.Length; x++) + { + if (char.IsDigit(a[x])) + bb += a[x]; + } + + if (bb.Length > 0) { checkNumber = true; - - } - - var codes = new List(); - foreach (var i in res) - { - - string b2 = string.Empty; - - if (i.ArchiveCode != null) - { - for (int x = 0; x < i.ArchiveCode.Length; x++) - { - if (char.IsDigit(i.ArchiveCode[x])) - b2 += i.ArchiveCode[x]; - } - - if (b2.Length > 0) - { - int convert = int.Parse(b2); - codes.Add(convert); - } - } - } - foreach (var item in codes) - { - if (item == convert2) - checkExist = true; - } - if (checkNumber) - { - //if (checkExist) - //{ - // var res3 = _workshopApplication.ExistErr(); - // return new JsonResult(res3); - //} - //Thread.Sleep(5000); - command.TypeOfInsuranceSend = command.TypeOfInsuranceSend == "false" ? "" : command.TypeOfInsuranceSend; - - command.InsuranceCode = !string.IsNullOrWhiteSpace(command.InsuranceCode) ? command.InsuranceCode.ConvertToEnglish() : ""; - command.ArchiveCode = !string.IsNullOrWhiteSpace(command.ArchiveCode) ? command.ArchiveCode.ConvertToEnglish() : ""; - command.AgreementNumber = !string.IsNullOrWhiteSpace(command.AgreementNumber) ? command.AgreementNumber.ConvertToEnglish() : ""; - command.TypeOfInsuranceSend = command.TypeOfInsuranceSend == "false" ? null : command.TypeOfInsuranceSend; - - if (command.HasRollCallFreeVip == "on") - { - command.HasRollCallFreeVip = "true"; - if (command.HasCustomizeCheckoutService == "on") - command.HasCustomizeCheckoutService = "true"; - - } - else - { - command.HasRollCallFreeVip = "false"; - } - var result = _workshopApplication.Create(command); - return new JsonResult(result); + convert2 = int.Parse(bb); } else { - var res2 = _workshopApplication.Err(); - return new JsonResult(res2); + checkNumber = false; + } } - - public IActionResult OnGetWorkshopName(string searchText) + else { - var result = _workshopApplication.GetWorkshopByTextSearch(searchText); - result = result.OrderBy(x => x.WorkshopFullName.Length).ToList(); - return new JsonResult(new - { - IsSuccedded = true, - mylist = result, - }); + checkNumber = true; + } - public IActionResult OnGetEmployerName(string searchText) + var codes = new List(); + foreach (var i in res) { - var result = _EmployerApplication.GetEmployerWithFNameOrLName(searchText); - result = result.OrderBy(x => x.LName.Length).ToList(); - return new JsonResult(new + + string b2 = string.Empty; + + if (i.ArchiveCode != null) { - IsSuccedded = true, - mylist = result, - }); + for (int x = 0; x < i.ArchiveCode.Length; x++) + { + if (char.IsDigit(i.ArchiveCode[x])) + b2 += i.ArchiveCode[x]; + } + + if (b2.Length > 0) + { + int convert = int.Parse(b2); + codes.Add(convert); + } + } + } + foreach (var item in codes) + { + if (item == convert2) + checkExist = true; + } + if (checkNumber) + { + //if (checkExist) + //{ + // var res3 = _workshopApplication.ExistErr(); + // return new JsonResult(res3); + //} + //Thread.Sleep(5000); + command.TypeOfInsuranceSend = command.TypeOfInsuranceSend == "false" ? "" : command.TypeOfInsuranceSend; + + command.InsuranceCode = !string.IsNullOrWhiteSpace(command.InsuranceCode) ? command.InsuranceCode.ConvertToEnglish() : ""; + command.ArchiveCode = !string.IsNullOrWhiteSpace(command.ArchiveCode) ? command.ArchiveCode.ConvertToEnglish() : ""; + command.AgreementNumber = !string.IsNullOrWhiteSpace(command.AgreementNumber) ? command.AgreementNumber.ConvertToEnglish() : ""; + command.TypeOfInsuranceSend = command.TypeOfInsuranceSend == "false" ? null : command.TypeOfInsuranceSend; + + if (command.HasRollCallFreeVip == "on") + { + command.HasRollCallFreeVip = "true"; + if (command.HasCustomizeCheckoutService == "on") + command.HasCustomizeCheckoutService = "true"; + + } + else + { + command.HasRollCallFreeVip = "false"; + } + var result = _workshopApplication.Create(command); + return new JsonResult(result); + } + else + { + var res2 = _workshopApplication.Err(); + return new JsonResult(res2); } } -} + + public IActionResult OnGetWorkshopName(string searchText) + { + var result = _workshopApplication.GetWorkshopByTextSearch(searchText); + result = result.OrderBy(x => x.WorkshopFullName.Length).ToList(); + return new JsonResult(new + { + IsSuccedded = true, + mylist = result, + }); + } + + public IActionResult OnGetEmployerName(string searchText) + { + var result = _EmployerApplication.GetEmployerWithFNameOrLName(searchText); + result = result.OrderBy(x => x.LName.Length).ToList(); + return new JsonResult(new + { + IsSuccedded = true, + mylist = result, + }); + } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/EditWorkshop.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Workshops/EditWorkshop.cshtml.cs index 4703fa31..2937e7cc 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/EditWorkshop.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/EditWorkshop.cshtml.cs @@ -13,260 +13,259 @@ using CompanyManagment.App.Contracts.RollCall; using CompanyManagment.App.Contracts.RollCallService; using CompanyManagment.EFCore.Repository; -namespace ServiceHost.Areas.Admin.Pages.Company.Workshops +namespace ServiceHost.Areas.Admin.Pages.Company.Workshops; + +[Authorize] +public class EditWorkshopModel : PageModel { - [Authorize] - public class EditWorkshopModel : PageModel + public string Message { get; set; } + private readonly IWorkshopApplication _workshopApplication; + private readonly IWorkshopRepository _workshopRepository; + private readonly IEmployerApplication _EmployerApplication; + private readonly IAccountRepository _accountRepository; + private readonly IInsuranceJobApplication _insuranceJobApplication; + private readonly IRollCallServiceApplication _rollCallServiceApplication; + private readonly IAuthHelper _authHelper; + public EditWorkshop Command; + public SelectList Employers; + public RollCallServiceViewModel RollCallService; + public bool HasPermissionWorkshopInfo; + public bool HasPermissionContract; + public bool HasPermissionInsurance; + public bool HasPermissionAccount; + public List DeactivatedAccounts; + + public EditWorkshopModel(IWorkshopApplication workshopApplication, IWorkshopRepository workshopRepository, IEmployerApplication employerApplication, IAccountRepository accountRepository, IInsuranceJobApplication insuranceJobApplication, IAuthHelper authHelper, IRollCallServiceApplication rollCallServiceApplication) { - public string Message { get; set; } - private readonly IWorkshopApplication _workshopApplication; - private readonly IWorkshopRepository _workshopRepository; - private readonly IEmployerApplication _EmployerApplication; - private readonly IAccountRepository _accountRepository; - private readonly IInsuranceJobApplication _insuranceJobApplication; - private readonly IRollCallServiceApplication _rollCallServiceApplication; - private readonly IAuthHelper _authHelper; - public EditWorkshop Command; - public SelectList Employers; - public RollCallServiceViewModel RollCallService; - public bool HasPermissionWorkshopInfo; - public bool HasPermissionContract; - public bool HasPermissionInsurance; - public bool HasPermissionAccount; - public List DeactivatedAccounts; + _workshopApplication = workshopApplication; + _workshopRepository = workshopRepository; + _EmployerApplication = employerApplication; + _accountRepository = accountRepository; + _insuranceJobApplication = insuranceJobApplication; + _authHelper = authHelper; + _rollCallServiceApplication = rollCallServiceApplication; + } - public EditWorkshopModel(IWorkshopApplication workshopApplication, IWorkshopRepository workshopRepository, IEmployerApplication employerApplication, IAccountRepository accountRepository, IInsuranceJobApplication insuranceJobApplication, IAuthHelper authHelper, IRollCallServiceApplication rollCallServiceApplication) + public void OnGet(long id) + { + var permissions = _authHelper.GetPermissions(); + HasPermissionWorkshopInfo = permissions.Any(x => x == 10326); + HasPermissionContract = permissions.Any(x => x == 10323); + HasPermissionInsurance = permissions.Any(x => x == 10324); + HasPermissionAccount = permissions.Any(x => x == 10330); + + var permissionIds = _authHelper.GetPermissions(); + // var currentAccout = _authHelper.CurrentAccountInfo(); + var list = _insuranceJobApplication.GetInsurancJob(); + var insuranceJob = list.Select(x => new InsuranceJobViewModel() { - _workshopApplication = workshopApplication; - _workshopRepository = workshopRepository; - _EmployerApplication = employerApplication; - _accountRepository = accountRepository; - _insuranceJobApplication = insuranceJobApplication; - _authHelper = authHelper; - _rollCallServiceApplication = rollCallServiceApplication; - } + Id = x.Id, + InsuranceJobTitle = x.InsuranceJobTitle + " | " + x.EconomicCode, + }).ToList(); - public void OnGet(long id) - { - var permissions = _authHelper.GetPermissions(); - HasPermissionWorkshopInfo = permissions.Any(x => x == 10326); - HasPermissionContract = permissions.Any(x => x == 10323); - HasPermissionInsurance = permissions.Any(x => x == 10324); - HasPermissionAccount = permissions.Any(x => x == 10330); + RollCallService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(id); + if (RollCallService != null) + RollCallService.EndServiceToFarsiDuration = RollCallService.EndServiceStr.ToFarsiDuration2(); - var permissionIds = _authHelper.GetPermissions(); - // var currentAccout = _authHelper.CurrentAccountInfo(); - var list = _insuranceJobApplication.GetInsurancJob(); - var insuranceJob = list.Select(x => new InsuranceJobViewModel() - { - Id = x.Id, - InsuranceJobTitle = x.InsuranceJobTitle + " | " + x.EconomicCode, - }).ToList(); + var allAccounts = _accountRepository.GetAccountsToEditWorkshop(id); - RollCallService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(id); - if (RollCallService != null) - RollCallService.EndServiceToFarsiDuration = RollCallService.EndServiceStr.ToFarsiDuration2(); + var activeAccounts = allAccounts.Where(x => x.IsActiveString == "true").ToList(); - var allAccounts = _accountRepository.GetAccountsToEditWorkshop(id); + DeactivatedAccounts = allAccounts.Except(activeAccounts).ToList(); - var activeAccounts = allAccounts.Where(x => x.IsActiveString == "true").ToList(); + var workshop = _workshopApplication.GetDetails(id); - DeactivatedAccounts = allAccounts.Except(activeAccounts).ToList(); + workshop.Employers = _EmployerApplication.GetAllEmployers(); - var workshop = _workshopApplication.GetDetails(id); + workshop.AccountsList = activeAccounts; - workshop.Employers = _EmployerApplication.GetAllEmployers(); - - workshop.AccountsList = activeAccounts; - - var adminAccounts = _accountRepository.GetAdminAccountsNew(); - workshop.SeniorContractAccountsList = adminAccounts.Where(x => x.RoleId == 3).ToList(); - workshop.JuniorContractAccountsList = adminAccounts.Where(x => x.RoleId == 5).ToList(); - workshop.SeniorInsuranceAccountList = adminAccounts.Where(x => x.RoleId == 7).ToList(); - workshop.JuniorInsuranceAccountsList = adminAccounts.Where(x => x.RoleId == 8).ToList(); + var adminAccounts = _accountRepository.GetAdminAccountsNew(); + workshop.SeniorContractAccountsList = adminAccounts.Where(x => x.RoleId == 3).ToList(); + workshop.JuniorContractAccountsList = adminAccounts.Where(x => x.RoleId == 5).ToList(); + workshop.SeniorInsuranceAccountList = adminAccounts.Where(x => x.RoleId == 7).ToList(); + workshop.JuniorInsuranceAccountsList = adminAccounts.Where(x => x.RoleId == 8).ToList(); - workshop.EmployerIdList = _workshopRepository.GetRelation(id); - workshop.AccountIdsList = _workshopRepository.GetWorkshopAccountRelation(id); + workshop.EmployerIdList = _workshopRepository.GetRelation(id); + workshop.AccountIdsList = _workshopRepository.GetWorkshopAccountRelation(id); - workshop.DeActiveAccounts = allAccounts.Except(activeAccounts).ToList(); - workshop.ActiveAccounts = activeAccounts; - //workshop.InAccountIdsList = _accountRepository.GetAccounts() - // .Where(x => _workshopRepository.GetWorkshopAccountRelation(id).Contains(x.Id)) - // .ToList(); + workshop.DeActiveAccounts = allAccounts.Except(activeAccounts).ToList(); + workshop.ActiveAccounts = activeAccounts; + //workshop.InAccountIdsList = _accountRepository.GetAccounts() + // .Where(x => _workshopRepository.GetWorkshopAccountRelation(id).Contains(x.Id)) + // .ToList(); - workshop.InsuranceJobViewModels = new SelectList(insuranceJob, "Id", "InsuranceJobTitle"); - Message = workshop.ArchiveCode; - workshop.PermissionIds = permissionIds; - Command = workshop; + workshop.InsuranceJobViewModels = new SelectList(insuranceJob, "Id", "InsuranceJobTitle"); + Message = workshop.ArchiveCode; + workshop.PermissionIds = permissionIds; + Command = workshop; + } + + public IActionResult OnPostEdit(EditWorkshop command) + { + var aaa = command; + if (ModelState.IsValid) + { + } - public IActionResult OnPostEdit(EditWorkshop command) + #region checkIsLegalAndNotIsLegal + OperationResult resultIsLegal = new OperationResult(); + var selectEmployerList = _EmployerApplication.GetEmployers().Where(x => command.EmployerIdList.Contains(x.Id)).ToList(); + var isNotlegal = selectEmployerList.Where(x => x.IsLegal == "حقیقی").FirstOrDefault(); + var islegal = selectEmployerList.Where(x => x.IsLegal == "حقوقی").FirstOrDefault(); + + if (isNotlegal != null && islegal != null) + return new JsonResult(resultIsLegal.Failed("امکان انتخاب کارفرمای حقیقی و حقوقی به دلیل موانع قانونی در نرم افزار بصورت همزمان امکان پذیر نمی باشد")); + #endregion + + var workshop = _workshopApplication.GetDetails(command.Id); + var lastNumber = workshop.ArchiveCode; + var res = _workshopApplication.GetWorkshop(); + bool checkNumber = false; + bool checkExist = false; + var pration = new OperationResult(); + string a = command.ArchiveCode; + string bb = string.Empty; + int convert2 = 0; + if (!string.IsNullOrWhiteSpace(a)) { - var aaa = command; - if (ModelState.IsValid) + for (int x = 0; x < a.Length; x++) { - + if (char.IsDigit(a[x])) + bb += a[x]; } - #region checkIsLegalAndNotIsLegal - OperationResult resultIsLegal = new OperationResult(); - var selectEmployerList = _EmployerApplication.GetEmployers().Where(x => command.EmployerIdList.Contains(x.Id)).ToList(); - var isNotlegal = selectEmployerList.Where(x => x.IsLegal == "حقیقی").FirstOrDefault(); - var islegal = selectEmployerList.Where(x => x.IsLegal == "حقوقی").FirstOrDefault(); - - if (isNotlegal != null && islegal != null) - return new JsonResult(resultIsLegal.Failed("امکان انتخاب کارفرمای حقیقی و حقوقی به دلیل موانع قانونی در نرم افزار بصورت همزمان امکان پذیر نمی باشد")); - #endregion - - var workshop = _workshopApplication.GetDetails(command.Id); - var lastNumber = workshop.ArchiveCode; - var res = _workshopApplication.GetWorkshop(); - bool checkNumber = false; - bool checkExist = false; - var pration = new OperationResult(); - string a = command.ArchiveCode; - string bb = string.Empty; - int convert2 = 0; - if (!string.IsNullOrWhiteSpace(a)) - { - for (int x = 0; x < a.Length; x++) - { - if (char.IsDigit(a[x])) - bb += a[x]; - } - - if (bb.Length > 0) - { - checkNumber = true; - convert2 = int.Parse(bb); - } - else - { - checkNumber = false; - - } - } - else + if (bb.Length > 0) { checkNumber = true; - - } - - var codes = new List(); - foreach (var i in res) - { - - string b2 = string.Empty; - - if (i.ArchiveCode != null && i.ArchiveCode != lastNumber) - { - for (int x = 0; x < i.ArchiveCode.Length; x++) - { - if (char.IsDigit(i.ArchiveCode[x])) - b2 += i.ArchiveCode[x]; - } - - if (b2.Length > 0) - { - int convert = int.Parse(b2); - codes.Add(convert); - } - } - - - } - - foreach (var item in codes) - { - if (item == convert2) - checkExist = true; - } - - if (checkNumber) - { - //var EmpoyersSelected = _EmployerRepository.Get(command.EmployerId); - //if (EmpoyersSelected.EmployerNo == null) - //{ - // EmpoyersSelected.EditEmployerNo(command.ArchiveCode); - //} - command.InsuranceCode = !string.IsNullOrWhiteSpace(command.InsuranceCode) ? command.InsuranceCode.ConvertToEnglish() : ""; - command.ArchiveCode = !string.IsNullOrWhiteSpace(command.ArchiveCode) ? command.ArchiveCode.ConvertToEnglish() : ""; - command.AgreementNumber = !string.IsNullOrWhiteSpace(command.AgreementNumber) ? command.AgreementNumber.ConvertToEnglish() : ""; - command.TypeOfInsuranceSend = command.TypeOfInsuranceSend == "false" ? null : command.TypeOfInsuranceSend; - - #region Vafa - - if (command.HasRollCallFreeVip == "ture") - { - //var todayPersianDate = DateTime.Now.ToFirstDayOfNextMonth(); - // var financialWorkshop - //double amount = Convert.ToDouble(0); - - //var commandSaveRollCall = new CreateRollCallService() - //{ - // AccountId = _authHelper.CurrentAccountId(), - // WorkshopId = command.Id, - // ServiceType = "VIP", - // EndService = command.EndService, - // Amount = amount, - // MaxPersonValid = -1, - // Duration = command.Duration, - //}; - - //var resultRollCall = _rollCallServiceApplication.Create(commandSaveRollCall); - } - - #endregion - - if (command.HasRollCallFreeVip == "on") - { - command.HasRollCallFreeVip = "true"; - if (command.HasCustomizeCheckoutService == "on") - { - command.HasCustomizeCheckoutService = "true"; - } - else - { - command.HasCustomizeCheckoutService = "false"; - } - - - } - else - { - command.HasRollCallFreeVip = "false"; - } - var result = _workshopApplication.Edit(command); - - return new JsonResult(result); + convert2 = int.Parse(bb); } else { - var res2 = _workshopApplication.Err(); - return new JsonResult(res2); + checkNumber = false; + } - //else - //{ - // var res3 = _workshopApplication.ExistErr(); - // return new JsonResult(res3); - //} + } + else + { + checkNumber = true; + } + var codes = new List(); + foreach (var i in res) + { + + string b2 = string.Empty; + + if (i.ArchiveCode != null && i.ArchiveCode != lastNumber) + { + for (int x = 0; x < i.ArchiveCode.Length; x++) + { + if (char.IsDigit(i.ArchiveCode[x])) + b2 += i.ArchiveCode[x]; + } + + if (b2.Length > 0) + { + int convert = int.Parse(b2); + codes.Add(convert); + } + } + } + foreach (var item in codes) + { + if (item == convert2) + checkExist = true; + } + if (checkNumber) + { + //var EmpoyersSelected = _EmployerRepository.Get(command.EmployerId); + //if (EmpoyersSelected.EmployerNo == null) + //{ + // EmpoyersSelected.EditEmployerNo(command.ArchiveCode); + //} + command.InsuranceCode = !string.IsNullOrWhiteSpace(command.InsuranceCode) ? command.InsuranceCode.ConvertToEnglish() : ""; + command.ArchiveCode = !string.IsNullOrWhiteSpace(command.ArchiveCode) ? command.ArchiveCode.ConvertToEnglish() : ""; + command.AgreementNumber = !string.IsNullOrWhiteSpace(command.AgreementNumber) ? command.AgreementNumber.ConvertToEnglish() : ""; + command.TypeOfInsuranceSend = command.TypeOfInsuranceSend == "false" ? null : command.TypeOfInsuranceSend; + #region Vafa + if (command.HasRollCallFreeVip == "ture") + { + //var todayPersianDate = DateTime.Now.ToFirstDayOfNextMonth(); + // var financialWorkshop + //double amount = Convert.ToDouble(0); + //var commandSaveRollCall = new CreateRollCallService() + //{ + // AccountId = _authHelper.CurrentAccountId(), + // WorkshopId = command.Id, + // ServiceType = "VIP", + // EndService = command.EndService, + // Amount = amount, + // MaxPersonValid = -1, + // Duration = command.Duration, + //}; + //var resultRollCall = _rollCallServiceApplication.Create(commandSaveRollCall); + } + #endregion + + if (command.HasRollCallFreeVip == "on") + { + command.HasRollCallFreeVip = "true"; + if (command.HasCustomizeCheckoutService == "on") + { + command.HasCustomizeCheckoutService = "true"; + } + else + { + command.HasCustomizeCheckoutService = "false"; + } + + } + else + { + command.HasRollCallFreeVip = "false"; + } + var result = _workshopApplication.Edit(command); - + return new JsonResult(result); + } + else + { + var res2 = _workshopApplication.Err(); + return new JsonResult(res2); + } + //else + //{ + // var res3 = _workshopApplication.ExistErr(); + // return new JsonResult(res3); + //} } -} + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/Index.cshtml index 62d76168..009414a8 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/Index.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/Index.cshtml @@ -764,7 +764,7 @@
@if (item.IsClassified) { - +

طرح طبقه بندی diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/AddClassificationEmployees.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/AddClassificationEmployees.cshtml new file mode 100644 index 00000000..8f5ca5d6 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/AddClassificationEmployees.cshtml @@ -0,0 +1,9 @@ +@* + For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 +*@ +@{ +} + +

+ +
diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationSchemeTab.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationSchemeTab.cshtml new file mode 100644 index 00000000..8fc24974 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationSchemeTab.cshtml @@ -0,0 +1,134 @@ +@model CompanyManagment.App.Contracts.ClassificationScheme.ClassificationSchemePartialModel + +@{ + int index = 1; + + + +} +
+ + @if (!Model.HasScheme) + { + + + + @* *@ + + + + + + ایجاد طرح + + } + else + { +
+ + +
+
ردیف
+
نام طراح
+
تاریخ شمول
+
تاریخ اجرا
+
عملیات
+
+ + + @foreach (var item in Model.ClassificationSchemesList) + { +
+ +
@index
+
@item.DesignerFullName
+
@item.IncludingDateFa
+
@item.ExecutionDateFa
+ @{ + index++; + } + +
+ + + + } +
+ } + +
\ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateClassificationGroupJobs.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateClassificationGroupJobs.cshtml new file mode 100644 index 00000000..90cd8816 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateClassificationGroupJobs.cshtml @@ -0,0 +1,8 @@ +@* + For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 +*@ +@{ +} +
+ +
\ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateClassificationGroupSalary.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateClassificationGroupSalary.cshtml new file mode 100644 index 00000000..e4bac05e --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateClassificationGroupSalary.cshtml @@ -0,0 +1,8 @@ +@* + For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 +*@ +@{ +} +
+ +
diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateScheme.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateScheme.cshtml new file mode 100644 index 00000000..58e581cf --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateScheme.cshtml @@ -0,0 +1,85 @@ +@using _0_Framework.Application.Enums +@model CompanyManagment.App.Contracts.ClassificationScheme.CreateClassificationScheme +@{ + +} + + +
+ + + +