diff --git a/Company.Domain/ContractingPartyBankAccountsAgg/IContractingPartyBankAccountsRepository.cs b/Company.Domain/ContractingPartyBankAccountsAgg/IContractingPartyBankAccountsRepository.cs index 3b7dd277..707c874f 100644 --- a/Company.Domain/ContractingPartyBankAccountsAgg/IContractingPartyBankAccountsRepository.cs +++ b/Company.Domain/ContractingPartyBankAccountsAgg/IContractingPartyBankAccountsRepository.cs @@ -8,10 +8,12 @@ namespace Company.Domain.ContractingPartyBankAccountsAgg; public interface IContractingPartyBankAccountsRepository:IRepository { - Task>> GetList(ContractingPartyBankAccountSearchModel searchModel); - Task>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected); - Task>> IBanSelectList(string search, string selected); + Task> GetList(ContractingPartyBankAccountSearchModel searchModel); + Task> ContractingPartyOrAccountHolderNameSelectList(string search, string selected); + Task> IBanSelectList(string search, string selected); - Task>> CardNumberSelectList(string search, string selected); - Task>> AccountNumberSelectList(string search, string selected); + Task> CardNumberSelectList(string search, string selected); + Task> AccountNumberSelectList(string search, string selected); + Task> GetAccountHolderNameSelectList(string search, string selected); + Task> ContractingPartyNamesSelectList(string search, string selected); } \ No newline at end of file diff --git a/Company.Domain/PaymentInstrumentAgg/IPaymentInstrumentRepository.cs b/Company.Domain/PaymentInstrumentAgg/IPaymentInstrumentRepository.cs index 69312633..a8d4a943 100644 --- a/Company.Domain/PaymentInstrumentAgg/IPaymentInstrumentRepository.cs +++ b/Company.Domain/PaymentInstrumentAgg/IPaymentInstrumentRepository.cs @@ -10,9 +10,10 @@ public interface IPaymentInstrumentRepository:IRepository GetList(PaymentInstrumentSearchModel searchModel); Task> GetPosTerminalSelectList(string search); - Task>> PosTerminalIdSelectList(string search, string selected); - Task>> IbanSelectList(string search, string selected); - Task>> AccountNumberSelectList(string search, string selected); - Task>> CardNumberSelectList(string search, string selected); + Task> PosTerminalIdSelectList(string search, string selected); + Task> IbanSelectList(string search, string selected); + Task> AccountNumberSelectList(string search, string selected); + Task> CardNumberSelectList(string search, string selected); + Task> AccountHolderNameSelectList(string search, string selected); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/IContractingPartyBankAccountsApplication.cs b/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/IContractingPartyBankAccountsApplication.cs index aa5b7415..1c2c665d 100644 --- a/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/IContractingPartyBankAccountsApplication.cs +++ b/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/IContractingPartyBankAccountsApplication.cs @@ -24,8 +24,7 @@ public interface IContractingPartyBankAccountsApplication /// /// /// - Task>> GetList( - ContractingPartyBankAccountSearchModel searchModel); + Task> GetList(ContractingPartyBankAccountSearchModel searchModel); /// /// سلکت لیست جستجو برای نام طرف حساب / صاحب حساب @@ -33,7 +32,7 @@ public interface IContractingPartyBankAccountsApplication /// نام جستجو /// نام سلکت شده /// - Task>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected); + Task> ContractingPartyOrAccountHolderNameSelectList(string search, string selected); /// /// سلکت لیست شماره کارت @@ -41,7 +40,7 @@ public interface IContractingPartyBankAccountsApplication /// نام جستجو /// نام سلکت شده /// - Task>> CardNumberSelectList(string search, string selected); + Task> CardNumberSelectList(string search, string selected); /// /// سلکت لیست شماره شبا @@ -49,7 +48,7 @@ public interface IContractingPartyBankAccountsApplication /// نام جستجو /// نام سلکت شده /// - Task>> IBanSelectList(string search, string selected); + Task> IBanSelectList(string search, string selected); /// /// سلکت لیست شماره حساب @@ -57,6 +56,22 @@ public interface IContractingPartyBankAccountsApplication /// نام جستجو /// نام سلکت شده /// - Task>> AccountNumberSelectList(string search, string selected); + Task> AccountNumberSelectList(string search, string selected); + + /// + /// سلکت لیست نام صاحبان حساب + /// + /// نام جستجو + /// نام سلکت شده + /// + Task> GetAccountHolderNameSelectList(string search, string selected); + + /// + /// سلکت لیست نام طرف حساب‌ها + /// + /// نام جستجو + /// نام سلکت شده + /// + Task> ContractingPartyNamesSelectList(string search, string selected); } diff --git a/CompanyManagment.App.Contracts/PaymentInstrument/IPaymentInstrumentApplication.cs b/CompanyManagment.App.Contracts/PaymentInstrument/IPaymentInstrumentApplication.cs index 6f509a74..b82da2f6 100644 --- a/CompanyManagment.App.Contracts/PaymentInstrument/IPaymentInstrumentApplication.cs +++ b/CompanyManagment.App.Contracts/PaymentInstrument/IPaymentInstrumentApplication.cs @@ -53,8 +53,9 @@ public interface IPaymentInstrumentApplication Task> GetGroup(); - Task>> PosTerminalIdSelectList(string search, string selected); - Task>> IbanSelectList(string search, string selected); - Task>> AccountNumberSelectList(string search, string selected); - Task>> CardNumberSelectList(string search, string selected); + Task> PosTerminalIdSelectList(string search, string selected); + Task> IbanSelectList(string search, string selected); + Task> AccountNumberSelectList(string search, string selected); + Task> CardNumberSelectList(string search, string selected); + Task> AccountHolderNameSelectList(string search, string selected); } diff --git a/CompanyManagment.Application/ContractingPartyBankAccountsApplication.cs b/CompanyManagment.Application/ContractingPartyBankAccountsApplication.cs index 0d5eccb3..0367fd2e 100644 --- a/CompanyManagment.Application/ContractingPartyBankAccountsApplication.cs +++ b/CompanyManagment.Application/ContractingPartyBankAccountsApplication.cs @@ -50,30 +50,40 @@ public class ContractingPartyBankAccountsApplication:IContractingPartyBankAccoun } - public async Task>> GetList( + public async Task> GetList( ContractingPartyBankAccountSearchModel searchModel) { return await _contractingPartyBankAccountsRepository.GetList(searchModel); } - public async Task>> ContractingPartyOrAccountHolderNameSelectList(string search, + public async Task> ContractingPartyOrAccountHolderNameSelectList(string search, string selected) { return await _contractingPartyBankAccountsRepository.ContractingPartyOrAccountHolderNameSelectList(search, selected); } - public async Task>> CardNumberSelectList(string search, string selected) + public async Task> CardNumberSelectList(string search, string selected) { return await _contractingPartyBankAccountsRepository.CardNumberSelectList(search, selected); } - public async Task>> IBanSelectList(string search, string selected) + public async Task> IBanSelectList(string search, string selected) { return await _contractingPartyBankAccountsRepository.IBanSelectList(search, selected); } - public async Task>> AccountNumberSelectList(string search, string selected) + public async Task> AccountNumberSelectList(string search, string selected) { return await _contractingPartyBankAccountsRepository.AccountNumberSelectList(search, selected); } -} \ No newline at end of file + + public async Task> GetAccountHolderNameSelectList(string search, string selected) + { + return await _contractingPartyBankAccountsRepository.GetAccountHolderNameSelectList(search, selected); + } + + public async Task> ContractingPartyNamesSelectList(string search, string selected) + { + return await _contractingPartyBankAccountsRepository.ContractingPartyNamesSelectList(search, selected); + } +} diff --git a/CompanyManagment.Application/PaymentInstrumentApplication.cs b/CompanyManagment.Application/PaymentInstrumentApplication.cs index f464dc11..41a15417 100644 --- a/CompanyManagment.Application/PaymentInstrumentApplication.cs +++ b/CompanyManagment.Application/PaymentInstrumentApplication.cs @@ -126,23 +126,29 @@ public class PaymentInstrumentApplication:IPaymentInstrumentApplication return await _paymentInstrumentRepository.GetPosTerminalSelectList(search); } - public async Task>> PosTerminalIdSelectList(string search, string selected) + public async Task> PosTerminalIdSelectList(string search, string selected) { return await _paymentInstrumentRepository.PosTerminalIdSelectList(search, selected); } - public async Task>> IbanSelectList(string search, string selected) + public async Task> IbanSelectList(string search, string selected) { return await _paymentInstrumentRepository.IbanSelectList(search, selected); } - public async Task>> AccountNumberSelectList(string search, string selected) + public async Task> AccountNumberSelectList(string search, string selected) { return await _paymentInstrumentRepository.AccountNumberSelectList(search, selected); } - public async Task>> CardNumberSelectList(string search, string selected) + public async Task> CardNumberSelectList(string search, string selected) { return await _paymentInstrumentRepository.CardNumberSelectList(search, selected); } -} \ No newline at end of file + + public async Task> AccountHolderNameSelectList(string search, string selected) + { + return await _paymentInstrumentRepository.AccountHolderNameSelectList(search, selected); + } +} + diff --git a/CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs b/CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs index a671cd5a..32b0b6b5 100644 --- a/CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs +++ b/CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs @@ -20,7 +20,7 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>> GetList( + public async Task> GetList( ContractingPartyBankAccountSearchModel searchModel) { var query = _context.ContractingPartyBankAccounts.AsQueryable(); @@ -59,10 +59,10 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result); + return result; } - public async Task>> ContractingPartyOrAccountHolderNameSelectList(string search, + public async Task> ContractingPartyOrAccountHolderNameSelectList(string search, string selected) { var accountHolderQuery = _context.ContractingPartyBankAccounts.Select(x => x.AccountHolderName); @@ -80,10 +80,10 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); + return result.Distinct().ToList(); } - public async Task>> IBanSelectList(string search, string selected) + public async Task> IBanSelectList(string search, string selected) { var iBanQuery = _context.ContractingPartyBankAccounts.Where(x=>x.IBan != null).Select(x=>x.IBan); if (!string.IsNullOrWhiteSpace(search)) @@ -98,10 +98,10 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); + return result.Distinct().ToList(); } - public async Task>> CardNumberSelectList(string search, string selected) + public async Task> CardNumberSelectList(string search, string selected) { var cardNumberQuery = _context.ContractingPartyBankAccounts.Where(x=>x.CardNumber != null).Select(x=>x.CardNumber); if (!string.IsNullOrWhiteSpace(search)) @@ -116,10 +116,10 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); + return result.Distinct().ToList(); } - public async Task>> AccountNumberSelectList(string search, string selected) + public async Task> AccountNumberSelectList(string search, string selected) { var accountNumberQuery = _context.ContractingPartyBankAccounts.Where(x=>x.AccountNumber != null).Select(x=>x.AccountNumber); if (!string.IsNullOrWhiteSpace(search)) @@ -134,6 +134,42 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); + return result.Distinct().ToList(); + } + + public async Task> GetAccountHolderNameSelectList(string search, string selected) + { + var accountHolderQuery = _context.ContractingPartyBankAccounts.Select(x => x.AccountHolderName); + if (!string.IsNullOrWhiteSpace(search)) + { + accountHolderQuery = accountHolderQuery.Where(x => x.Contains(search)); + } + var result = await accountHolderQuery.Take(50).ToListAsync(); + if (!string.IsNullOrWhiteSpace(selected)) + { + result.Add(selected); + } + + return result.Distinct().ToList(); + } + + public async Task> ContractingPartyNamesSelectList(string search, string selected) + { + var query = _context.ContractingPartyBankAccounts + .Select(x => x.ContractingParty.FName + " " + x.ContractingParty.LName); + + if (!string.IsNullOrWhiteSpace(search)) + { + query = query.Where(x => x.Contains(search)); + } + + var result = await query.Take(50).ToListAsync(); + + if (!string.IsNullOrWhiteSpace(selected)) + { + result.Add(selected); + } + + return result.Distinct().ToList(); } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/PaymentInstrumentRepository.cs b/CompanyManagment.EFCore/Repository/PaymentInstrumentRepository.cs index 624f3c3b..08c5aa81 100644 --- a/CompanyManagment.EFCore/Repository/PaymentInstrumentRepository.cs +++ b/CompanyManagment.EFCore/Repository/PaymentInstrumentRepository.cs @@ -139,7 +139,7 @@ public class PaymentInstrumentRepository : RepositoryBase>> PosTerminalIdSelectList(string search, string selected) + public async Task> PosTerminalIdSelectList(string search, string selected) { var query = _companyContext.PaymentInstruments.Where(x=>x.PosTerminalId != null).Select(x => x.PosTerminalId); if (!string.IsNullOrWhiteSpace(search)) @@ -154,10 +154,10 @@ public class PaymentInstrumentRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); + return result.Distinct().ToList(); } - public async Task>> IbanSelectList(string search, string selected) + public async Task> IbanSelectList(string search, string selected) { var query = _companyContext.PaymentInstruments.Where(x=>x.IBan != null).Select(x => x.IBan); if (!string.IsNullOrWhiteSpace(search)) @@ -172,10 +172,10 @@ public class PaymentInstrumentRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); + return result.Distinct().ToList(); } - public async Task>> AccountNumberSelectList(string search, string selected) + public async Task> AccountNumberSelectList(string search, string selected) { var query = _companyContext.PaymentInstruments.Where(x=>x.AccountNumber != null).Select(x => x.AccountNumber); if (!string.IsNullOrWhiteSpace(search)) @@ -190,10 +190,31 @@ public class PaymentInstrumentRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); + return result.Distinct().ToList(); } - public async Task>> CardNumberSelectList(string search, string selected) + public async Task> AccountHolderNameSelectList(string search, string selected) + { + var accountHolderQuery = _companyContext.PaymentInstruments.Where(x => x.AccountHolderName != null).Select(x => x.AccountHolderName); + if (!string.IsNullOrWhiteSpace(search)) + { + accountHolderQuery = accountHolderQuery.Where(x => x.Contains(search)); + } + + var result = await accountHolderQuery.Take(50).ToListAsync(); + + if (!string.IsNullOrWhiteSpace(selected)) + { + result.Add(selected); + } + + return result.Distinct().ToList(); + } + + + + + public async Task> CardNumberSelectList(string search, string selected) { var query = _companyContext.PaymentInstruments.Where(x=>x.CardNumber != null).Select(x => x.CardNumber); if (!string.IsNullOrWhiteSpace(search)) @@ -208,6 +229,6 @@ public class PaymentInstrumentRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); + return result.Distinct().ToList(); } } \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/ContractingPartyBankAccountController.cs b/ServiceHost/Areas/Admin/Controllers/ContractingPartyBankAccountController.cs index 524748bf..76e37f9d 100644 --- a/ServiceHost/Areas/Admin/Controllers/ContractingPartyBankAccountController.cs +++ b/ServiceHost/Areas/Admin/Controllers/ContractingPartyBankAccountController.cs @@ -18,13 +18,13 @@ public class ContractingPartyBankAccountController : AdminBaseController _contractingPartyBankAccountsApplication = contractingPartyBankAccountsApplication; } - /// + /// /// لیست اطلاعات بانک اطلاعات بانکی طرف حساب /// /// سرچ /// [HttpGet] - public async Task>> GetList(ContractingPartyBankAccountSearchModel searchModel) + public async Task> GetList(ContractingPartyBankAccountSearchModel searchModel) { var res =await _contractingPartyBankAccountsApplication.GetList(searchModel); return res; diff --git a/ServiceHost/Areas/Admin/Controllers/PaymentInstrumentController.cs b/ServiceHost/Areas/Admin/Controllers/PaymentInstrumentController.cs index f5a82301..0e7f354c 100644 --- a/ServiceHost/Areas/Admin/Controllers/PaymentInstrumentController.cs +++ b/ServiceHost/Areas/Admin/Controllers/PaymentInstrumentController.cs @@ -102,9 +102,11 @@ public class PaymentInstrumentController:AdminBaseController /// مقدار انتخاب شده /// لیست شناسه‌های دستگاه پوز [HttpGet("pos-terminal-id-select")] - public async Task>>> GetPosTerminalIdSelectList(string search, string selected) + public async Task>> GetPosTerminalIdSelectList(string search, string selected) { - return await _paymentInstrumentApplication.PosTerminalIdSelectList(search, selected); + + return await _paymentInstrumentApplication.PosTerminalIdSelectList(search, selected); + } /// @@ -114,24 +116,26 @@ public class PaymentInstrumentController:AdminBaseController /// مقدار انتخاب شده /// لیست شماره‌های شبا [HttpGet("iban-select")] - public async Task>>> GetIbanSelectList(string search, string selected) + public async Task>> GetIbanSelectList(string search, string selected) { - var paymentIban = await _paymentInstrumentApplication.IbanSelectList(search, selected); - var contractingIban = await _contractingPartyBankAccountsApplication.IBanSelectList(search, selected); + + var paymentIban = await _paymentInstrumentApplication.IbanSelectList(search, selected); + var contractingIban = await _contractingPartyBankAccountsApplication.IBanSelectList(search, selected); - var combinedList = new List(); + var combinedList = new List(); - if (paymentIban.IsSuccedded) - { - combinedList.AddRange(paymentIban.Data??[]); - } + if (paymentIban != null) + { + combinedList.AddRange(paymentIban); + } - if (contractingIban.IsSuccedded) - { - combinedList.AddRange(contractingIban.Data??[]); - } + if (contractingIban != null) + { + combinedList.AddRange(contractingIban); + } - return new OperationResult>().Succcedded(combinedList.Distinct().ToList()); + return combinedList.Distinct().ToList(); + } /// @@ -141,24 +145,24 @@ public class PaymentInstrumentController:AdminBaseController /// مقدار انتخاب شده /// لیست شماره‌های حساب [HttpGet("account-number-select")] - public async Task>>> GetAccountNumberSelectList(string search, string selected) + public async Task>> GetAccountNumberSelectList(string search, string selected) { - var paymentAccountNumbers = await _paymentInstrumentApplication.AccountNumberSelectList(search, selected); - var contractingAccountNumbers = await _contractingPartyBankAccountsApplication.AccountNumberSelectList(search, selected); + var paymentAccountNumbers = await _paymentInstrumentApplication.AccountNumberSelectList(search, selected); + var contractingAccountNumbers = await _contractingPartyBankAccountsApplication.AccountNumberSelectList(search, selected); - var combinedList = new List(); + var combinedList = new List(); - if (paymentAccountNumbers.IsSuccedded) - { - combinedList.AddRange(paymentAccountNumbers.Data??[]); - } + if (paymentAccountNumbers != null) + { + combinedList.AddRange(paymentAccountNumbers); + } - if (contractingAccountNumbers.IsSuccedded) - { - combinedList.AddRange(contractingAccountNumbers.Data??[]); - } + if (contractingAccountNumbers != null) + { + combinedList.AddRange(contractingAccountNumbers); + } - return new OperationResult>().Succcedded(combinedList.Distinct().ToList()); + return combinedList.Distinct().ToList(); } /// @@ -168,23 +172,57 @@ public class PaymentInstrumentController:AdminBaseController /// مقدار انتخاب شده /// لیست شماره‌های کارت [HttpGet("card-number-select")] - public async Task>>> GetCardNumberSelectList(string search, string selected) + public async Task>> GetCardNumberSelectList(string search, string selected) { - var paymentCardNumbers = await _paymentInstrumentApplication.CardNumberSelectList(search, selected); - var contractingCardNumbers = await _contractingPartyBankAccountsApplication.CardNumberSelectList(search, selected); - var combinedList = new List(); + var paymentCardNumbers = await _paymentInstrumentApplication.CardNumberSelectList(search, selected); + var contractingCardNumbers = await _contractingPartyBankAccountsApplication.CardNumberSelectList(search, selected); - if (paymentCardNumbers.IsSuccedded) - { - combinedList.AddRange(paymentCardNumbers.Data??[]); - } + var combinedList = new List(); - if (contractingCardNumbers.IsSuccedded) - { - combinedList.AddRange(contractingCardNumbers.Data??[]); - } + if (paymentCardNumbers != null) + { + combinedList.AddRange(paymentCardNumbers); + } + + if (contractingCardNumbers != null) + { + combinedList.AddRange(contractingCardNumbers); + } + + return combinedList.Distinct().ToList(); + + } + + /// + /// دریافت لیست نام صاحبان حساب به صورت رشته + /// + /// عبارت جستجو + /// مقدار انتخاب شده + /// لیست نام صاحبان حساب + [HttpGet("account-holder-contracting-party-name-select")] + public async Task>> GetAccountHolderNameAndContractingPartyNameSelectList(string search, string selected) + { + + var paymentAccountHolders = await _paymentInstrumentApplication.AccountHolderNameSelectList(search, selected); + var contractingAccountHolders = await _contractingPartyBankAccountsApplication.GetAccountHolderNameSelectList(search, selected); + var contractingNames = await _contractingPartyBankAccountsApplication.ContractingPartyNamesSelectList(search, selected); + var combinedList = new List(); + + if (paymentAccountHolders != null) + { + combinedList.AddRange(paymentAccountHolders); + } + + if (contractingAccountHolders != null) + { + combinedList.AddRange(contractingAccountHolders); + } + + if (contractingNames != null) + combinedList.AddRange(contractingNames); + + return combinedList.Distinct().ToList(); - return new OperationResult>().Succcedded(combinedList.Distinct().ToList()); } } \ No newline at end of file