public ActionResult Approve(int id) { var invoice = _invoiceService.GetInvoiceById(id); if (invoice == null) { return(RedirectToAction("Create")); } if (!invoice.OrderId.HasValue) { if (!_invoiceService.HasInvoiceDetail(invoice.Id)) { ErrorNotification("Invoice don't have any product. Please add product into invoice before approve!"); return(RedirectToAction("Edit", new { invoice.Id })); } if (_invoiceService.CheckQuantityInInvoiceDetail(invoice.Id)) { ErrorNotification("Product detail is invalid. Please check again!"); return(RedirectToAction("Edit", new { invoice.Id })); } } var currentUser = Session[Values.USER_SESSION] as UserModel; invoice.ApprovedBy = currentUser.Id; invoice.Status = true; if (_invoiceService.Approved(invoice)) { SuccessNotification("Approve invoice successfully."); } else { ErrorNotification("Approve invoice failed!"); } return(RedirectToAction("Edit", new { invoice.Id })); }