Ejemplo n.º 1
0
        public MatchingService(IAuthorizationProcessor authorizationProcessor,
            ICollationSettingProcessor collationSettingProcessor,
            ICollationProcessor collationProcessor,
            IMatchingHeaderProcessor matchingHeaderProcessor,
            IMatchingProcessor matchingProcessor,
            IMatchingSequentialProcessor matchingSequentialProcessor,
            IMatchingIndividualProcessor matchingIndividualProcessor,
            IMatchingCancellationProcessor matchingCancellationProcessor,
            IMatchingSolveProcessor matchingSolveProcessor,
            IMatchingCombinationSolveProcessor matchingCombinationSolveProcessor,
            IMatchingJournalizingProcessor matchingJournalizingProcessor,
            ILogManager logManager
            )

        {
            this.authorizationProcessor = authorizationProcessor;
            this.collationSettingProcessor = collationSettingProcessor;
            this.collationProcessor = collationProcessor;
            this.matchingHeaderProcessor = matchingHeaderProcessor;
            this.matchingProcessor = matchingProcessor;
            this.matchingSequentialProcessor = matchingSequentialProcessor;
            this.matchingIndividualProcessor = matchingIndividualProcessor;
            this.matchingCancellationProcessor = matchingCancellationProcessor;
            this.matchingSolveProcessor = matchingSolveProcessor;
            this.matchingCombinationSolveProcessor = matchingCombinationSolveProcessor;
            this.matchingJournalizingProcessor = matchingJournalizingProcessor;
            logger = logManager.GetLogger(typeof(MatchingService));
            hubContext = GlobalHost.ConnectionManager.GetHubContext<Hubs.ProgressHub>();
        }
Ejemplo n.º 2
0
 /// <summary>constructor</summary>
 public ReceiptFileImportProcessor(
     ICompanyProcessor companyProcessor,
     IApplicationControlProcessor applicationControlProcessor,
     IImporterSettingProcessor importerSettingProcessor,
     IImporterSettingDetailProcessor importerSettingDetailProcessor,
     IGeneralSettingProcessor generalSettingProcessor,
     ICurrencyProcessor currencyProcessor,
     ICategoryProcessor categoryProcessor,
     ISectionProcessor sectionProcessor,
     ICustomerProcessor customerProcessor,
     IJuridicalPersonalityProcessor juridicalPersonalityProcessor,
     ICollationSettingProcessor collationSettingProcessor,
     IColumnNameSettingProcessor columnNameSettingProcessor,
     IImportDataProcessor importDataProcessor,
     IReceiptProcessor receiptProcessor
     )
 {
     this.companyProcessor               = companyProcessor;
     this.applicationControlProcessor    = applicationControlProcessor;
     this.importerSettingProcessor       = importerSettingProcessor;
     this.importerSettingDetailProcessor = importerSettingDetailProcessor;
     this.generalSettingProcessor        = generalSettingProcessor;
     this.currencyProcessor              = currencyProcessor;
     this.categoryProcessor              = categoryProcessor;
     this.sectionProcessor               = sectionProcessor;
     this.customerProcessor              = customerProcessor;
     this.juridicalPersonalityProcessor  = juridicalPersonalityProcessor;
     this.collationSettingProcessor      = collationSettingProcessor;
     this.columnNameSettingProcessor     = columnNameSettingProcessor;
     this.importDataProcessor            = importDataProcessor;
     this.receiptProcessor               = receiptProcessor;
     this.serializer = MessagePackSerializer.Get <ReceiptInput>(new SerializationContext {
         DefaultDateTimeConversionMethod = DateTimeConversionMethod.Native
     });
 }
