public async Task <byte[]> GetAsync(ReceiptApportionForReportSource source, CancellationToken token = default(CancellationToken))
        {
            if (!(source.Apportions?.Any() ?? false))
            {
                return(null);
            }

            var companyId = source.CompanyId;

            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(companyId, token);
            var nameTask   = columnNameSettingQueryProcessor.GetAsync(new ColumnNameSetting {
                CompanyId = companyId, TableName = nameof(Receipt),
            }, token);

            await Task.WhenAll(companyTask, appConTask, nameTask);

            var company   = companyTask.Result.First();
            var appCon    = appConTask.Result;
            var naming    = nameTask.Result.ToList();
            var precision = 0;

            var report = new ReceiptApportionSectionReport();

            report.Name = "入金データ振分リスト" + DateTime.Now.ToString("yyyyMMdd");
            report.SetBasicPageSetting(company.Code, company.Name);
            report.SetHeaderSetting(source.Header, source.CategoryName);
            report.SetPageDataSetting(source.Apportions, appCon.UseReceiptSection, precision);

            report.Run();

            return(report.Convert());
        }
        public async Task <byte[]> GetAsync(int companyId, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId,
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(companyId, token);
            var loadTask   = receiptSectionTransferQueryProcessor.GetReceiptSectionTransferForPrintAsync(companyId, token);

            await Task.WhenAll(companyTask, appConTask, loadTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;
            var items   = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var useForeignCurrency = appCon.UseForeignCurrency == 1;
            var precition          = !useForeignCurrency ? 0 : items.Max(x => x.Precision);

            var report = new ReceiptSectionTransferSectionReport();

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = "入金部門振替済チェックリスト" + DateTime.Today.ToString("yyyyMMdd");
            report.SetData(items, useForeignCurrency, precition);

            report.Run();

            return(report.Convert());
        }
        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);

            await Task.WhenAll(companyTask, loadTask);

            var precision = 0; // currency related precision
            var company   = companyTask.Result.First();
            var items     = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var report = new PaymentScheduleInputSectionReport();

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = "入金予定リスト" + DateTime.Today.ToString("yyyyMMdd");
            report.SetData(items, precision);
            report.Run();

            return(report.Convert());
        }
        public async Task <byte[]> GetAsync(CustomerSearch option, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId
            }, token);
            var appConTask     = applicationControlGetByCompanyQueryProcessor.GetAsync(option.CompanyId.Value, token);
            var masterLoadTask = customerQueryProcessor.GetAsync(option, token);

            await Task.WhenAll(companyTask, appConTask, masterLoadTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;
            var items   = masterLoadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var report = new CustomerAccountSectionReport();

            report.Name = "得意先台帳" + DateTime.Now.ToString("yyyyMMdd");
            report.SetBasicPageSetting(company.Code, company.Name);
            report.SetData(items,
                           appCon.UsePublishInvoice == 1,
                           appCon.UseReminder == 1);

            report.Run();

            return(report.Convert());
        }
Beispiel #5
0
        public async Task <byte[]> GetAsync(CustomerLedgerSearch option, IProgressNotifier notifier, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId,
            }, token);
            var loadTask = customerLedgerProcessor.GetAsync(option, token, notifier);

            await Task.WhenAll(companyTask, loadTask);

            var company = companyTask.Result.First();
            var items   = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var report = new CustomerLedgerSectionReport();

            report.SearchOption = option;
            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = "得意先別消込台帳" + DateTime.Today.ToString("yyyyMMdd");
            report.SetData(items, option.Precision);

            report.Run();

            return(report.Convert());
        }
        public async Task <byte[]> GetAsync(MatchingJournalizingReportSource source, CancellationToken token = default(CancellationToken))
        {
            if (!(source.Items?.Any() ?? false))
            {
                return(null);
            }

            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = source.CompanyId,
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(source.CompanyId, token);
            await Task.WhenAll(companyTask, appConTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;

            var report = new MatchingJournalizingReport();

            var fileName = $"{(source.ReOutput ? "再出力" : "")}消込仕訳_{DateTime.Now:yyyyMMdd_HHmmss}";

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = fileName;
            report.SetData(source.Items, source.Precision, appCon.UseForeignCurrency == 1);
            report.Run();

            return(report.Convert());
        }
Beispiel #7
0
        public async Task <byte[]> GetAsync(CustomerFeeSearch option, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId,
            }, token);
            var appControlTask = applicationControlGetByCompanyQueryProcessor.GetAsync(option.CompanyId.Value, token);
            var masterLoadTask = customerFeeQueryProcessor.GetAsync(option, token);

            await Task.WhenAll(companyTask, appControlTask, masterLoadTask);

            var company   = companyTask.Result.First();
            var appCon    = appControlTask.Result;
            var items     = masterLoadTask.Result.ToList();
            var precision = appCon.UseForeignCurrency == 0 ? 0 : items.Max(x => x.CurrencyPrecision);

            if (!items.Any())
            {
                return(null);
            }

            var report = new CustomerFeeSectionReport();

            report.Name = "登録手数料一覧" + DateTime.Now.ToString("yyyyMMdd");
            report.SetBasicPageSetting(company.Code, company.Name);
            report.SetData(items, appCon.UseForeignCurrency);
            report.Precision = precision;
            report.Run();

            return(report.Convert());
        }
