public async Task <IActionResult> InnerTransfer()
        {
            User user = userService.FindUserByName(HttpContext.User.Identity.Name);
            InnerTransferViewModel transfer = new InnerTransferViewModel();
            InnerTransferViewModel model    = transferService.GetMethodInnerTransfer(user, transfer);


            return(View(model));
        }
Example #2
0
        public async Task <ModelStateDictionary> ValidateInnerTransfer(InnerTransferViewModel model, User user, Account sender, ModelStateDictionary ModelState)
        {
            decimal amount = 0;

            if (model.AccountSenderId == null)
            {
                ModelState.AddModelError("AccountSenderId", localizer["AccountSenderIdValidation"]);
            }
            else
            {
                EmployeeAccount Limit = accountService.FindEmployeeAccountByUserIdAndAccountId(user.Id, model.AccountSenderId.Value);
                if (sender.Locked)
                {
                    ModelState.AddModelError("AccountSenderId", "*Счет заблокирован");
                }
                else if (!await accountService.IsAccountExist(model.ReceiverAccountNumber))
                {
                    ModelState.AddModelError("ReceiverAccountNumber", localizer["ReceiverAccountNumberExistVlidation"]);
                }
                else if (await accountService.IsAccountExist(model.ReceiverAccountNumber) && await accountService.IsAccountSenderNotReceiver(model.ReceiverAccountNumber, user))
                {
                    ModelState.AddModelError("ReceiverAccountNumber", localizer["IsAccountSenderNotReceiverValidation"]);
                }
                else if (!await accountService.IsUserHaveRightsOnAccount(user, model.AccountSenderId.Value))
                {
                    ModelState.AddModelError("AccountSenderId", "У вас нет прав на совершение данного перевода.");
                }
                else if (await accountService.IsAccountExist(model.ReceiverAccountNumber) && await accountService.CompareAccountsCurrencies(model.ReceiverAccountNumber, (int)model.AccountSenderId))
                {
                    ModelState.AddModelError("ReceiverAccountNumber", localizer["CurrencyValidation"]);
                }
                if (!accountService.AmountTryParse(model.Amount, out amount))
                {
                    ModelState.AddModelError("Amount", localizer["AmountFormatValidation"]);
                }
                else if (amount <= 0)
                {
                    ModelState.AddModelError("Amount", localizer["AmountNotNull"]);
                }
                else if (!await accountService.IsBalanceEnough((int)model.AccountSenderId, amount))
                {
                    ModelState.AddModelError("Amount", localizer["IsBalanceEnoughValidation"]);
                }
                else if (Limit != null)
                {
                    if (Limit.limit.LimitAmount < amount)
                    {
                        ModelState.AddModelError("Amount", string.Format("{0} {1}", localizer["ExceededTheLimit"], Limit.limit.LimitAmount));
                    }
                }
            }
            return(ModelState);
        }
Example #3
0
        public IActionResult CreateTemplateInnerTransfer()
        {
            User user = userService.FindUserByName(HttpContext.User.Identity.Name);
            CreateTemplateInnerTransferViewModel model = new CreateTemplateInnerTransferViewModel();
            InnerTransferViewModel transferModel       = new InnerTransferViewModel();

            model.Transfer = transferService.GetMethodInnerTransfer(user, transferModel);
            model.Template = new TemplateViewModel
            {
                PaymentScheduleViewModel = new PaymentScheduleViewModel
                {
                    IntervalTypes = selectListService.GetIntervalTypes(),
                    DateStart     = DateTime.Now.AddDays(1)
                }
            };

            return(View(model));
        }
        public InnerTransferViewModel GetMethodInnerTransfer(User user, InnerTransferViewModel model)
        {
            string       userName     = String.Empty;
            int          userId       = 0;
            UserInfo     userInfo     = userService.FindUserByIdInUserInfo(user.Id, ref userName, ref userId);
            EmployeeInfo employeeInfo = userService.FindUserByIdInCompany(user.Id, ref userName, ref userId);

            if (userInfo != null)
            {
                model.UserAccounts = selectListService.GetUserAccounts(userInfo.Id);
            }
            if (employeeInfo != null)
            {
                model.UserAccounts = selectListService.GetEmployeeAccounts(employeeInfo.Id);
            }

            model.SaveInTempalte = false;

            return(model);
        }