Ejemplo n.º 3
0
        /// <summary>constructor</summary>
        public MatchingController(IAuthorizationProcessor authorizationProcessor,
                                  ICollationSettingProcessor collationSettingProcessor,
                                  ICollationProcessor collationProcessor,
                                  IMatchingHeaderProcessor matchingHeaderProcessor,
                                  IMatchingProcessor matchingProcessor,
                                  IMatchingSequentialProcessor matchingSequentialProcessor,
                                  IMatchingIndividualProcessor matchingIndividualProcessor,
                                  IMatchingCancellationProcessor matchingCancellationProcessor,
                                  IMatchingSolveProcessor matchingSolveProcessor,
                                  IMatchingCombinationSolveProcessor matchingCombinationSolveProcessor,
                                  IMatchingJournalizingProcessor matchingJournalizingProcessor,
                                  IHubContext <ProgressHub> hubContext
                                  )

        {
            this.collationSettingProcessor         = collationSettingProcessor;
            this.collationProcessor                = collationProcessor;
            this.matchingHeaderProcessor           = matchingHeaderProcessor;
            this.matchingProcessor                 = matchingProcessor;
            this.matchingSequentialProcessor       = matchingSequentialProcessor;
            this.matchingIndividualProcessor       = matchingIndividualProcessor;
            this.matchingCancellationProcessor     = matchingCancellationProcessor;
            this.matchingSolveProcessor            = matchingSolveProcessor;
            this.matchingCombinationSolveProcessor = matchingCombinationSolveProcessor;
            this.matchingJournalizingProcessor     = matchingJournalizingProcessor;
            this.hubContext = hubContext;
        }
Ejemplo n.º 4
0
        /// <summary>constructor</summary>
        public MatchingController(IAuthorizationProcessor authorizationProcessor,
                                  ICollationSettingProcessor collationSettingProcessor,
                                  ICollationProcessor collationProcessor,
                                  IMatchingHeaderProcessor matchingHeaderProcessor,
                                  IMatchingProcessor matchingProcessor,
                                  IMatchingSequentialProcessor matchingSequentialProcessor,
                                  IMatchingIndividualProcessor matchingIndividualProcessor,
                                  IMatchingCancellationProcessor matchingCancellationProcessor,
                                  IMatchingSolveProcessor matchingSolveProcessor,
                                  IMatchingCombinationSolveProcessor matchingCombinationSolveProcessor,
                                  IMatchingJournalizingProcessor matchingJournalizingProcessor
                                  )

        {
            this.collationSettingProcessor         = collationSettingProcessor;
            this.collationProcessor                = collationProcessor;
            this.matchingHeaderProcessor           = matchingHeaderProcessor;
            this.matchingProcessor                 = matchingProcessor;
            this.matchingSequentialProcessor       = matchingSequentialProcessor;
            this.matchingIndividualProcessor       = matchingIndividualProcessor;
            this.matchingCancellationProcessor     = matchingCancellationProcessor;
            this.matchingSolveProcessor            = matchingSolveProcessor;
            this.matchingCombinationSolveProcessor = matchingCombinationSolveProcessor;
            this.matchingJournalizingProcessor     = matchingJournalizingProcessor;

            this.hubContext = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext <ProgressHub>();
        }
Ejemplo n.º 5
0
 public CollationSettingMaster(
     IAuthorizationProcessor authorizationProcessor,
     ICollationSettingProcessor collationSettingProcessor,
     ILogManager logManager
     )
 {
     this.authorizationProcessor    = authorizationProcessor;
     this.collationSettingProcessor = collationSettingProcessor;
     logger = logManager.GetLogger(typeof(CollationSettingMaster));
 }