Beispiel #8
0
        public async Task <byte[]> GetAsync(BillingAgingListSearch 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),
                ColumnName = nameof(Billing.Note1),
            }, token);
            var loadTask = billingAgingListQueryProcessor.GetDetailsAsync(option, token);

            await Task.WhenAll(companyTask, columnTask, loadTask);

            var items = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var company = companyTask.Result.First();
            var column  = columnTask.Result.First();
            var title   = $"請求残高年齢表(明細){ DateTime.Today:yyyyMMdd}";

            var report = new BillingAgingListDetailSectionReport();

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = title;
            report.SetData(items, option.Precision, column);

            report.Run();

            return(report.Convert());
        }
        public async Task <byte[]> GetAsync(MatchingIndividualReportSource source, CancellationToken token = default(CancellationToken))
        {
            if (!(source.Items?.Any() ?? false))
            {
                return(null);
            }

            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = source.CompanyId,
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(source.CompanyId, token);

            await Task.WhenAll(companyTask, appConTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;

            var moneyFormat = "#,0";

            GrapeCity.ActiveReports.SectionReport report;

            if (source.PriorReceipt)
            {
                var reportTemp = new MatchingIndividualReceiptBillingSectionReport();
                reportTemp.SetBasicPageSetting(company.Code, company.Name);
                reportTemp.SetAmountSetting(source.Precision,
                                            source.BillingTaxDiff.ToString(moneyFormat),
                                            source.ReceiptTaxDiff.ToString(moneyFormat),
                                            source.BankFee.ToString(moneyFormat),
                                            source.DiscountAmount.ToString(moneyFormat),
                                            appCon.UseDiscount);
                reportTemp.SetPageDataSetting(source.Items, source.BillingGridSettings, source.ReceiptGridSettings);
                reportTemp.shpBilling.BackColor = System.Drawing.Color.LightCyan;

                report = reportTemp;
            }
            else
            {
                var reportTemp = new MatchingIndividualSectionReport();
                reportTemp.SetBasicPageSetting(company.Code, company.Name);
                reportTemp.SetAmountSetting(source.Precision,
                                            source.BillingTaxDiff.ToString(moneyFormat),
                                            source.ReceiptTaxDiff.ToString(moneyFormat),
                                            source.BankFee.ToString(moneyFormat),
                                            source.DiscountAmount.ToString(moneyFormat),
                                            appCon.UseDiscount);
                reportTemp.SetPageDataSetting(source.Items, source.BillingGridSettings, source.ReceiptGridSettings);
                reportTemp.shpBilling.BackColor = System.Drawing.Color.LightCyan;

                report = reportTemp;
            }

            report.Name = "個別消込画面" + DateTime.Today.ToString("yyyyMMdd");
            report.Run();

            return(report.Convert());
        }
Beispiel #10
0
        public async Task <byte[]> GetAsync(TransactionImportSource source, CancellationToken token = default(CancellationToken))
        {
            var companyId    = source.CompanyId;
            var importDataId = source.ImportDataId.Value;
            var objectType   = source.IsValidData ? 0 : 1;

            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId,
            }, token);
            var appConTask     = applicationControlGetByCompanyQueryProcessor.GetAsync(companyId, token);
            var columnNameTask = columnNameSettingQueryProcessor.GetAsync(new ColumnNameSetting
            {
                CompanyId  = companyId,
                TableName  = nameof(Billing),
                ColumnName = nameof(Billing.Note1),
            }, token);
            var itemsTask = importDataDetailQueryProcessor.GetAsync(importDataId, objectType, token);

            await Task.WhenAll(companyTask, appConTask, columnNameTask, itemsTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;
            var note1   = columnNameTask.Result.FirstOrDefault()?.DisplayColumnName ?? "備考";
            var details = itemsTask.Result.ToArray();
            var items   = details.Select(x => serializer.UnpackSingleObject(x.RecordItem)).ToList();

            if (!items.Any())
            {
                return(null);
            }

            var useForeignCurrency = appCon.UseForeignCurrency == 1;

            var report = new BillingImporterSectionReport();

            var title = $"請求フリーインポーター 取込{(source.IsValidData ? "可能" : "不可能")}データ一覧{DateTime.Now:yyyyMMdd}";

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = title;
            report.SetData(items, title, useForeignCurrency, note1);
            report.Run();

            return(report.Convert());
        }
