diff --git a/Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs b/Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs index ecc07005..34f955b5 100644 --- a/Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs +++ b/Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs @@ -59,4 +59,5 @@ public interface IInstitutionContractRepository : IRepository GetExtensionInstitutionPlan(InstitutionContractExtensionPlanRequest request); Task GetExtensionPaymentMethod(InstitutionContractExtensionPaymentRequest request); Task ExtensionComplete(InstitutionContractExtensionCompleteRequest request); + Task> GetInstitutionContractSelectList(string search, string selected); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs index a226ac7e..2ae1ecff 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs @@ -219,8 +219,11 @@ public interface IInstitutionContractApplication InstitutionContractExtensionPaymentRequest request); Task ExtensionComplete(InstitutionContractExtensionCompleteRequest request); + Task> GetInstitutionContractSelectList(string search,string selected); } +public class InstitutionContractSelectListViewModel : SelectListViewModel; + public class InstitutionContractExtensionInquiryResponse { public long Id { get; set; } diff --git a/CompanyManagment.Application/InstitutionContractApplication.cs b/CompanyManagment.Application/InstitutionContractApplication.cs index bbe7f441..64e8e103 100644 --- a/CompanyManagment.Application/InstitutionContractApplication.cs +++ b/CompanyManagment.Application/InstitutionContractApplication.cs @@ -1301,6 +1301,11 @@ public class InstitutionContractApplication : IInstitutionContractApplication { return await _institutionContractRepository.ExtensionComplete(request); } + + public async Task> GetInstitutionContractSelectList(string search, string selected) + { + return await _institutionContractRepository.GetInstitutionContractSelectList(search,selected); + } private async Task> CreateLegalContractingPartyEntity( diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index 04bfb463..09aebdd1 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -1083,6 +1083,11 @@ public class InstitutionContractRepository : RepositoryBase x.contractingParty.RepresentativeFullName.Contains(keyword) || (x.contractingParty.FName + " " + x.contractingParty.LName).Contains(keyword) || + (x.contractingParty.IsLegal == "حقیقی" ? x.contractingParty.SureName == null + ? x.contractingParty.FName + " " + x.contractingParty.LName + : x.contractingParty.FName + " " + x.contractingParty.LName + " " + x.contractingParty.SureName + : x.contractingParty.SureName == null ? x.contractingParty.LName + : x.contractingParty.LName + " " + x.contractingParty.SureName).Contains(keyword)|| x.contractingParty.Employers.Any(e => e.FullName.Contains(keyword) || e.WorkshopEmployers.Any(we => @@ -2326,6 +2331,60 @@ public class InstitutionContractRepository : RepositoryBase> GetInstitutionContractSelectList(string search, + string selected) + { + var contractingParties = _context.PersonalContractingParties.Select(x => new InstitutionContractSelectListViewModel() + { + Id = x.id, + Text = x.IsLegal == "حقیقی" ? x.SureName == null + ? x.FName + " " + x.LName + : x.FName + " " + x.LName + " " + x.SureName + : x.SureName == null ? x.LName + : x.LName + " " + x.SureName + }); + + var workshops = _context.Workshops.Select(x => new InstitutionContractSelectListViewModel() + { + Id = x.id, + Text = x.WorkshopFullName + }); + var employers = _context.Employers.Select(x => new InstitutionContractSelectListViewModel() + { + Id = x.id, + Text = x.FName + " " + x.LName + }); + var representatives = _context.RepresentativeSet.Select(x => new InstitutionContractSelectListViewModel() + { + Id = x.id, + Text = x.FName + " " + x.LName + }); + + var res = contractingParties + .Union(workshops) + .Union(employers) + .Union(representatives); + + InstitutionContractSelectListViewModel idSelected = null; + + if (string.IsNullOrWhiteSpace(selected)) + { + idSelected = await res.FirstOrDefaultAsync(x => x.Text == selected); + } + if (string.IsNullOrWhiteSpace(search)) + { + res = res.Where(x => x.Text.Contains(search)); + } + + var list = await res.Take(100).ToListAsync(); + + if (idSelected != null) + list.Add(idSelected); + + return list.DistinctBy(x => x.Id).ToList(); + + } + private InstitutionContractExtensionPaymentResponse CalculateInPersonPayment( InstitutionContractExtensionPlanDetail selectedPlan, double baseAmount, double tenPercent, diff --git a/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs b/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs index 9459b6be..3c8b0ddb 100644 --- a/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs +++ b/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs @@ -67,6 +67,14 @@ public class institutionContractController : AdminBaseController { return await _institutionContractApplication.GetList(searchModel); } + + [HttpGet("select-list")] + public async Task>> GetContractingPartySelectList(string search,string selected) + { + var result = await _institutionContractApplication + .GetInstitutionContractSelectList(search,selected); + return result; + } /// /// وضعیت تب ها