public CreditPaymentModel(CreditPayment payment) { Id = payment.Id; MainAmount = payment.MainAmount; PercentAmount = payment.PercentsAmount; Type = (CreditPaymentType) payment.Type; Date = payment.Date; CreditId = payment.CreditId; if (payment.Credit != null) { CreditModel = new CreditModel(payment.Credit, takePayments: false); } }
public void AddPayment(CreditPaymentModel paymentModel) { var credit = creditRepository.GetCreditById(paymentModel.CreditId); var rest = paymentModel.MainAmount - credit.PercentageDebt; decimal mainMinus, percentMinus; if (rest >= 0) { mainMinus = rest; percentMinus = credit.PercentageDebt; } else { mainMinus = 0; percentMinus = paymentModel.MainAmount; } credit.MainDebt -= mainMinus; credit.PercentageDebt -= percentMinus; if (credit.MainDebt < 1) { credit.MainDebt = 0; } if (credit.PercentageDebt < 1) { credit.PercentageDebt = 0; } creditRepository.UpdateCredit(credit); var date = dateService.GetCurrentDate(); var payment = new CreditPayment { MainAmount = mainMinus, PercentsAmount = percentMinus, CreditId = paymentModel.CreditId, Type = (int)paymentModel.Type, Date = date, }; creditPaymentRepository.CreatePayment(payment); }