コード例 #1
0
        public ActionResult AddExpense(ExpenseCart cart, ExpenseFormViewModel ViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("AddExpense", ViewModel));
            }

            var userId = User.Identity.GetUserId();

            VPExpenseHistory history = new VPExpenseHistory
            {
                ModifyBy = User.Identity.GetUserName(),
            };

            VPExpenseItem item = new VPExpenseItem
            {
                Amount      = ViewModel.Amount,
                ExpenseDate = ViewModel.GetDateTime(),
                UserId      = userId,
                Description = ViewModel.Description
            };

            cart.AddItem(item);

            return(RedirectToAction("Create", "Expense"));
        }
コード例 #2
0
        public ActionResult Save(Expense expense)
        {
            if (string.IsNullOrEmpty(expense.Name) || expense.BudgetItemId.Equals(null) || !ModelState.IsValid)
            {
                var viewModel = new ExpenseFormViewModel()
                {
                    Expense     = expense,
                    BudgetItems = _context.BudgetItems.ToList()
                };

                return(View("ExpenseForm", viewModel));
            }

            if (expense.Id == 0) // if new expense
            {
                _context.Expenses.Add(expense);
            }
            else
            {
                var expenseInDb = _context.Expenses.Single(e => e.Id == expense.Id);
                expenseInDb.Name          = expense.Name;
                expenseInDb.ExpenseAmount = expense.ExpenseAmount;
                expenseInDb.ExpenseDate   = expense.ExpenseDate;
                expenseInDb.BudgetItemId  = expense.BudgetItemId;
            }
            _context.SaveChanges();

            return(RedirectToAction("Index", "Expenses"));
        }
コード例 #3
0
        public ActionResult Save(Expense expense)
        {
            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

            if (string.IsNullOrEmpty(expense.Name) || expense.BudgetItemId.Equals(null) || !ModelState.IsValid)
            {
                var viewModel = new ExpenseFormViewModel()
                {
                    Expense     = expense,
                    BudgetItems = _context.BudgetItems.Where(b => b.ApplicationUserId == userId).ToList()
                };

                return(View("ExpenseForm", viewModel));
            }

            expense.ApplicationUserId = userId;

            if (expense.Id == 0) // if new expense
            {
                expense.EntryDate = DateTime.Now;
                _context.Expenses.Add(expense);
            }
            else
            {
                var expenseInDb = _context.Expenses.Single(e => e.Id == expense.Id);
                expenseInDb.Name          = expense.Name;
                expenseInDb.ExpenseAmount = expense.ExpenseAmount;
                expenseInDb.ExpenseDate   = expense.ExpenseDate;
                expenseInDb.BudgetItemId  = expense.BudgetItemId;
            }
            _context.SaveChanges();

            return(RedirectToAction("Index", "Expenses"));
        }
コード例 #4
0
        // GET: Expenses
        public ActionResult Save(Expense expense)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = new ExpenseFormViewModel
                {
                    Expense    = expense,
                    Categories = _context.Categories.ToList()
                };
                return(View("ExpenseForm", viewModel));
            }

            if (expense.Id == 0)
            {
                _context.Expenses.Add(expense);
            }
            else
            {
                var expenseInDb = _context.Expenses.Single(c => c.Id == expense.Id);

                //MVC tutorial example, update all properties
                //TryUpdateModel(customerInDb);

                //MVC tutorial example, update whitelist properties
                //TryUpdateModel(customerInDb, "", new string[] {"name","email"});

                expenseInDb.Name = expense.Name;
            }

            _context.SaveChanges();

            return(RedirectToAction("Index", "Expenses"));
        }
