MIFOSX-995 - Fixed Grace periods

This commit is contained in:
Sander van der Heyden
2014-03-17 13:42:17 +01:00
parent aede1995c6
commit 6c1db9f4fb
3 changed files with 23 additions and 12 deletions
@@ -1940,11 +1940,11 @@ public class Loan extends AbstractPersistable<Long> {
loanVariationTermsData.add(data);
}
final LoanApplicationTerms loanApplicationTerms = LoanApplicationTerms.assembleFrom(applicationCurrency, loanTermFrequency,
loanTermPeriodFrequencyType, getDisbursementDate(), getExpectedFirstRepaymentOnDate(),
calculatedRepaymentsStartingFromDate, getInArrearsTolerance(), this.loanRepaymentScheduleDetail,
this.loanProduct.isMultiDisburseLoan(), this.fixedEmiAmount, disbursementData, this.maxOutstandingLoanBalance,
loanVariationTermsData);
final LoanApplicationTerms loanApplicationTerms = LoanApplicationTerms
.assembleFrom(applicationCurrency, loanTermFrequency, loanTermPeriodFrequencyType, getDisbursementDate(),
getExpectedFirstRepaymentOnDate(), calculatedRepaymentsStartingFromDate, getInArrearsTolerance(),
this.loanRepaymentScheduleDetail, this.loanProduct.isMultiDisburseLoan(), this.fixedEmiAmount, disbursementData,
this.maxOutstandingLoanBalance,loanVariationTermsData, getInterestChargedFromDate());
final LoanScheduleModel loanSchedule = loanScheduleGenerator.generate(mc, applicationCurrency, loanApplicationTerms, charges(),
isHolidayEnabled, holidays, workingDays);
@@ -126,9 +126,9 @@ public final class LoanApplicationTerms {
public static LoanApplicationTerms assembleFrom(final ApplicationCurrency applicationCurrency, final Integer loanTermFrequency,
final PeriodFrequencyType loanTermPeriodFrequencyType, final LocalDate expectedDisbursementDate,
final LocalDate repaymentsStartingFromDate, final LocalDate calculatedRepaymentsStartingFromDate,
final Money inArrearsTolerance, final LoanProductRelatedDetail loanProductRelatedDetail, final boolean multiDisburseLoan,
final BigDecimal emiAmount, final List<DisbursementData> disbursementDatas, final BigDecimal maxOutstandingBalance,
final List<LoanTermVariationsData> emiAmountVariations) {
final Money inArrearsTolerance, final LoanProductRelatedDetail loanProductRelatedDetail,
final boolean multiDisburseLoan,final BigDecimal emiAmount,final List<DisbursementData> disbursementDatas,
final BigDecimal maxOutstandingBalance,final List<LoanTermVariationsData> emiAmountVariations, final LocalDate interestChargedFromDate) {
final Integer numberOfRepayments = loanProductRelatedDetail.getNumberOfRepayments();
final Integer repaymentEvery = loanProductRelatedDetail.getRepayEvery();
@@ -143,10 +143,9 @@ public final class LoanApplicationTerms {
final Money principalMoney = loanProductRelatedDetail.getPrincipal();
//
final Integer graceOnPrincipalPayment = 0;
final Integer graceOnInterestPayment = 0;
final Integer graceOnInterestCharged = 0;
final LocalDate interestChargedFromDate = null;
final Integer graceOnPrincipalPayment = loanProductRelatedDetail.graceOnPrincipalPayment() ;
final Integer graceOnInterestPayment = loanProductRelatedDetail.graceOnInterestPayment() ;
final Integer graceOnInterestCharged = loanProductRelatedDetail.graceOnInterestCharged();
return new LoanApplicationTerms(applicationCurrency, loanTermFrequency, loanTermPeriodFrequencyType, numberOfRepayments,
repaymentEvery, repaymentPeriodFrequencyType, amortizationMethod, interestMethod, interestRatePerPeriod,
@@ -163,6 +163,18 @@ public class LoanProductRelatedDetail implements LoanProductMinimumRepaymentSche
public void setPrincipal(BigDecimal principal) {
this.principal = principal;
}
public Integer graceOnInterestCharged() {
return this.graceOnInterestCharged;
}
public Integer graceOnInterestPayment() {
return this.graceOnInterestPayment;
}
public Integer graceOnPrincipalPayment() {
return this.graceOnPrincipalPayment;
}
public Money getInArrearsTolerance() {
return Money.of(this.currency, this.inArrearsTolerance);