public IActionResult CreateCredit(int?id, bool isEdit = false) { var nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone(); nfi.NumberGroupSeparator = " "; var account = _db.TransitAccounts.FirstOrDefault(); if (account == null) { return(RedirectToAction("Index")); } var model = new CreateCreditViewModel { Credit = new TransitAccountCredit { LoanGroupId = id, Account = account }, TransitBalance = _db.TransitAccounts.FirstOrDefault().Balance.ToString("#,0.00", nfi), IsEditBalance = isEdit }; return(PartialView(model)); }
public async Task <ActionResult> CreateCredit(CreateCreditViewModel model) { var user = await _userManager.FindByIdAsync(_userManager.GetUserId(User)); var account = _db.TransitAccounts.FirstOrDefault(); if (account == null) { return(RedirectToAction("Index")); } var loanGroup = _db.LoanGroups.FirstOrDefault(g => g.LoanGroupId == model.Credit.LoanGroupId); account.Balance -= model.Credit.AccountAmount; if (!model.IsEditBalance) { if (loanGroup == null) { user.Balance += model.Credit.AccountAmount; } else { loanGroup.Balance += model.Credit.AccountAmount + model.Credit.AddAmount; } } model.Credit.LoanGroup = loanGroup; model.Credit.Account = account; var operation = new TransitAccountCreditOperation { TransitAccountCredit = model.Credit, OperationDateTime = DateTime.Now, OperationTypeId = TransitAccountCreditOperation.TACOType.New }; using (var transaction = await _db.Database.BeginTransactionAsync()) { _db.SetUserContext(user.Id); _db.TransitAccountCreditOperations.Add(operation); await _db.SaveChangesAsync(); transaction.Commit(); } return(RedirectToAction("Index")); }
public IActionResult CreateCreditAdd(int?id) { var account = _db.TransitAccounts.FirstOrDefault(); if (account == null) { return(RedirectToAction("Index")); } var model = new CreateCreditViewModel { Credit = new TransitAccountCredit { LoanGroupId = id, Account = account } }; return(PartialView(model)); }