public BudgetPlanItemVM(Budget budget, CashFlow cashFlow, IEnumerable<BudgetPlan> planItems) { Budget = budget; CashFlow = cashFlow; Values = new BindableCollectionExt<BudgetPlan>(planItems); Values.CollectionChanged += (s, e) => { if (e.Action == NotifyCollectionChangedAction.Remove) { var item = e.OldItems[0] as BudgetPlan; Budget.BudgetPlanItems.Remove(item); } RefreshUI(); }; Values.PropertyChanged += (s, e) => { RefreshUI(); }; }
private static void AddOrNothingCashFlowByName(Database db, CashFlowGroup defautGroup, string cashFowName, string cashFlowDescription = null) { var sql = PetaPoco.Sql.Builder.Where("NAME = @0", cashFowName); if (!string.IsNullOrWhiteSpace(cashFlowDescription)) { sql.Append(" AND Description = @0", cashFlowDescription); } var cashFlow = db.FirstOrDefault<CashFlow>(sql); if (cashFlow == null) { cashFlow = new CashFlow { Name = cashFowName, Description = cashFlowDescription, Group = defautGroup, }; db.Save(cashFlow); } }
private void UpdateFow(CashFlow newValue) { if (_flow == null) { _flow = newValue; return; } if (_flow.Saving != null) { _flow.Saving.RemoveValue(SavingValue); SavingValue = null; } _flow = newValue; if (_flow.Saving != null) { SavingValue = _flow.Saving.Deposit(this, Value, Date); } }
public void DeleteCashFlowType(CashFlow cashFlow) { DeleteCashFlowType(cashFlow, false); }
public bool CanDeleteCashFlowType(CashFlow cashFlow) { return !cashFlow.IsReadOnly; }
public void AddNewCashFlowType() { using (var tx = Database.GetTransaction()) { var cashFlow = new CashFlow { Name = NewName, Description = NewDescription, Group = NewCashFlowGroup, }; Database.Save(cashFlow); tx.Complete(); _cashFlows.Add(cashFlow); } CachedService.Clear(); NewName = string.Empty; NewDescription = string.Empty; NewCashFlowGroup = CashFlowGroups.First(); //LoadData(); IsNewNameFocused = false; IsNewNameFocused = true; NotifyOfPropertyChange(() => CashFlows); }
public virtual void RemoveBudgetPlanItems(CashFlow cashFlow) { BudgetPlanItems.Clear(); }
public virtual Expense AddExpense(CashFlow flow, decimal value, string description, DateTime date) { Expense expense = Expense.CreateExpense(this, flow, value, description, date); Expenses.Add(expense); return expense; }
private decimal GetSumOfBudgetPlansOfCategory(CashFlow cashFlow) { return Budget.BudgetPlanItems.Where(x => x.CashFlowId == cashFlow.Id).Sum(x => x.Value); }
private decimal GetSumOfBudgetExpenses(CashFlow cashFlow = null) { if (cashFlow == null) { return Budget.TotalExpenseValue; } else { return Budget.Expenses.Where(x => x.Flow.Equals(cashFlow)).Sum(x => x.Value); } }
public override void LoadData() { CashFlows.Clear(); var cashFlowList = CachedService.GetAllCashFlows().Where(x => x.Id != CashFlowToDelete.Id); cashFlowList.ForEach(x => CashFlows.Add(x)); SelectedCashFlow = CashFlows.FirstOrDefault(); }
public static Expense CreateExpense(Budget budget, CashFlow flow, decimal value, string description, DateTime date) { var expense = new Expense { Description = description, Date = date, Budget = budget, }; expense._value = value; expense._flow = flow; if (flow.Saving != null) { expense.SavingValue = flow.Saving.Deposit(expense, value, date, description); } return expense; }
public void DeleteCashFlowType(CashFlow cashFlow, bool omitConfirmation) { if (!omitConfirmation) { var hasBudgetPlansDefined = Database.ExecuteScalar<int>(PetaPoco.Sql.Builder .Select("COUNT(*)") .From("BudgetPlan") .Where("CashFlowId = @0", cashFlow.Id)) > 0; var hasExpensesDefined = Database.ExecuteScalar<int>(PetaPoco.Sql.Builder .Select("COUNT(*)") .From("Expense") .Where("CashFlowId = @0", cashFlow.Id)) > 0; if (hasBudgetPlansDefined || hasExpensesDefined) { Shell.ShowDialog<CashFlowDeleteConfirmationViewModel>(new { CashFlow = cashFlow }, () => DeleteCashFlowType(cashFlow, true), null); return; } } using (var tx = Database.GetTransaction()) { Database.Delete<BudgetPlan>("WHERE CashFlowId = @0", cashFlow.Id); Database.Delete<SavingValue>("WHERE ExpenseId IN (SELECT [Expense].Id FROM [Expense] WHERE CashFlowId = @0)", cashFlow.Id); Database.Delete<Expense>("WHERE CashFlowId = @0", cashFlow.Id); Database.Delete<CashFlow>(cashFlow); tx.Complete(); _cashFlows.Remove(cashFlow); } CachedService.Clear(); NotifyOfPropertyChange(() => CashFlows); //LoadData(); }
public Saving() { Values = new BindableCollectionExt<SavingValue>(); CashFlow = new CashFlow { Description = "Oszczędności" }; }
public BudgetPlan AddPlanValue(CashFlow cashFlow, decimal value, string description) { var budgetPlan = new BudgetPlan { Budget = this, CashFlow = cashFlow, Value = value, Description = description }; BudgetPlanItems.Add(budgetPlan); return budgetPlan; }