Beispiel #11
0
        public async Task <byte[]> GetAsync(CustomerSearch option, CancellationToken token = default(CancellationToken))
        {
            var report = new CustomerSectionReport();

            return((await report.BuildAsync("得意先マスター一覧" + DateTime.Today.ToString("yyyyMMdd"),
                                            companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId
            }, token),
                                            customerQueryProcessor.GetAsync(option, token)))?.Convert());
        }
        public async Task <byte[]> GetAsync(int companyId, CancellationToken token = default(CancellationToken))
        {
            var report = new GeneralSettingSectionReport();

            return((await report.BuildAsync("管理マスター" + DateTime.Now.ToString("yyyyMMdd"),
                                            companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId
            }, token),
                                            masterGetByCodesQueryProcessor.GetByCodesAsync(companyId, new string[] { }, token)))?.Convert());
        }
        public async Task <byte[]> GetAsync(int companyId, CancellationToken token = default(CancellationToken))
        {
            var report = new DepartmentReport();

            return((await report.BuildAsync("請求部門マスター一覧" + DateTime.Today.ToString("yyyyMMdd"),
                                            companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId
            }, token),
                                            departmentNameByCodeQueryProcessor.GetAsync(new DepartmentSearch {
                CompanyId = companyId,
            }, token)))?.Convert());
        }
        public async Task <byte[]> GetAsync(int companyId, CancellationToken token = default(CancellationToken))
        {
            var report = new SectionWithLoginUserReport();

            return((await report.BuildAsync("入金部門・担当者対応マスター一覧" + DateTime.Now.ToString("yyyyMMdd"),
                                            companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId
            }, token),
                                            sectionWithLoginUserQueryProcessor.GetAsync(new SectionWithLoginUserSearch {
                CompanyId = companyId,
            }, token)))?.Convert());
        }
        public async Task <byte[]> GetAsync(int companyId, CancellationToken token = default(CancellationToken))
        {
            var report = new LoginUserSectionReport();

            return((await report.BuildAsync("ログインユーザーマスター" + DateTime.Today.ToString("yyyyMMdd"),
                                            companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId
            }, token),
                                            loginUserQueryProcessor.GetAsync(new LoginUserSearch {
                CompanyId = companyId,
            }, token)))?.Convert());
        }
        public async Task <byte[]> GetAsync(int companyId, CancellationToken token = default(CancellationToken))
        {
            var report = new JuridicalPersonalityReport();

            return((await report.BuildAsync("法人格マスター" + DateTime.Today.ToString("yyyyMMdd"),
                                            companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId
            }, token),
                                            juridicalPersonalityQueryProcessor.GetAsync(new JuridicalPersonality {
                CompanyId = companyId
            }, token)))?.Convert());
        }
Beispiel #17
0
        public async Task <byte[]> GetAsync(int companyId, CancellationToken token = default(CancellationToken))
        {
            var report = new SaleRegisterSectionReport();

            return((await report.BuildAsync("営業担当者マスター" + DateTime.Now.ToString("yyyyMMdd"),
                                            companyQueryProcessor.GetAsync(new CompanySearch {
                Id = companyId
            }, token),
                                            staffQueryProcessor.GetAsync(new StaffSearch {
                CompanyId = companyId,
            }, token)))?.Convert());
        }
Beispiel #18
0
        public async Task <byte[]> GetAsync(CreditAgingListSearch option, IProgressNotifier notifier = null, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId,
            }, token);
            var loadTask = creditAgingListProcessor.GetAsync(option, notifier, token);

            await Task.WhenAll(companyTask, loadTask);

            var company = companyTask.Result.First();
            var items   = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var title      = "債権総額管理表";
            var outputName = $"{title}{DateTime.Today:yyyyMMdd}";

            var report = new CreditAgingListReport();

            report.Name = outputName;
            report.SetBasicPageSetting(company.Code, company.Name);

            report.DisplayCustomerCode     = option.DisplayCustomerCode;
            report.ConsiderCustomerGroup   = option.ConsiderCustomerGroup;
            report.RequireDepartmentTotal  = option.RequireDepartmentTotal;
            report.RequireStaffTotal       = option.RequireStaffTotal;
            report.UseMasterStaff          = option.UseMasterStaff;
            report.lblArrivalDueDate1.Text = option.ArrivalDueDate1;
            report.lblArrivalDueDate2.Text = option.ArrivalDueDate2;
            report.lblArrivalDueDate3.Text = option.ArrivalDueDate3;
            report.lblArrivalDueDate4.Text = option.ArrivalDueDate4;

            report.SetPageDataSetting(items);
            report.Document.Name = outputName;
            report.Run();
            return(report.Convert());
        }
