Пример #1
0
 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(); };
 }
Пример #2
0
 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);
     }
 }
Пример #3
0
        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);
        }
Пример #7
0
 public virtual void RemoveBudgetPlanItems(CashFlow cashFlow)
 {
     BudgetPlanItems.Clear();
 }
Пример #8
0
 public virtual void RemoveBudgetPlanItems(CashFlow cashFlow)
 {
     BudgetPlanItems.Clear();
 }
Пример #9
0
 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();
 }
Пример #13
0
        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);
            }
        }
Пример #14
0
        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();
        }
Пример #16
0
 public Saving()
 {
     Values = new BindableCollectionExt<SavingValue>();
     CashFlow = new CashFlow { Description = "Oszczędności" };
 }
Пример #17
0
 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;
 }