public CreditBalance Delete(int id) { CreditBalance dbEntry = context.CreditBalance.FirstOrDefault(e => e.ID == id); if (dbEntry != null) { context.CreditBalance.Remove(dbEntry); context.SaveChanges(); } return(dbEntry); }
public void Save(CreditBalance e) { if (e.ID == 0) { context.CreditBalance.Add(e); } else { CreditBalance dbEntry = context.CreditBalance.FirstOrDefault(x => x.ID == e.ID); if (dbEntry != null) { dbEntry.Amount = e.Amount; } } context.SaveChanges(); }
public IActionResult EditPaymentMethod(PaymentMethod model) { if (ModelState.IsValid) { if (model.ID > 0) { PaymentMethod old = _payRepo.PaymentMethods.Where(x => x.ID == model.ID).First(); if (old.IsCredit && !model.IsCredit) { _creditRepo.Delete(old.CreditBalance.ID); } } _payRepo.Save(model); if (model.IsCredit) { CreditBalance c = new CreditBalance { Amount = 0.00, PaymentMethodID = _payRepo.PaymentMethods.Last().ID }; _creditRepo.Save(c); } TempData["message"] = $"{model.Method} has been saved"; return(RedirectToAction("PaymentMethods")); } else { if (model.ID == 0) { ViewBag.FormTitle = "Create Payment Method"; } else { ViewBag.FormTitle = "Edit Payment Method"; } return(View(model)); } }
public IActionResult PayOffCredit(PayOffCreditViewModel model) { PaymentMethod p = _payRepo.PaymentMethods.Where(x => x.ID == model.PaymentMethod.ID).First(); Account s = _saveRepo.Accounts.Where(x => x.TypeID == _saveTypeRepo.AccountTypes.Where(y => y.Name.Equals("Personal")).FirstOrDefault().ID).FirstOrDefault(); if (ModelState.IsValid) { CreditBalance c = p.CreditBalance; c.Amount = Math.Round(c.Amount - model.AmountToPay, 2); s.Amount -= Math.Round(s.Amount - model.AmountToPay, 2); _creditRepo.Save(c); _saveRepo.Save(s); TempData["message"] = $"{p.Method} has had ${model.AmountToPay} paid off"; return(RedirectToAction("CreditCards")); } else { ViewBag.FormTitle = "Pay Off Credit"; model.PaymentMethod = p; return(View(model)); } }
public IActionResult Edit(ExpenseFormViewModel model) { if (ModelState.IsValid) { Account s = _saveRepo.Accounts.Where(x => x.TypeID == _saveTypeRepo.AccountTypes.Where(y => y.Name.Equals("Personal")).FirstOrDefault().ID).FirstOrDefault(); CreditBalance c = _payRepo.PaymentMethods.Where(x => x.ID == model.Expense.PaymentMethodID).First().CreditBalance; if (model.Expense.ID == 0) { if (_payRepo.PaymentMethods.Where(x => x.ID == model.Expense.PaymentMethodID).FirstOrDefault().IsCredit) { c.Amount = Math.Round(c.Amount + model.Expense.Amount, 2); } else { s.Amount = Math.Round(s.Amount - model.Expense.Amount, 2); } } else { Expense i = _repo.Expenses.Where(x => x.ID == model.Expense.ID).FirstOrDefault(); if (_payRepo.PaymentMethods.Where(x => x.ID == model.Expense.PaymentMethodID).FirstOrDefault().IsCredit) { c.Amount = Math.Round(c.Amount + model.Expense.Amount - i.Amount, 2); } else { s.Amount = Math.Round(s.Amount + i.Amount - model.Expense.Amount, 2); } } int id = _repo.Save(model.Expense); if (s != null) { _saveRepo.Save(s); } if (c != null) { _creditRepo.Save(c); } TempData["message"] = $"{model.Expense.Description} has been saved"; return(RedirectToAction("MonthlyReport")); } else { if (model.Expense.ID == 0) { ViewBag.FormTitle = "Create Expense"; } else { ViewBag.FormTitle = "Edit Expense"; } model.ExpenseCategories = new SelectList(_catRepo.ExpenseCategories.ToList(), "ID", "Name"); model.PaymentMethods = new SelectList(_payRepo.PaymentMethods.ToList(), "ID", "Method"); return(View(model)); } }