private static OCurrency _CashStockBalance(Loan pCredit) { OCurrency balance = 0; if (!pCredit.Disbursed) return balance; balance += pCredit.GetPaidFees(); balance += pCredit.GetPaidInterest(); balance += pCredit.GetPaidPrincipal(); return balance - pCredit.Amount; }
private static OCurrency _InterestOnRescheduledloanBalance(Loan pCredit) { if (!pCredit.Rescheduled) return 0; OCurrency balance = 0; balance += pCredit.GetPaidInterest(); foreach (BadLoanRepaymentEvent e in pCredit.Events.GetEventsByType(typeof(BadLoanRepaymentEvent))) { balance -= e.Interests; } if (pCredit.GetPastDueDays(TimeProvider.Today) != 0) return balance; foreach (Installment installment in pCredit.InstallmentList) { if (!installment.IsRepaid) { DateTime date = installment.Number == 1 ? pCredit.StartDate : pCredit.GetInstallment(installment.Number - 2).ExpectedDate; int days = (TimeProvider.Today - date).Days; OCurrency accruedInterest = installment.InterestsRepayment * (double)days / (double)DateTime.DaysInMonth(date.Year, date.Month); accruedInterest -= installment.PaidInterests; balance += accruedInterest > 0 ? accruedInterest : 0; break; } } return balance; }
private static OCurrency _InterestOnRescheduledloanBalance(Loan pCredit) { if (!pCredit.Rescheduled) return 0; OCurrency balance = 0; balance += pCredit.GetPaidInterest(); foreach (BadLoanRepaymentEvent e in pCredit.Events.GetEventsByType(typeof(BadLoanRepaymentEvent))) { balance -= e.Interests; } return balance; }