Exemplo n.º 1
0
        public IActionResult PaymentDetail(string billNumber)
        {
            if (String.IsNullOrEmpty(billNumber))
            {
                return(RedirectToAction("SearchPayment"));
            }

            var payable = _unitOfWork.BillPayablesRepository.Items
                          .Include(x => x.Economic).Include(x => x.Fund).FirstOrDefault(b => b.BillNumber == billNumber);

            if (payable == null)
            {
                TempData["SearchNotFound"] = $"Bill Number {billNumber} was not found!";
                return(RedirectToAction("SearchPayment"));
            }

            var payments = _unitOfWork.PaymentsRepository
                           .Items.Where(p => p.BillPayable.Id == payable.Id).ToList();

            var viewModel = new AddPaymentView
            {
                Payable    = payable,
                BillNumber = billNumber,
                Payments   = payments,
            };

            return(View(viewModel));
        }
Exemplo n.º 2
0
        private void UpdateModel(CreditViewModel model)
        {
            if (model == null)
            {
                MessageBoxWPF.Show("Выберите кредит!", "Сообщение.", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }
            Payment modelPay = repository.SearchPayment(model.Id);

            if (modelPay == null)
            {
                MessageBoxWPF.Show("Кредит уже выплачен!", "Сообщение.", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }
            AddPaymentView view = new AddPaymentView(modelPay, repository)
            {
                ShowInTaskbar = false
            };

            view.ShowDialog();
            if (view.DialogResult != true)
            {
                return;
            }

            bool flag = repository.UpdatePayment(modelPay);

            if (!flag)
            {
                MessageBoxWPF.Show(StringProject.ErrorUpdRecort, StringProject.ErrorCaption, MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            List <Payment> list = repository.GetPaymentsByIdCredit(model.Id).ToList();

            if (list.All(x => x.Repay != false))
            {
                ConditionCredit modelConditionCredit = new ConditionCredit
                {
                    Data        = DateTime.Now,
                    IdCredit    = model.Id,
                    IdCondition = 2 // выплачен
                };
                //Сохранение состояния кредита в БД
                repository.AddConditionCredit(modelConditionCredit);
            }
            model.RefreshModel();
        }
Exemplo n.º 3
0
        public IActionResult AddPayment(AddPaymentView viewModel)
        {
            var payable = _unitOfWork.BillPayablesRepository
                          .Items.FirstOrDefault(b => b.BillNumber == viewModel.BillNumber);

            var paymentMadeList = _unitOfWork.PaymentsRepository.Items.Where(x => x.BillPayable.Id == payable.Id).ToList();

            decimal totalPayment = 0;


            foreach (var made in paymentMadeList)
            {
                totalPayment += made.Amount;
            }

            totalPayment += Convert.ToDecimal(viewModel.Amount);

            decimal amountBilled = payable.Amount;

            if (totalPayment > amountBilled)
            {
                TempData["PaymentError"] = "Amount payable cannot be more than outstanding bill.";
                return(RedirectToAction("PaymentDetail", new { billNumber = viewModel.BillNumber }));
            }

            decimal outstandingAmount = amountBilled - totalPayment;

            var payment = new Payment
            {
                TransactionDate   = DateTime.Now.ToString("dd/MM/yyyy"),
                Amount            = Convert.ToDecimal(viewModel.Amount),
                Description       = viewModel.Description,
                BillPayable       = payable,
                OutstandingAmount = outstandingAmount,
            };

            _unitOfWork.PaymentsRepository.Insert(payment);

            _unitOfWork.SaveChanges();

            return(RedirectToAction("PaymentDetail", new { billNumber = viewModel.BillNumber }));
        }