Ejemplo n.º 6
0
        /// <summary>constructor</summary>
        public BillingFileImportProcessor(
            ICompanyProcessor companyProcessor,
            IApplicationControlProcessor applicationControlProcessor,
            IImporterSettingProcessor importerSettingProcessor,
            IImporterSettingDetailProcessor importerSettingDetailProcessor,
            IGeneralSettingProcessor generalSettingProcessor,
            ICurrencyProcessor currencyProcessor,
            ICategoryProcessor categoryProcessor,
            ICustomerProcessor customerProcessor,
            IJuridicalPersonalityProcessor juridicalPersonalityProcessor,
            ITaxClassProcessor taxClassProcessor,
            IHolidayCalendarProcessor holidayCalendarProcessor,
            ICollationSettingProcessor collationSettingProcessor,
            IColumnNameSettingProcessor columnNameSettingProcessor,
            IDepartmentProcessor departmentProcessor,
            IAccountTitleProcessor accountTitleProcessor,
            IStaffProcessor staffProcessor,
            IInvoiceCommonSettingProcessor invoiceCommonSettingProcessor,
            IImportDataProcessor importDataProcessor,

            IBillingProcessor billingProcessor,
            IBillingImporterProcessor billingImporterProcessor,
            IBillingDivisionContractProcessor billingDivisionContractProcessor
            )
        {
            this.companyProcessor               = companyProcessor;
            this.applicationControlProcessor    = applicationControlProcessor;
            this.importerSettingProcessor       = importerSettingProcessor;
            this.importerSettingDetailProcessor = importerSettingDetailProcessor;
            this.generalSettingProcessor        = generalSettingProcessor;
            this.currencyProcessor              = currencyProcessor;
            this.categoryProcessor              = categoryProcessor;
            this.customerProcessor              = customerProcessor;
            this.juridicalPersonalityProcessor  = juridicalPersonalityProcessor;
            this.taxClassProcessor              = taxClassProcessor;
            this.holidayCalendarProcessor       = holidayCalendarProcessor;
            this.collationSettingProcessor      = collationSettingProcessor;
            this.columnNameSettingProcessor     = columnNameSettingProcessor;
            this.departmentProcessor            = departmentProcessor;
            this.accountTitleProcessor          = accountTitleProcessor;
            this.staffProcessor = staffProcessor;
            this.invoiceCommonSettingProcessor = invoiceCommonSettingProcessor;
            this.importDataProcessor           = importDataProcessor;

            this.billingProcessor                 = billingProcessor;
            this.billingImporterProcessor         = billingImporterProcessor;
            this.billingDivisionContractProcessor = billingDivisionContractProcessor;

            serializer = MessagePackSerializer.Get <BillingImport>(new SerializationContext {
                DefaultDateTimeConversionMethod = DateTimeConversionMethod.Native
            });
        }
Ejemplo n.º 7
0
 /// <summary>constructor</summary>
 public CollationSettingController(
     ICollationSettingProcessor collationSettingProcessor
     )
 {
     this.collationSettingProcessor = collationSettingProcessor;
 }
