// GET: Deposites/Cashout/5 public ActionResult Cashout(long?accountId) { if (accountId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } StationAccount account = db.StationAccounts.Find(accountId); if (account == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (account.Deposite < 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DepositeHistory depositeHistory = new DepositeHistory() { StationAccountId = accountId.Value, Amount = account.Deposite }; return(View(depositeHistory)); }
public ActionResult Cashout([Bind(Include = "StationAccountId,Amount,ChangeType,Description,Timestamp")] DepositeHistory depositeHistory) { DateTime time = depositeHistory.Timestamp; if (ModelState.IsValid) { StationAccount account = db.StationAccounts.Find(depositeHistory.StationAccountId); if (account.Deposite < 0 || account.Deposite < depositeHistory.Amount || depositeHistory.Amount < 0) { return(View("The deposite is not enough to cashout.")); } account.Deposite -= depositeHistory.Amount; depositeHistory.Amount = depositeHistory.Amount * -1; depositeHistory.Timestamp = time; depositeHistory.ChangeType = DepositeChangeType.Cashout; db.DepositeHistories.Add(depositeHistory); db.Entry(account).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", new { accountId = depositeHistory.StationAccountId })); } return(View(depositeHistory)); }
public ActionResult DeleteConfirmed(long id) { DepositeHistory depositeHistory = db.DepositeHistories.Find(id); db.DepositeHistories.Remove(depositeHistory); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: Deposites/Create public ActionResult Recharge(long?accountId) { if (accountId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var depositeHistory = new DepositeHistory() { StationAccountId = accountId.Value }; return(View(depositeHistory)); }
// GET: Deposites/Details/5 public ActionResult Details(long?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DepositeHistory depositeHistory = db.DepositeHistories.Find(id); if (depositeHistory == null) { return(HttpNotFound()); } return(View(depositeHistory)); }
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 })); }
public ActionResult PayConfirmed([Bind(Include = "SubscriptionId, Notes, Timestamp")] Subscription s) { if (ModelState.IsValid) { DateTime time = s.Timestamp; Subscription subscription = db.Subscriptions.Find(s.SubscriptionId); long accountId = subscription.StationAccountId; StationAccount station = db.StationAccounts.Find(accountId); subscription.State = SubscriptionState.Paid; subscription.Timestamp = time; db.Entry(subscription).State = EntityState.Modified; station.Deposite -= subscription.UnitPrice * subscription.StartQuantity; db.Entry(station).State = EntityState.Modified; var subscriptionHistory = new SubscriptionHistory() { UnitPrice = subscription.UnitPrice, State = SubscriptionState.Paid, Quantity = subscription.StartQuantity, Notes = subscription.Notes, SubscriptionId = subscription.SubscriptionId, Timestamp = time }; db.SubscriptionHistories.Add(subscriptionHistory); var depositeHistory = new DepositeHistory() { Amount = subscription.UnitPrice * subscription.StartQuantity * -1, ChangeType = DepositeChangeType.Pay, StationAccountId = accountId, Description = string.Format("Pay for Subscription: {0}.", subscription.SubscriptionId), Timestamp = time }; db.DepositeHistories.Add(depositeHistory); db.SaveChanges(); return(RedirectToAction("Index", new { accountId = accountId })); } return(View("The state is not valid.")); }
public ActionResult Recharge([Bind(Include = "StationAccountId,Amount,Description,Timestamp")] DepositeHistory depositeHistory) { DateTime time = depositeHistory.Timestamp; if (ModelState.IsValid) { StationAccount account = db.StationAccounts.Find(depositeHistory.StationAccountId); account.Deposite += depositeHistory.Amount; depositeHistory.Timestamp = time; depositeHistory.ChangeType = DepositeChangeType.Recharge; db.DepositeHistories.Add(depositeHistory); db.Entry(account).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", new { accountId = depositeHistory.StationAccountId })); } return(View(depositeHistory)); }