示例#1
0
        public ActionResult BusinessApprove(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            PaymentRequest paymentRequest = db.PaymentRequests.Find(id.Value);

            if (paymentRequest == null)
            {
                return(HttpNotFound("请款单未找到."));
            }

            if (paymentRequest.State != PaymentRequestState.FinanceManagerApproved)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "请款单必须是FinanceManagerApproved状态,才能进行业务总监批准."));
            }

            var yesOrNo = new SelectList(
                new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = "否", Value = "No"
                },
                new SelectListItem()
                {
                    Text = "是", Value = "Yes"
                }
            },
                "Value",
                "Text",
                0);

            PaymentRequestBusinessManagerApproveViewModel model = new PaymentRequestBusinessManagerApproveViewModel()
            {
                Amount                          = paymentRequest.Amount,
                BankAccountName                 = paymentRequest.BankAccountName,
                BankAccountNumber               = paymentRequest.BankAccountNumber,
                BankBranch                      = paymentRequest.BankBranch,
                Employee                        = userManager.FindById(paymentRequest.EmployeeId).UserName,
                FinanceManager                  = userManager.FindById(paymentRequest.FinanceManagerId).UserName,
                FinanceManagerComments          = paymentRequest.FinanceManagerComments,
                FinanceManagerCommentsTimestamp = paymentRequest.FinanceManagerCommentsTimestamp,
                PaymentRequestId                = paymentRequest.PaymentRequestId,
                Reason                          = paymentRequest.Reason,
                StartTimestamp                  = paymentRequest.StartTimestamp,
                StationAccountId                = paymentRequest.StationAccountId,
                Station                         = db.StationAccounts.Find(paymentRequest.StationAccountId),
                YesOrNo                         = yesOrNo
            };

            return(View(model));
        }
示例#2
0
        public ActionResult BusinessApprove([Bind(Include = "StationAccountId, PaymentRequestId, BusinessManagerComments, IsApprove")] PaymentRequestBusinessManagerApproveViewModel businessApprove)
        {
            if (ModelState.IsValid)
            {
                PaymentRequest request = db.PaymentRequests.Find(businessApprove.PaymentRequestId);

                DateTime now = DateTime.Now;

                if (request.State != PaymentRequestState.FinanceManagerApproved)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.ExpectationFailed, "请款单不是FinanceManagerApproved状态."));
                }

                request.BusinessManagerComments = businessApprove.BusinessManagerComments;

                if (businessApprove.IsApprove == "Yes")
                {
                    request.State = PaymentRequestState.BusinessManagerApproved;

                    // Add Deposite logs
                    StationAccount account = db.StationAccounts.Find(businessApprove.StationAccountId);
                    account.Deposite += Convert.ToDouble(request.Amount);

                    var depositeHistory = new DepositeHistory()
                    {
                        StationAccountId = businessApprove.StationAccountId
                    };

                    depositeHistory.Timestamp  = now;
                    depositeHistory.ChangeType = DepositeChangeType.Recharge;
                    depositeHistory.Amount     = Convert.ToDouble(request.Amount);
                    db.DepositeHistories.Add(depositeHistory);

                    db.Entry(account).State = EntityState.Modified;
                }
                else
                {
                    request.State = PaymentRequestState.BusinessManagerRejected;
                }

                request.BusinessManagerCommentsTimestamp = now;
                request.BusinessManagerId = System.Web.HttpContext.Current.User.Identity.GetUserId();
                db.Entry(request).State   = EntityState.Modified;

                db.SaveChanges();
            }

            return(RedirectToAction("Index", new { accountId = businessApprove.StationAccountId }));
        }