コード例 #5
0
        public ActionResult SaveExpenseForm(ExpenseFormViewModel expenseForm)
        {
            if (!ModelState.IsValid)
            {
                return(View("Index"));
            }


            var _user = _userManager.FindById(User.Identity.GetUserId());

            var expenseForms = _context.ExpenseForms.Where(e => e.UserId == _user.Id).ToList();

            if (expenseForm.Id == 0)
            {
                var expenseFormToSave = new ExpenseForm
                {
                    Name      = expenseForm.Name,
                    DateAdded = DateTime.Now,
                    TotalCost = 0,
                    UserId    = _user.Id,
                    User      = _user
                };
                _context.ExpenseForms.Add(expenseFormToSave);
            }
            else
            {
                var _expenseFormInDb = _context.ExpenseForms.First(e => e.Id == expenseForm.Id);
                _expenseFormInDb.Name = expenseForm.Name;
            }

            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
コード例 #6
0
        public ActionResult New()
        {
            var viewModel = new ExpenseFormViewModel()
            {
                Expense     = new Expense(),
                BudgetItems = _context.BudgetItems.ToList()
            };

            ViewBag.Title = "New Expense Entry";
            return(View("ExpenseForm", viewModel));
        }
コード例 #7
0
        public ActionResult Edit(int id)
        {
            var categories = _context.Categories.ToList();
            var viewModel  = new ExpenseFormViewModel
            {
                Expense    = _context.Expenses.Single(c => c.Id == id),
                Categories = (IEnumerable <Models.Category>)categories,
                PageTitle  = "Edit Expense"
            };

            return(View("ExpenseForm", viewModel));
        }
コード例 #8
0
        public ActionResult ShowExpenses(int expenseFormId)
        {
            var expenseForm = _context.ExpenseForms.Include(e => e.User).SingleOrDefault(e => e.Id == expenseFormId);
            var viewModel   = new ExpenseFormViewModel
            {
                ExpenseForm = expenseForm,
                Expenses    = _context.Expenses.Include(e => e.ExpenseType).Where(e => e.ExpenseFormId == expenseFormId).ToList(),
                User        = expenseForm.User
            };

            var name = !String.IsNullOrEmpty(viewModel.User.FullName) ? viewModel.User.FullName : viewModel.User.FirstName + " " + viewModel.User.LastName;

            ViewBag.Title = viewModel.ExpenseForm.Name + " - " + name;

            return(View("ShowExpensesForm", viewModel));
        }
コード例 #9
0
        public ActionResult New()
        {
            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

            var viewModel = new ExpenseFormViewModel()
            {
                Expense = new Expense()
                {
                    EntryDate   = DateTime.Now,
                    ExpenseDate = DateTime.Now.Date
                },
                BudgetItems = _context.BudgetItems.Where(b => b.ApplicationUserId == userId).ToList()
            };

            ViewBag.Title = "New Expense Entry";
            return(View("ExpenseForm", viewModel));
        }
コード例 #10
0
        public ActionResult New()
        {
            var categories = _context.Categories.ToList();
            var viewModel  = new ExpenseFormViewModel
            {
                Expense    = new Expense(),
                Categories = (IEnumerable <Models.Category>)categories,
                PageTitle  = "New Expense"
            };

            viewModel.Expense.UnitPrice   = null;
            viewModel.Expense.Quantity    = null;
            viewModel.Expense.DateAdded   = DateTime.Now;
            viewModel.Expense.ExpenseDate = DateTime.Now;

            return(View("ExpenseForm", viewModel));
        }
コード例 #11
0
        public ActionResult Edit(int id)
        {
            var expense = _context.Expenses.SingleOrDefault(e => e.Id == id);

            if (expense == null)
            {
                return(StatusCode(404));
            }

            var categories = _context.BudgetItems.ToList();
            var viewModel  = new ExpenseFormViewModel()
            {
                Expense     = expense,
                BudgetItems = categories
            };

            ViewBag.Title = "Edit Expense Entry";
            return(View("ExpenseForm", viewModel));
        }
コード例 #12
0
        public ActionResult Edit(int id)
        {
            var userId  = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var expense = _context.Expenses.SingleOrDefault(e => e.Id == id);

            if (expense == null)
            {
                return(StatusCode(404));
            }

            var categories = _context.BudgetItems.Where(b => b.ApplicationUserId == userId).ToList();
            var viewModel  = new ExpenseFormViewModel()
            {
                Expense     = expense,
                BudgetItems = categories
            };

            ViewBag.Title = "Edit Expense Entry";
            return(View("ExpenseForm", viewModel));
        }
コード例 #13
0
        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));
            }
        }
コード例 #14
0
        public ActionResult AddExpense()
        {
            ExpenseFormViewModel ViewModel = new ExpenseFormViewModel();

            return(View(ViewModel));
        }