Exemple #1
0
        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 }));
        }