public async Task <IActionResult> WithDraw(WithDrawViewModel model) { var amount = await _walletService.GetAmount(CurrentUser); if (ModelState.IsValid && model.Amount > 0 && model.Amount <= amount) { var r = await _transactionService.CreateTransaction(CurrentUser.Type, CurrentUser.Id, model, CurrentUser.Username); if (r > 0) { ViewBag.Success = "Yêu cầu rút tiền đã được gửi. Vui lòng chờ quản trị duyệt giao dịch."; return(PartialView("WithDrawMessage")); } else if (r == -2) { ViewBag.Error = "Đã tồn tại yêu cầu rút tiền với số tiền tương ứng. Vui lòng chờ duyệt giao dịch"; } else { ViewBag.Error = "Không tạo được yêu cầu rút tiền. Vui lòng thử lại"; } } else { ViewBag.Error = "Thông tin rút tiền không chính xác"; } return(PartialView("WithDrawMessage")); }
public async Task <IActionResult> WithDraw(WithDrawViewModel model) { var amount = await _walletService.GetAmount(CurrentUser); if (ModelState.IsValid && model.Amount > 0 && model.Amount <= amount) { var r = await _transactionService.CreateTransaction(CurrentUser.Type, CurrentUser.Id, model, CurrentUser.Username); if (r > 0) { //r = transaction id //########## create notification added by longhk ########################################################## string _msg = string.Format("Yêu cầu rút tiền đã được gửi bởi {0}, với số tiền {1}. Cần được duyệt", CurrentUser.Username, model.Amount.ToPriceText()); string _data = "Transaction"; await _INotificationService.CreateNotification(r, EntityType.System, 0, NotificationType.AgencyWalletWithDraw, _msg, _data); //######################################################################################### this.AddAlertSuccess("Yêu cầu rút tiền đã được gửi. Vui lòng chờ quản trị duyệt giao dịch."); } else if (r == -2) { this.AddAlertDanger("Đã tồn tại yêu cầu rút tiền với số tiền tương ứng. Vui lòng chờ duyệt giao dịch"); } else { this.AddAlertDanger("Không tạo được yêu cầu rút tiền. Vui lòng thử lại"); } } else { this.AddAlertDanger("Thông tin rút tiền không chính xác"); } return(RedirectToAction("WithDraw")); }
public async Task <int> CreateTransaction(EntityType entityType, int entityId, WithDrawViewModel model, string username) { //chua viet can than can review lai -- chi khoi tao transaction - Admin duyet var wallet = await _walletRepository.GetWallet(entityType, entityId); if (wallet == null) { return(-1); } var systemid = await _walletRepository.GetSystemId(); var data = Newtonsoft.Json.JsonConvert.SerializeObject(new { BankName = model.Bank, BankNumber = model.Number, BankAccount = model.Name, BankBranch = model.Branch }); var transactionId = await _transactionRepository.CreateTransaction(systemid, wallet.Id, model.Amount, TransactionType.WalletWithdraw, data, model.Note, username); return(transactionId); }