public async Task <BillingAgingListsResult> GetAsync(string SessionKey, BillingAgingListSearch searchOption, string connectionId) { return(await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token => { var notifier = hubContext.CreateNotifier(connectionId); var result = await billingAgingListProcessor.GetAsync(searchOption, notifier, token); return new BillingAgingListsResult { ProcessResult = new ProcessResult { Result = true }, BillingAgingLists = new List <BillingAgingList>(result), }; }, logger, connectionId)); }
public async Task <byte[]> GetAsync(BillingAgingListSearch option, IProgressNotifier notifier = null, CancellationToken token = default(CancellationToken)) { var companyTask = companyQueryProcessor.GetAsync(new CompanySearch { Id = option.CompanyId, }, token); var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(option.CompanyId, token); var settingTask = reportSettingQueryProcessor.GetAsync(option.CompanyId, ReportId, token); var loadTask = billingAgingListProcessor.GetAsync(option, notifier, token); var tasks = new List <Task> { companyTask, appConTask, settingTask, loadTask }; Task <IEnumerable <Currency> > currenciesTask = null; if (option.CurrencyId.HasValue) { currenciesTask = currencyGetByIdsQueryProcessor.GetByIdsAsync(new[] { option.CurrencyId.Value }, token); tasks.Add(currenciesTask); } await Task.WhenAll(tasks); var company = companyTask.Result.First(); var appCon = appConTask.Result; var settings = settingTask.Result.ToList(); var items = loadTask.Result.ToList(); var precition = currenciesTask?.Result.FirstOrDefault().Precision ?? 0; if (!items.Any()) { return(null); } var remianType = settings.GetReportSetting <ReportAdvanceReceivedType>(BillingRemainType); var displayCode = settings.GetReportSetting <ReportDoOrNot>(DisplayCustomerCode) == ReportDoOrNot.Do; var processor = remianType == ReportAdvanceReceivedType.UseMatchingAmount ? (IProcessor) new BillingAgingListDocumentProcessor { Company = company, Items = items, Option = option, Precision = precition, DisplayCustomerCode = displayCode, UseForeignCurrency = appCon.UseForeignCurrency == 1, } : new BillingAgingListReceiptDocumentProcessor { Company = company, Items = items, Option = option, Precision = precition, DisplayCustomerCode = displayCode, UseForeignCurrency = appCon.UseForeignCurrency == 1, }; using (var stream = new MemoryStream()) { using (var document = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook)) { processor.Process(document); } return(stream.ToArray()); } }
public async Task <IEnumerable <BillingAgingList> > GetR(BillingAgingListSearch option) => await hubContext.DoAsync(option.ConnectionId, async (notifier, token) => (await billingAgingListProcessor.GetAsync(option, notifier, token)).ToArray());
public async Task <byte[]> GetAsync(BillingAgingListSearch option, IProgressNotifier notifier = null, CancellationToken token = default(CancellationToken)) { var companyTask = companyQueryProcessor.GetAsync(new CompanySearch { Id = option.CompanyId, }, token); var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(option.CompanyId, token); var settingTask = reportSettingQueryProcessor.GetAsync(option.CompanyId, ReportId, token); var loadTask = billingAgingListProcessor.GetAsync(option, notifier, token); await Task.WhenAll(companyTask, appConTask, settingTask, loadTask); var company = companyTask.Result.First(); var appCon = appConTask.Result; var settings = settingTask.Result.ToList(); var items = loadTask.Result.ToList(); if (!items.Any()) { return(null); } var remianType = settings.GetReportSetting <ReportAdvanceReceivedType>(BillingRemainType); var displayCode = settings.GetReportSetting <ReportDoOrNot>(DisplayCustomerCode) == ReportDoOrNot.Do; var title = "請求残高年齢表"; var outputName = $"{title}{DateTime.Today:yyyyMMdd}"; GrapeCity.ActiveReports.SectionReport report; if (remianType == ReportAdvanceReceivedType.UseMatchingAmount) { var reportTemp = new BillingAgingListSectionReport1(); reportTemp.ConsiderCustomerGroup = option.ConsiderCustomerGroup; reportTemp.DisplayCustomerCode = displayCode; reportTemp.RequireStaffSubtotal = option.RequireStaffSubtotal; reportTemp.RequireDepartmentSubtotal = option.RequireDepartmentSubtotal; reportTemp.SetBasicPageSetting(company.Code, company.Name); reportTemp.lblMonthlyRemain0.Text = option.MonthlyRemain0; reportTemp.lblMonthlyRemain1.Text = option.MonthlyRemain1; reportTemp.lblMonthlyRemain2.Text = option.MonthlyRemain2; reportTemp.lblMonthlyRemain3.Text = option.MonthlyRemain3; reportTemp.SetData(items, option.Precision, appCon.UseForeignCurrency); report = reportTemp; } else { var reportTemp = new BillingAgingListSectionReport(); reportTemp.ConsiderCustomerGroup = option.ConsiderCustomerGroup; reportTemp.DisplayCutsomerCode = displayCode; // typo reportTemp.RequireStaffSubtotal = option.RequireStaffSubtotal; reportTemp.RequireDepartmentSubtotal = option.RequireDepartmentSubtotal; reportTemp.SetBasicPageSetting(company.Code, company.Name); reportTemp.lblMonthlyRemain0.Text = option.MonthlyRemain0; reportTemp.lblMonthlyRemain1.Text = option.MonthlyRemain1; reportTemp.lblMonthlyRemain2.Text = option.MonthlyRemain2; reportTemp.lblMonthlyRemain3.Text = option.MonthlyRemain3; reportTemp.SetData(items, option.Precision, appCon.UseForeignCurrency); report = reportTemp; } report.Name = outputName; report.Document.Name = outputName; report.Run(); return(report.Convert()); }