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)); }
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 })); }