public async Task <AccountTransferExtractResult> Extract(AccountTransferSearch option, CancellationToken token) { var result = new AccountTransferExtractResult(); result.Details = (await accounttransferProcessor.ExtractAsync(option, token)).ToArray(); result.Logs = result.Details.SelectMany(x => x.GetInvalidLogs()).ToArray(); return(result); }
public async Task <AccountTransferDetailsResult> ExtractAsync(string SessionKey, AccountTransferSearch SearchOption) { return(await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token => { var result = (await accounttransferProcessor.ExtractAsync(SearchOption, token)).ToList(); return new AccountTransferDetailsResult { ProcessResult = new ProcessResult { Result = true }, AccountTransferDetail = result, }; }, logger)); }
public async Task <IEnumerable <AccountTransferDetail> > ExtractAsync(AccountTransferSearch option, CancellationToken token = default(CancellationToken)) { option.CurrencyId = (await currencyGetByIdQueryProcessor.GetByCodesAsync(option.CompanyId, new[] { DefaultCurrencyCode }, token)).First().Id; return(await accountTransferDetailQueryProcessor.GetAsync(option, token)); }
public Task <IEnumerable <AccountTransferDetail> > GetAsync(AccountTransferSearch option, CancellationToken token = default(CancellationToken)) { var history = option.AccountTransferLogIds?.Any() ?? false; var builder = new StringBuilder(history ? @" SELECT atd.[Id] , atd.[AccountTransferLogId] , atd.[BillingId] , atd.[CompanyId] , atd.[CustomerId] , atd.[DepartmentId] , atd.[StaffId] , atd.[BilledAt] , atd.[SalesAt] , atd.[ClosingAt] , atd.[DueAt] , atd.[DueAt2nd] , atd.[BillingAmount] , atd.[InvoiceCode] , atd.[Note1] , atd.[TransferBankCode] , atd.[TransferBankName] , atd.[TransferBranchCode] , atd.[TransferBranchName] , atd.[TransferAccountTypeId] , atd.[TransferAccountNumber] , atd.[TransferAccountName] , atd.[TransferCustomerCode] , atd.[TransferNewCode] , COALESCE(cs.[Code], N'') [CustomerCode] , COALESCE(cs.[Name], N'') [CustomerName] , COALESCE(dp.[Code], N'') [DepartmentCode] , COALESCE(dp.[Name], N'') [DepartmentName] , COALESCE(st.[Code], N'') [StaffCode] , COALESCE(st.[Name], N'') [StaffName] , atl.[CollectCategoryId] , atl.[PaymentAgencyId] , cc.[Code] [CollectCategoryCode] , cc.[Name] [CollectCategoryName] , pa.[Code] [PaymentAgencyCode] , pa.[Name] [PaymentAgencyName] , pa.[FileFormatId] , atl.[DueAt] [NewDueAt] FROM [dbo].[AccountTransferDetail] atd INNER JOIN [dbo].[AccountTransferLog] atl ON atl.[Id] = atd.[AccountTransferLogId] INNER JOIN [dbo].[Category] cc ON cc.[Id] = atl.[CollectCategoryId] INNER JOIN [dbo].[PaymentAgency] pa ON pa.[Id] = atl.[PaymentAgencyId] LEFT JOIN [dbo].[Customer] cs ON cs.[Id] = atd.[CustomerId] LEFT JOIN [dbo].[Department] dp ON dp.[Id] = atd.[DepartmentId] LEFT JOIN [dbo].[Staff] st ON st.[Id] = atd.[StaffId] WHERE atl.[Id] IN (SELECT [Id] FROM @Ids) " : @" SELECT ROW_NUMBER() OVER ( ORDER BY b.[Id] ) [Id] , 0 [AccountTransferLogId] , b.[Id] [BillingId] , b.[CompanyId] , b.[CustomerId] , b.[DepartmentId] , b.[StaffId] , b.[BilledAt] , b.[SalesAt] , b.[ClosingAt] , b.[DueAt] , b.[BillingAmount] - b.[OffsetAmount] [BillingAmount] , b.[InvoiceCode] , b.[Note1] , cs.[TransferBankCode] , cs.[TransferBankName] , cs.[TransferBranchCode] , cs.[TransferBranchName] , cs.[TransferAccountTypeId] , cs.[TransferAccountNumber] , cs.[TransferAccountName] , cs.[TransferCustomerCode] , cs.[TransferNewCode] , b.[ResultCode] , b.[UpdateAt] [BillingUpdateAt] , cs.[Code] [CustomerCode] , cs.[Name] [CustomerName] , dp.[Code] [DepartmentCode] , dp.[Name] [DepartmentName] , st.[Code] [StaffCode] , st.[Name] [StaffName] , b.[CollectCategoryId] , cc.[PaymentAgencyId] , cc.[Code] [CollectCategoryCode] , cc.[Name] [CollectCategoryName] , pa.[Code] [PaymentAgencyCode] , pa.[Name] [PaymentAgencyName] , pa.[FileFormatId] FROM [dbo].[Billing] b LEFT JOIN [dbo].[Customer] cs ON cs.[Id] = b.[CustomerId] LEFT JOIN [dbo].[Department] dp ON dp.[Id] = b.[DepartmentId] LEFT JOIN [dbo].[Staff] st ON st.[Id] = b.[StaffId] LEFT JOIN [dbo].[Category] cc ON cc.[Id] = b.[CollectCategoryId] LEFT JOIN [dbo].[PaymentAgency] pa ON pa.[Id] = cc.[PaymentAgencyId] LEFT JOIN [dbo].[Currency] cy ON cy.[Id] = b.[Id] WHERE b.[CompanyId] = @CompanyId AND b.[InputType] <> 3 AND b.[CollectCategoryId] = @CollectCategoryId AND b.[CurrencyId] = @CurrencyId AND b.[DeleteAt] IS NULL AND b.[AccountTransferLogId] IS NULL AND (b.[ResultCode] IS NULL OR b.[ResultCode] <> N'0') "); if (!history) { if (option.DueAtFrom.HasValue) { builder.Append(@" AND b.[DueAt] >= @DueAtFrom"); } if (option.DueAtTo.HasValue) { builder.Append(@" AND b.[DueAt] <= @DueAtTo"); } } var param = history ? (object)new { Ids = option.AccountTransferLogIds.GetTableParameter() } : option; return(dbHelper.GetItemsAsync <AccountTransferDetail>(builder.ToString(), param, token)); }
private async Task <List <AccountTransferDetail> > GetAccountTransferDetailAsync(AccountTransferSearch SearchOption) { List <AccountTransferDetail> list = null; await ServiceProxyFactory.DoAsync <AccountTransferServiceClient>(async client => { var result = await client.ExtractAsync(SessionKey, SearchOption); if (result.ProcessResult.Result) { list = result.AccountTransferDetail; } }); return(list ?? new List <AccountTransferDetail>()); }