public async Task <byte[]> GetAsync(ScheduledPaymentListSearch option, CancellationToken token = default(CancellationToken)) { var companyTask = companyQueryProcessor.GetAsync(new CompanySearch { Id = option.CompanyId }, token); var settingTask = reportSettingQueryProcessor.GetAsync(option.CompanyId, ReportId, token); var nameTask = columnNameSettingQueryProcessor.GetAsync(new ColumnNameSetting { CompanyId = option.CompanyId, TableName = nameof(Billing), }, token); var loadTask = scheduledPaymentListQueryProcessor.GetAsync(option, token); var requireSettingLoad = !(option.ReportSettings?.Any() ?? false); var tasks = new List <Task>(); tasks.Add(companyTask); if (requireSettingLoad) { tasks.Add(settingTask); } tasks.Add(nameTask); tasks.Add(loadTask); await Task.WhenAll(tasks); if (requireSettingLoad) { option.ReportSettings = settingTask.Result.ToList(); } var company = companyTask.Result.First(); var naming = nameTask.Result.ToList(); var items = loadTask.Result.ToList(); if (!items.Any()) { return(null); } GrapeCity.ActiveReports.SectionReport report; if (option.CustomerSummaryFlag) { var reportTemp = new ScheduledPaymentCustomerListSectionReport(); reportTemp.SetBasicPageSetting(company.Code, company.Name); reportTemp.SetData(items, option.Precision, option.ReportSettings); report = reportTemp; } else { var reportTemp = new ScheduledPaymentListSectionReport(); reportTemp.SetBasicPageSetting(company.Code, company.Name); reportTemp.SetData(items, option.Precision, option.ReportSettings, naming); report = reportTemp; } report.Name = "入金予定明細表" + DateTime.Today.ToString("yyyyMMdd"); report.Run(); return(report.Convert()); }
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 <ReportSetting> > GetAsync(int CompanyId, string ReportId, CancellationToken token = default(CancellationToken)) => await reportSettingQueryProcessor.GetAsync(CompanyId, ReportId, token);
public async Task <byte[]> GetAsync(ArrearagesListSearch option, CancellationToken token = default(CancellationToken)) { var companyTask = companyQueryProcessor.GetAsync(new CompanySearch { Id = option.CompanyId, }, token); var columnTask = columnNameSettingQueryProcessor.GetAsync(new ColumnNameSetting { CompanyId = option.CompanyId, TableName = nameof(Billing), }, token); var settingTask = reportSettingQueryProcessor.GetAsync(option.CompanyId, ReportId, token); var loadTask = arrearagesListQueryProcessor.GetAsync(option, token); var ccyCode = string.IsNullOrEmpty(option.CurrencyCode) ? Constants.DefaultCurrencyCode : option.CurrencyCode; var ccyTask = currencyGetByCodeQueryProcessor.GetByCodeAsync(option.CompanyId, ccyCode); var tasks = new List <Task>() { companyTask, columnTask, loadTask, ccyTask }; var requireSetting = !(option.ReportSettings?.Any() ?? false); if (requireSetting) { tasks.Add(settingTask); } await Task.WhenAll(tasks); var company = companyTask.Result.First(); var columns = columnTask.Result.ToList(); var items = loadTask.Result.ToList(); var precision = ccyTask.Result.Precision; if (!items.Any()) { return(null); } if (requireSetting) { option.ReportSettings = settingTask.Result.ToList(); } var processor = option.CustomerSummaryFlag ? (IProcessor) new ArrearagesListSummaryDocumentProcessor { Company = company, Items = items, Precision = precision, } : new ArrearagesListDocumentProcessor { Company = company, Items = items, Precision = precision, Note1 = columns.FirstOrDefault(x => x.ColumnName == nameof(ArrearagesList.Note1))?.DisplayColumnName ?? "備考1", }; using (var stream = new MemoryStream()) { using (var document = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook)) { processor.Process(document); } return(stream.ToArray()); } }
public async Task <byte[]> GetAsync(BillingSearch option, CancellationToken token = default(CancellationToken)) { var companyTask = companyQueryProcessor.GetAsync(new CompanySearch { Id = option.CompanyId, }, token); var loadTask = billingSearchQueryProcessor.GetAsync(option, token); var reportTask = reportSettingQueryProcessor.GetAsync(option.CompanyId, ReportId, token); var gridTask = gridSettingQueryProcessor.GetAsync(new GridSettingSearch { CompanyId = option.CompanyId, GridId = GridId.BillingSearch, }, token); await Task.WhenAll(companyTask, gridTask, reportTask, loadTask); var company = companyTask.Result.First(); var items = loadTask.Result.ToList(); if (!items.Any()) { return(null); } var settings = reportTask.Result.ToList(); var gridDic = gridTask.Result.ToDictionary(x => x.ColumnName); var orders = items.AsQueryable().OrderBy(x => 0); var departmentSubtotal = settings.GetReportSetting <ReportDoOrNot>(DepartmentSubtotal) == ReportDoOrNot.Do; var staffSubtotal = settings.GetReportSetting <ReportDoOrNot>(StaffSubtotal) == ReportDoOrNot.Do; var customerSubtotal = settings.GetReportSetting <ReportDoOrNot>(CustomerSubtotal) == ReportDoOrNot.Do; var unitPrice = settings.GetReportSetting <ReportUnitPrice>(UnitPrice); var outputOrder = settings.GetReportSetting <ReportOutputOrder>(OutputOrder); var orderDateType = settings.GetReportSetting <ReportBaseDate>(OrderDateType); var billReport = new BillingServiceSearchSectionReport(); billReport.SetBasicPageSetting(company.Code, company.Name); billReport.Name = $"請求データ一覧{DateTime.Today:yyyyMMdd}"; billReport.lblNote1.Text = gridDic["Note1"].ColumnNameJp; switch (unitPrice) { case ReportUnitPrice.Per1000: billReport.UnitPrice = 1000M; break; case ReportUnitPrice.Per10000: billReport.UnitPrice = 10000M; break; case ReportUnitPrice.Per1000000: billReport.UnitPrice = 1000000M; break; default: billReport.UnitPrice = 1M; break; } if (departmentSubtotal) { orders = orders.ThenBy(x => x.DepartmentCode); } else { billReport.gfDepartmentTotal.Visible = false; } if (staffSubtotal) { orders = orders.ThenBy(x => x.StaffCode); } else { billReport.gfStaffTotal.Visible = false; } if (customerSubtotal) { orders = orders.ThenBy(x => x.CustomerCode); } else { billReport.gfCustomerTotal.Visible = false; } switch (outputOrder) { case ReportOutputOrder.ByCustomerCode: orders = orders.ThenBy(x => x.CustomerCode); break; case ReportOutputOrder.ByDate: switch (orderDateType) { case ReportBaseDate.BilledAt: orders = orders.ThenBy(x => x.BilledAt); break; case ReportBaseDate.SalesAt: orders = orders.ThenBy(x => x.SalesAt); break; case ReportBaseDate.ClosingAt: orders = orders.ThenBy(x => x.ClosingAt); break; case ReportBaseDate.DueAt: orders = orders.ThenBy(x => x.DueAt); break; } break; case ReportOutputOrder.ById: orders = orders.ThenBy(x => x.Id); break; } billReport.DataSource = orders.ToList(); billReport.Run(); return(billReport.Convert()); }
public async Task <byte[]> GetAsync(ArrearagesListSearch option, CancellationToken token = default(CancellationToken)) { var companyTask = companyQueryProcessor.GetAsync(new CompanySearch { Id = option.CompanyId, }, token); var columnTask = columnNameSettingQueryProcessor.GetAsync(new ColumnNameSetting { CompanyId = option.CompanyId, TableName = nameof(Billing), }, token); var settingTask = reportSettingQueryProcessor.GetAsync(option.CompanyId, ReportId, token); var loadTask = arrearagesListQueryProcessor.GetAsync(option, token); var tasks = new List <Task>() { companyTask, columnTask, loadTask }; var requireSetting = !(option.ReportSettings?.Any() ?? false); if (requireSetting) { tasks.Add(settingTask); } await Task.WhenAll(tasks); var company = companyTask.Result.First(); var columns = columnTask.Result.ToList(); var items = loadTask.Result.ToList(); if (!items.Any()) { return(null); } if (requireSetting) { option.ReportSettings = settingTask.Result.ToList(); } GrapeCity.ActiveReports.SectionReport report; var title = $"滞留明細一覧表{DateTime.Today:yyyyMMdd}"; if (option.CustomerSummaryFlag) { var reportTemp = new ArrearagesCustomerListReport(); reportTemp.SetBasicPageSetting(company.Code, company.Name); reportTemp.SetData(items, option.Precision, option.ReportSettings); report = reportTemp; } else { var reportTemp = new ArrearagesListReport(); reportTemp.SetBasicPageSetting(company.Code, company.Name); reportTemp.SetData(items, option.Precision, option.ReportSettings, columns); report = reportTemp; } report.Name = title; report.Run(); return(report.Convert()); }
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()); }