Beispiel #19
0
        public async Task <byte[]> GetAsync(MatchingSequentialReportSource source, CancellationToken token = default(CancellationToken))
        {
            if (!(source.Items?.Any() ?? false))
            {
                return(null);
            }

            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = source.CompanyId,
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(source.CompanyId, token);

            await Task.WhenAll(companyTask, appConTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;

            GrapeCity.ActiveReports.SectionReport report;
            if (source.PriorReceipt)
            {
                var reportTemp = new MatchingSequentialReceiptBillingSectionReport();
                reportTemp.SetBasicPageSetting(company.Code, company.Name);
                reportTemp.SetPageDataSetting(source.Items, true, appCon.UseForeignCurrency, source.Precision, null);

                report = reportTemp;
            }
            else
            {
                var reportTemp = new MatchingSequentialSectionReport();
                reportTemp.SetBasicPageSetting(company.Code, company.Name);
                reportTemp.SetPageDataSetting(source.Items, true, appCon.UseForeignCurrency, source.Precision, null);

                report = reportTemp;
            }

            report.Name = "一括消込チェックリスト" + DateTime.Today.ToString("yyyyMMdd");
            report.Run();

            return(report.Convert());
        }
        public async Task <byte[]> GetAsync(CollectionScheduleSearch option, IProgressNotifier notifier, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId,
            }, token);
            var loadTask = collectionScheduleProcessor.GetAsync(option, token, notifier);

            await Task.WhenAll(companyTask, loadTask);

            var company = companyTask.Result.First();
            var items   = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var report     = new CollectionScheduleSectionReport();
            var title      = "回収予定表";
            var reportName = title + DateTime.Today.ToString("yyyyMMdd");

            report.GroupByDepartment             = option.DisplayDepartment;
            report.NewPagePerDepartment          = option.NewPagePerDepartment;
            report.NewPagePerStaff               = option.NewPagePerStaff;
            report.lblUncollectedAmountLast.Text = option.UncollectedAmountLast;
            report.lblUncollectAmount0.Text      = option.UncollectedAmount0;
            report.lblUncollectAmount1.Text      = option.UncollectedAmount1;
            report.lblUncollectAmount2.Text      = option.UncollectedAmount2;
            report.lblUncollectAmount3.Text      = option.UncollectedAmount3;
            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = reportName;

            report.SetData(items);

            report.Run();
            return(report.Convert());
        }
Beispiel #21
0
        public async Task <byte[]> GetAsync(ReceiptSearch option, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId,
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(option.CompanyId, token);
            var gridTask   = gridSettingQueryProcessor.GetAsync(new GridSettingSearch {
                CompanyId = option.CompanyId, GridId = GridId.ReceiptSearch,
            }, token);
            var loadTask = receiptSearchQueryProcessor.GetAsync(option, token);

            await Task.WhenAll(companyTask, appConTask, gridTask, loadTask);

            var company      = companyTask.Result.First();
            var appCon       = appConTask.Result;
            var gridSettings = gridTask.Result.ToList();
            var items        = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var useSection = appCon.UseReceiptSection == 1;
            var precition  = 0;

            var report = new ReceiptSearchSectionReport();

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = "入金データ一覧" + DateTime.Today.ToString("yyyyMMdd");
            report.SetData(items, precition, useSection, option.DeleteFlg == 1, gridSettings);

            report.Run();

            return(report.Convert());
        }
        public async Task <byte[]> GetAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId,
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(option.CompanyId, token);
            var nameTask   = columnNameSettingQueryProcessor.GetAsync(new ColumnNameSetting {
                CompanyId = option.CompanyId, TableName = nameof(Receipt),
            }, token);
            var loadTask = receiptJournalizingQueryProcessor.ExtractAsync(option, token);

            await Task.WhenAll(companyTask, appConTask, nameTask, loadTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;
            var naming  = nameTask.Result.ToList();
            var items   = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var report = new ReceiptJournalizingSectionReport();

            var reoutput = option.OutputAt?.Any() ?? false;
            var fileName = $"{(reoutput ? "再出力" : "")}入金仕訳{DateTime.Now:yyyyMMdd_HHmmss}";

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = fileName;
            report.SetData(items, option.Precision, appCon.UseForeignCurrency == 1, naming);

            report.Run();

            return(report.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);


            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 <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());
        }
Beispiel #26
0
        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(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());
        }
Beispiel #28
0
 public async Task <IEnumerable <Company> > GetAsync(CompanySearch option, CancellationToken token = default(CancellationToken))
 => await companyQueryProcessor.GetAsync(option, token);
Beispiel #29
0
        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());
            }
        }