Exemplo n.º 1
0
        public ActionResult SaveExpense(int id, string userId)
        {
            // userId ya da id parametreleri yok kontrolü nasıl yapmalı?**

            //Control for authorization
            if (Convert.ToInt32(Session["UserRoleId"]) == (int)UserRoleEnum.Employee &&
                Convert.ToInt32(Session["UserId"]) == Int32.Parse(userId))
            {
                //To avoid editing an expense that was sent for approval
                int?currentStatusId = ExpenseActionHandlers.GetCurrentExpenseStatus(id).LastExpenseActionId;

                if ((currentStatusId == null && id == (int)StatusEnum.NotCreated) ||
                    currentStatusId == (int)StatusEnum.Ongoing ||
                    currentStatusId == (int)StatusEnum.Rejected)
                {
                    var viewModel = new ExpenseViewModel
                    {
                        ID     = id,
                        UserId = Int32.Parse(userId)
                    };
                    return(View(viewModel));
                }
                return(RedirectToAction("Index", "Employee", new { id = Int32.Parse(userId) }));
            }
            return(RedirectToAction("Login", "Home"));
        }
Exemplo n.º 2
0
        public IHttpActionResult PayExpense(IdRequest request)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            var response = ExpenseActionHandlers.PayExpense(request);

            if (!response.IsSuccess)
            {
                return(NotFound());
            }
            return(Ok(response));
        }
Exemplo n.º 3
0
        public IHttpActionResult ApproveOrRejectExpense(ExpenseApprovalRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var response = ExpenseActionHandlers.ApproveOrRejectExpense(request);

            if (response.ApprovalStatus == (int)ApprovalStatusEnum.Unknown)
            {
                return(NotFound());
            }
            return(Ok(response));
        }
Exemplo n.º 4
0
        //Used for employees to send their expense for a manager approval
        // api/expense/SendExpenseForApproval
        public IHttpActionResult SendExpenseForApproval(IdRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var response = ExpenseActionHandlers.SendExpenseForApproval(request);

            if (!response.IsSuccess)
            {
                return(NotFound());
            }

            return(Ok(response));
        }
Exemplo n.º 5
0
        public ActionResult Approval(int id)
        {
            //Control for authorization
            if (Convert.ToInt32(Session["UserRoleId"]) == (int)UserRoleEnum.Manager)
            {
                //To avoid reapprovement of an expense
                int?currentStatusId = ExpenseActionHandlers.GetCurrentExpenseStatus(id).LastExpenseActionId;

                if (currentStatusId == (int)StatusEnum.WaitingForManagerApproval)
                {
                    var viewModel = new ExpenseViewModel
                    {
                        ID = id
                    };
                    return(View(viewModel));
                }
                return(RedirectToAction("Index", "Manager"));
            }
            return(RedirectToAction("Login", "Home"));
        }
Exemplo n.º 6
0
        public ActionResult Payment(int id)
        {
            //Control for authorization
            if (Convert.ToInt32(Session["UserRoleId"]) == (int)UserRoleEnum.Accountant)
            {
                //To avoid repaying an expense
                int?currentStatusId = ExpenseActionHandlers.GetCurrentExpenseStatus(id).LastExpenseActionId;

                if (currentStatusId == (int)StatusEnum.WaitingForAccountantApproval)
                {
                    var viewModel = new ExpenseViewModel
                    {
                        ID = id
                    };
                    return(View(viewModel));
                }
                return(RedirectToAction("Index", "Accountant"));
            }
            return(RedirectToAction("Index", "Home"));
        }