示例#1
0
        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));
        }
示例#2
0
        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"));
        }
示例#3
0
        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));
        }