Exemplo n.º 1
0
        protected ILedger GetLedger(IJournal journal)
        {
            var ledger = new Ledger.Core.Ledger();

            ledger.EntryValidators.Add(new IntegrityEntryValidator());
            ledger.EntryValidators.Add(new AccountsBalanceEntryValidator(new QueryAccountPredicate("Assets:**"), new QueryAccountPredicate("Liabilities|Equity:**")));
            ledger.BalanceValidators.Add(new AccountsBalanceBalanceValidator(new Book("Default"), new QueryAccountPredicate("Assets:**"), new QueryAccountPredicate("Liabilities|Equity:**")));
            ledger.BalanceValidators.Add(new AccountBalanceCreditZeroBalanceValidator(new Book("Default"), new QueryAccountPredicate("Equity:ProfitLoss:Expense:**")));
            ledger.BalanceValidators.Add(new AccountBalanceDebitZeroBalanceValidator(new Book("Default"), new QueryAccountPredicate("Equity:ProfitLoss:Income:**")));

            foreach (var entry in journal.Entries)
            {
                ledger.AddEntry(entry);
            }

            return(ledger);
        }