Beispiel #1
0
        private void ProcessBudgetPayout(Transaction transaction, Account account, IEnumerable<Budget> budgets)
        {
            Action<Account> setBudgetAccount;
            Account debit = null, credit = null;

            if (transaction.IsDebitAccount(account))
            {
                setBudgetAccount = a => { credit = a; };
                debit = this["Budget"];
            }
            else
            {
                setBudgetAccount = a => { debit = a; };
                credit = this["Budget"];
            }

            foreach (var budget in budgets)
            {
                setBudgetAccount(this[budget.BudgetAccount.Id]);
                transaction.Debit.Add(new Amount(debit, EntryType.Debit, transaction.Amount));
                transaction.Credit.Add(new Amount(credit, EntryType.Credit, transaction.Amount));
            }
        }