Example #5
0
        public async Task <ModelStateDictionary> ValidateInterTransfer(InnerTransferViewModel model, User user, Account receiver,
                                                                       ModelStateDictionary ModelState)
        {
            decimal amount = 0;

            if (model.AccountSenderId == null)
            {
                ModelState.AddModelError("Transfer.Transfer.AccountSenderId", localizer["AccountSenderIdValidation"]);
            }
            else
            {
                EmployeeAccount Limit = accountService.FindEmployeeAccountByUserIdAndAccountId(user.Id, model.AccountSenderId.Value);
                if (!await accountService.IsUserHaveRightsOnAccount(user, model.AccountSenderId.Value))
                {
                    ModelState.AddModelError("Transfer.Transfer.AccountSenderId", "У вас нет прав на совершение данного перевода.");
                }
                else if (await accountService.IsAccountExist(receiver.Number) && await accountService.CompareAccountsCurrencies(receiver.Number, (int)model.AccountSenderId))
                {
                    ModelState.AddModelError("Transfer.Transfer.AccountSenderId", localizer["*Межбанковский перевод провидиться в национальной валюте"]);
                }
                if (!accountService.AmountTryParse(model.Amount, out amount))
                {
                    ModelState.AddModelError("Transfer.Transfer.Amount", localizer["AmountFormatValidation"]);
                }
                else if (amount <= 0)
                {
                    ModelState.AddModelError("Transfer.Transfer.Amount", localizer["AmountNotNull"]);
                }
                else if (!await accountService.IsBalanceEnough((int)model.AccountSenderId, amount))
                {
                    ModelState.AddModelError("Transfer.Transfer.Amount", localizer["IsBalanceEnoughValidation"]);
                }
                else if (Limit.limit.LimitAmount < amount)
                {
                    ModelState.AddModelError("Transfer.Transfer.Amount", string.Format("{0} {1}", localizer["ExceededTheLimit"], Limit.limit.LimitAmount));
                }
            }
            return(ModelState);
        }
        public async Task <IActionResult> InnerTransfer(InnerTransferViewModel model)
        {
            decimal amount = 0;
            User    user   = userService.FindUserByName(HttpContext.User.Identity.Name);
            Account sender = accountService.FindAccountById((int)model.AccountSenderId).Result;
            await validationService.ValidateInnerTransfer(model, user, sender, ModelState);

            string comment = "Внутрибанковский платеж - " + model.Comment;

            model.Comment = comment;
            if (ModelState.IsValid)
            {
                amount = decimal.Parse(model.Amount);
                Account receiver = accountService.FindAccountByNumber(model.ReceiverAccountNumber).Result;
                //decimal amountReceive;
                //accountService.AmountTryParse(model.AmountReceive, out amountReceive);
                InnerTransfer transfer = await
                                         transferService.CreateInnerTransfer(sender, receiver, amount, model.Comment, null, null, null);

                transferService.AddTransfer(transfer);

                if (model.SaveInTempalte)
                {
                    Template template = _templateServiceService.SaveTemplate(transfer, user);
                    return(RedirectToAction("TemplateSave", "Template", new { tempalteId = template.Id }));
                }
                return(RedirectToAction("Transfer", "Transfer"));
            }
            model = transferService.GetMethodInnerTransfer(user, model);
            Template templates = _templateServiceService.FindTemplateById(model.TemplateId);

            if (templates != null)
            {
                model.Template = templates;
            }
            return(View(model));
        }
        public IActionResult InnerTransferTemplate(int templateId)
        {
            Template template            = _templateServiceService.FindTemplateById(templateId);
            InnerTransferViewModel model = new InnerTransferViewModel
            {
                AccountSenderId       = template.AccountSenderId,
                ReceiverAccountNumber = template.AccountReceiver.Number,
                Amount         = template.Amount.ToString(),
                Comment        = template.Comment,
                TemplateId     = template.Id,
                Template       = template,
                SaveInTempalte = false
            };

            if (template.UserInfo != null)
            {
                model.UserAccounts = selectListService.GetUserAccounts(template.UserInfo.Id);
            }
            if (template.Company != null)
            {
                model.UserAccounts = selectListService.GetCompanyAccounts(template.Company.Id);
            }
            return(View("InnerTransfer", model));
        }