protected virtual decimal MonthlyBudgetAmount()
{
Debug.Assert(Filter.BeginDate != null);
Debug.Assert(Filter.EndDate != null);
var monthlyBudget = Budget.Model.Expenses.Single(b => b.Bucket.Code == BucketCode).Amount;
var totalBudgetedAmount = monthlyBudget;
var ledgerLine = LedgerCalculation.LocateApplicableLedgerLine(LedgerBook, Filter);
if (LedgerBook == null || ledgerLine == null ||
ledgerLine.Entries.All(e => e.LedgerBucket.BudgetBucket.Code != BucketCode))
{
return totalBudgetedAmount;
}
return ledgerLine.Entries.First(e => e.LedgerBucket.BudgetBucket.Code == BucketCode).Balance;
}