Ejemplo n.º 8
0
        /// <summary>constructor</summary>
        public EbFileImportProcessor(
            ICompanyProcessor companyProcessor,
            ILoginUserProcessor loginUserProcessor,
            IApplicationControlProcessor applicationControlProcessor,
            ICollationSettingProcessor collationSettingProcessor,
            ICategoryProcessor categoryProcessor,
            ICurrencyProcessor currencyProcessor,
            IJuridicalPersonalityProcessor juridicalPersonalityProcessor,
            IBankAccountProcessor bankAccountProcessor,
            ICustomerProcessor customerProcessor,
            IIgnoreKanaProcessor ignoreKanaProcessor,
            IEBExcludeAccountSettingProcessor ebExcludeAccountSettingProcessor,
            ISectionProcessor sectionProcessor,
            IImportFileLogProcessor importFileLogProcessor
            )
        {
            this.companyProcessor                 = companyProcessor;
            this.loginUserProcessor               = loginUserProcessor;
            this.applicationControlProcessor      = applicationControlProcessor;
            this.collationSettingProcessor        = collationSettingProcessor;
            this.categoryProcessor                = categoryProcessor;
            this.currencyProcessor                = currencyProcessor;
            this.juridicalPersonalityProcessor    = juridicalPersonalityProcessor;
            this.bankAccountProcessor             = bankAccountProcessor;
            this.ignoreKanaProcessor              = ignoreKanaProcessor;
            this.customerProcessor                = customerProcessor;
            this.ebExcludeAccountSettingProcessor = ebExcludeAccountSettingProcessor;
            this.sectionProcessor                 = sectionProcessor;
            this.importFileLogProcessor           = importFileLogProcessor;

            importer = new EbDataImporterBase {
                IsAsync     = true,
                IsPlainText = true,
            };

            importer.Helper.InitializeAsync = async token => {
                var applicationControlTask = applicationControlProcessor.GetAsync(importer.Helper.CompanyId, token);
                var collationSettingTask   = collationSettingProcessor.GetAsync(importer.Helper.CompanyId, token);
                var defaultCurrencyTask    = currencyProcessor.GetAsync(new CurrencySearch {
                    CompanyId = importer.Helper.CompanyId,
                    Codes     = new[] { Rac.VOne.Common.Constants.DefaultCurrencyCode },
                }, token);
                var defaultReceiptCategoryTask = categoryProcessor.GetAsync(new CategorySearch {
                    CompanyId    = importer.Helper.CompanyId,
                    CategoryType = CategoryType.Receipt,
                    Codes        = new[] { "01" },
                }, token);
                var juridicalPersonalityTask = juridicalPersonalityProcessor.GetAsync(new JuridicalPersonality {
                    CompanyId = importer.Helper.CompanyId
                }, token);

                await Task.WhenAll(
                    applicationControlTask,
                    collationSettingTask,
                    defaultCurrencyTask,
                    defaultReceiptCategoryTask,
                    juridicalPersonalityTask
                    );

                importer.Helper.ApplicationControl     = applicationControlTask.Result;
                importer.Helper.CollationSetting       = collationSettingTask.Result;
                importer.Helper.DefaultCurrency        = defaultCurrencyTask.Result.First();
                importer.Helper.DefaultReceiptCategory = defaultReceiptCategoryTask.Result.First();
                importer.Helper.LegalPersonalities     = juridicalPersonalityTask.Result.Select(x => x.Kana).ToArray();
            };

            importer.Helper.GetBankAccountAsync = async(bankCode, branchCode, accountTypeId, accountNumber, token) => {
                var result = await bankAccountProcessor.GetAsync(new BankAccountSearch {
                    CompanyId     = importer.Helper.CompanyId,
                    BankCodes     = new[] { bankCode },
                    BranchCodes   = new[] { branchCode },
                    AccountTypeId = accountTypeId,
                    AccountNumber = accountNumber,
                }, token);

                return(result.FirstOrDefault());
            };

            importer.Helper.GetBankAccountByBankNameAsync = async(bankName, branchName, accountTypeId, accountNumber, token) => {
                var result = await bankAccountProcessor.GetAsync(new BankAccountSearch {
                    CompanyId     = importer.Helper.CompanyId,
                    BankName      = bankName,
                    BranchName    = branchName,
                    AccountTypeId = accountTypeId,
                    AccountNumber = accountNumber,
                }, token);

                return(result.FirstOrDefault());
            };

            importer.Helper.GetBankAccountByBranchNameAsync = async(bankCode, branchName, token) => {
                var result = await bankAccountProcessor.GetAsync(new BankAccountSearch {
                    CompanyId  = importer.Helper.CompanyId,
                    BankCodes  = new[] { bankCode },
                    BranchName = branchName,
                }, token);

                return(result.FirstOrDefault());
            };

            importer.Helper.GetBankAccountByBranchNameAndNumberAsync = async(bankCode, branchName, accountTypeId, accountNumber, token) => {
                var result = await bankAccountProcessor.GetAsync(new BankAccountSearch {
                    CompanyId     = importer.Helper.CompanyId,
                    BankCodes     = new[] { bankCode },
                    BranchName    = branchName,
                    AccountTypeId = accountTypeId,
                    AccountNumber = accountNumber,
                }, token);

                return(result.FirstOrDefault());
            };

            importer.Helper.GetCustomerIdByExclusiveInfoAsync = async(bankCode, branchCode, payerCode, token) => {
                var result = await customerProcessor.GetAsync(new CustomerSearch {
                    CompanyId              = importer.Helper.CompanyId,
                    ExclusiveBankCode      = bankCode,
                    ExclusiveBranchCode    = branchCode,
                    ExclusiveAccountNumber = payerCode,
                }, token);

                return(result.FirstOrDefault()?.Id);
            };

            importer.Helper.GetSectionIdByPayerCodeAsync = async(payerCode, token) => {
                var result = await sectionProcessor.GetAsync(new SectionSearch {
                    CompanyId  = importer.Helper.CompanyId,
                    PayerCodes = new[] { payerCode },
                }, token);

                return(result.FirstOrDefault()?.Id);
            };

            importer.Helper.GetExcludeCategoryIdAsync = async(payerName, token) => {
                var result = await ignoreKanaProcessor.GetAsync(new IgnoreKana {
                    CompanyId = importer.Helper.CompanyId,
                    Kana      = payerName,
                }, token);

                return(result.FirstOrDefault()?.ExcludeCategoryId);
            };

            importer.Helper.GetEBExcludeAccountSettingListAsync = async token
                                                                  => (await ebExcludeAccountSettingProcessor.GetAsync(importer.Helper.CompanyId, token)).ToList();

            importer.Helper.SaveDataInnerAsync = async(logs, token)
                                                 => (await importFileLogProcessor.SaveAsync(logs, token)).ToList();
        }