internal TrialBalance Build()
        {
            var helper = new TrialBalanceHelper(_command);

            FixedList <TrialBalanceEntry> postingEntries = helper.GetPostingEntries();

            List <TrialBalanceEntry> summaryEntries = helper.GenerateSummaryEntries(postingEntries);

            List <TrialBalanceEntry> trialBalance = helper.CombineSummaryAndPostingEntries(
                summaryEntries, postingEntries);

            FixedList <TrialBalanceEntry> summaryGroupEntries = helper.GenerateTotalSummaryGroups(postingEntries);

            trialBalance = helper.CombineGroupEntriesAndPostingEntries(trialBalance, summaryGroupEntries);

            List <TrialBalanceEntry> summaryTotalDebtorCreditorEntries =
                helper.GenerateTotalSummaryDebtorCreditor(postingEntries.ToList());

            trialBalance = helper.CombineDebtorCreditorAndPostingEntries(trialBalance,
                                                                         summaryTotalDebtorCreditorEntries);

            List <TrialBalanceEntry> summaryTotalCurrencies = helper.GenerateTotalSummaryCurrency(
                summaryTotalDebtorCreditorEntries);

            trialBalance = helper.CombineCurrencyTotalsAndPostingEntries(trialBalance, summaryTotalCurrencies);

            List <TrialBalanceEntry> summaryTotalConsolidatedByLedger =
                helper.GenerateTotalSummaryConsolidatedByLedger(summaryTotalCurrencies);

            trialBalance = helper.CombineTotalConsolidatedByLedgerAndPostingEntries(
                trialBalance, summaryTotalConsolidatedByLedger);

            List <TrialBalanceEntry> summaryTrialBalanceConsolidated = helper.GenerateTotalSummaryConsolidated(
                summaryTotalCurrencies);

            trialBalance = helper.CombineTotalConsolidatedAndPostingEntries(
                trialBalance, summaryTrialBalanceConsolidated);

            trialBalance = helper.RestrictLevels(trialBalance);

            var returnBalance = new FixedList <ITrialBalanceEntry>(trialBalance.Select(x => (ITrialBalanceEntry)x));

            return(new TrialBalance(_command, returnBalance));
        }
        internal TrialBalance Build()
        {
            var helper           = new TrialBalanceHelper(_command);
            var twoColumnsHelper = new TwoCurrenciesBalanceHelper(_command);

            FixedList <TrialBalanceEntry> postingEntries = helper.GetTrialBalanceEntries(_command.InitialPeriod);

            postingEntries = helper.ValuateToExchangeRate(postingEntries, _command.InitialPeriod);

            List <TrialBalanceEntry> summaryEntries = helper.GenerateSummaryEntries(postingEntries);
            List <TrialBalanceEntry> trialBalance   = helper.CombineSummaryAndPostingEntries(summaryEntries,
                                                                                             postingEntries);

            trialBalance = helper.RestrictLevels(trialBalance);

            FixedList <TwoCurrenciesBalanceEntry> twoColumnsEntries =
                twoColumnsHelper.MergeAccountsIntoTwoColumns(trialBalance);

            FixedList <TwoCurrenciesBalanceEntry> summaryGroupEntries =
                twoColumnsHelper.GetTotalSummaryGroup(twoColumnsEntries);

            twoColumnsEntries = twoColumnsHelper.CombineGroupEntriesAndTwoColumnsEntries(
                twoColumnsEntries, summaryGroupEntries);

            List <TwoCurrenciesBalanceEntry> summaryTotalDeptorCreditorEntries =
                twoColumnsHelper.GetTotalDeptorCreditorTwoColumnsEntries(
                    twoColumnsEntries);

            twoColumnsEntries = twoColumnsHelper.CombineTotalDeptorCreditorAndTwoColumnsEntries(
                twoColumnsEntries.ToList(), summaryTotalDeptorCreditorEntries);

            List <TwoCurrenciesBalanceEntry> summaryTwoColumnsBalanceTotal =
                twoColumnsHelper.GenerateTotalSummary(summaryTotalDeptorCreditorEntries);

            twoColumnsEntries = twoColumnsHelper.CombineTotalConsolidatedAndPostingEntries(
                twoColumnsEntries, summaryTwoColumnsBalanceTotal);

            FixedList <ITrialBalanceEntry> twoColumnsBalance = twoColumnsEntries.Select(x => (ITrialBalanceEntry)x)
                                                               .ToList().ToFixedList();

            return(new TrialBalance(_command, twoColumnsBalance));
        }
        internal List <TrialBalanceEntry> GetSummaryAndPostingEntries()
        {
            FixedList <TrialBalanceEntry> postingEntries = GetPostingEntries();

            List <TrialBalanceEntry> summaryEntries = GenerateSummaryEntries(postingEntries);

            if (_command.TrialBalanceType == TrialBalanceType.SaldosPorCuentaYMayor)
            {
                summaryEntries = summaryEntries.Where(a => a.Level == 1 && a.NotHasSector).ToList();
                return(summaryEntries);
            }
            else if (_command.TrialBalanceType == TrialBalanceType.SaldosPorAuxiliar)
            {
                return(postingEntries.ToList());
            }
            else
            {
                return(CombineSummaryAndPostingEntries(summaryEntries, postingEntries));
            }
        }
示例#4
0
 public ControlFlowGraphBuilder(FixedList <LocalVariableDeclaration> variables)
 {
     this.variables = variables.ToList();
 }