public ActionResult EditBalanceView(long balanceId, long userId) { if (!CurrentUser.IsAdmin) { throw new Exception("Unauthorized user access"); } var balance = new BalanceToAwardService().RetrieveBalanceToAwardById(balanceId); if (balance == null) { throw new Exception("Record was not found"); } List <SelectListItem> cycles = new CycleService().RetrieveCyclesList() .Select(cycle => new SelectListItem { Text = cycle.StartDate.ToString("MM/dd/yyyy") + " - " + cycle.EndDate.ToString("MM/dd/yyyy"), Value = cycle.CycleId.ToString() }).ToList(); var viewModel = new BalanceToAwardViewModel { BalanceToAwardId = balance.BalanceToAwardId, Balance = balance.Balance, EffectiveDate = balance.EffectiveDate, Cycles = cycles, CycleId = balance.Cycle.CycleId, UserId = userId }; return(PartialView("~/Views/Admin/_EditBalance.cshtml", viewModel)); }
public JsonResult BalanceToAwardChartData() { long total = new BalanceToAwardService().RetrieveBalanceToAwardListByUserAndCycle(CurrentUser.EmployeeId, null).Where(bal => bal.EffectiveDate < DateTime.Now).Sum(bal => bal.Balance); int awarded = new TransactionService().RetrieveTransactionListBySenderAndCycle(CurrentUser.EmployeeId, null).Where(Tra => Tra.FromPool == false).Count(); return(Json(new { CanAward = total - awarded, Total = total }, JsonRequestBehavior.AllowGet)); }
public ActionResult SummaryReport() { BalanceToAwardService balanceService = new BalanceToAwardService(); List <UserDetailsViewModel> viewModel = new EmployeeService().RetrieveEmployeeList().Select(x => new UserDetailsViewModel { Name = x.DisplayName, UserId = x.EmployeeId, BalanceToAward = balanceService.GetUserBalanceToAwardByCycle(x.EmployeeId, null), BalanceToSpend = balanceService.GetUserBalanceToSpend(x.EmployeeId, null) }).ToList(); return(View("_SummaryReport", viewModel)); }
public ActionResult BalancesToAward(long userId) { List <BalanceToAwardViewModel> balances = new BalanceToAwardService().RetrieveBalanceToAwardListByUser(userId) .Select( balance => new BalanceToAwardViewModel { BalanceToAwardId = balance.BalanceToAwardId, Balance = balance.Balance, EffectiveDate = balance.EffectiveDate, Cycle = balance.Cycle.StartDate.ToString("MM/dd/yyyy") + " - " + balance.Cycle.EndDate.ToString("MM/dd/yyyy"), CycleId = balance.Cycle.CycleId, UserId = userId }).ToList(); return(PartialView("~/Views/Admin/_BalancesToAward.cshtml", balances)); }
public JsonResult PoolBalanceChartData() { if (!CurrentUser.IsAdmin || (CurrentUser.IsAdmin && CurrentUser.IsEligible)) { throw new Exception("Unauthorized user access"); } EmployeeModel poolUser = new EmployeeService().GetEmployeeByUsername("pool.user"); if (poolUser == null) { throw new Exception("Pool user doesn't exist"); } long total = new BalanceToAwardService().RetrieveBalanceToAwardListByUserAndCycle(poolUser.EmployeeId, null).Where(bal => bal.EffectiveDate < DateTime.Now).Sum(bal => bal.Balance); int awarded = new TransactionService().RetrievePoolTransactionListByCycle(null).Where(Tra => Tra.TransactionState != TransactionState.Declined).Count(); return(Json(new { CanAward = total - awarded, Total = total }, JsonRequestBehavior.AllowGet)); }
public ActionResult AddTransaction(TransactionViewModel viewModel) { if (!ModelState.IsValid) { return(View("Index")); } else { if (CurrentUser.IsAdmin && !CurrentUser.IsEligible) { int poolBalance = new AdminService().GetPoolBalance(); if (poolBalance <= 0 || poolBalance < viewModel.Count) { throw new Exception("Pool balance is not enough"); } TransactionService transactionService = new TransactionService(); for (int i = 0; i < viewModel.Count; i++) { transactionService.CreateTransaction(CurrentUser.EmployeeId, viewModel.RecipientId, viewModel.IsAnonymous, TransactionState.Pending, viewModel.Comment, true); } } else { int balance = new BalanceToAwardService().GetUserBalanceToAwardByCycle(CurrentUser.EmployeeId, null); TransactionService transactionService = new TransactionService(); for (int i = 0; i < viewModel.Count; i++) { transactionService.CreateTransaction(CurrentUser.EmployeeId, viewModel.RecipientId, viewModel.IsAnonymous, TransactionState.Pending, viewModel.Comment, balance > 0 ? false : true); balance--; } if (balance < 0) { //TODO show warning to the user that he doesn't have enough balance return(RedirectToAction("Index", new { lowBalanceWarning = true })); } } return(RedirectToAction("Index")); } }
public ActionResult UserDetails(long userId) { if (!CurrentUser.IsAdmin) { throw new Exception("Unauthorized user access"); } EmployeeModel user = new EmployeeService().RetrieveEmployeeById(userId); if (user != null) { ViewBag.UserId = userId; BalanceToAwardService balanceService = new BalanceToAwardService(); UserDetailsViewModel viewModel = new UserDetailsViewModel { UserId = user.EmployeeId, Name = user.DisplayName, BalanceToAward = balanceService.GetUserBalanceToAwardByCycle(userId, null), BalanceToSpend = balanceService.GetUserBalanceToSpend(userId, null) }; return(View("UserDetails", viewModel)); } throw new Exception("User not found"); }