@@ -77,7 +77,7 @@ public class RepaymentPeriod {
7777 private Memo <Money > outstandingBalanceCalculation ;
7878 @ Getter
7979 @ Setter
80- private boolean isInterestMoved = false ;
80+ private boolean isInterestMovedUpward = false ;
8181
8282 @ Setter
8383 private Money totalDisbursedAmount ;
@@ -99,7 +99,7 @@ public class RepaymentPeriod {
9999 private Money creditedInterestMovedDueReAge ;
100100 @ Setter
101101 @ Getter
102- private boolean noUnrecognisedInterest ;
102+ private boolean isInterestMovedDownward ;
103103 @ Setter
104104 @ Getter
105105 private boolean reAged ;
@@ -111,7 +111,7 @@ public class RepaymentPeriod {
111111
112112 protected RepaymentPeriod (RepaymentPeriod previous , LocalDate fromDate , LocalDate dueDate , List <InterestPeriod > interestPeriods ,
113113 Money emi , Money originalEmi , Money paidPrincipal , Money paidInterest , Money futureUnrecognizedInterest , MathContext mc ,
114- ILoanConfigurationDetails loanProductRelatedDetail , boolean noUnrecognisedInterest , boolean reAged ,
114+ ILoanConfigurationDetails loanProductRelatedDetail , boolean isInterestMovedDownward , boolean reAged ,
115115 boolean reAgedEarlyRepaymentHolder , Money fixedInterest ) {
116116 this .previous = previous ;
117117 this .fromDate = fromDate ;
@@ -124,7 +124,7 @@ protected RepaymentPeriod(RepaymentPeriod previous, LocalDate fromDate, LocalDat
124124 this .futureUnrecognizedInterest = futureUnrecognizedInterest ;
125125 this .mc = mc ;
126126 this .loanProductRelatedDetail = loanProductRelatedDetail ;
127- this .noUnrecognisedInterest = noUnrecognisedInterest ;
127+ this .isInterestMovedDownward = isInterestMovedDownward ;
128128 this .reAged = reAged ;
129129 this .reAgedEarlyRepaymentHolder = reAgedEarlyRepaymentHolder ;
130130 this .fixedInterest = fixedInterest ;
@@ -151,13 +151,13 @@ public static RepaymentPeriod copy(RepaymentPeriod previous, RepaymentPeriod rep
151151 final RepaymentPeriod newRepaymentPeriod = new RepaymentPeriod (previous , repaymentPeriod .getFromDate (),
152152 repaymentPeriod .getDueDate (), new ArrayList <>(), repaymentPeriod .getEmi (), repaymentPeriod .getOriginalEmi (),
153153 repaymentPeriod .getPaidPrincipal (), repaymentPeriod .getPaidInterest (), repaymentPeriod .getFutureUnrecognizedInterest (), mc ,
154- repaymentPeriod .getLoanProductRelatedDetail (), repaymentPeriod .isNoUnrecognisedInterest (), repaymentPeriod .isReAged (),
154+ repaymentPeriod .getLoanProductRelatedDetail (), repaymentPeriod .isInterestMovedDownward (), repaymentPeriod .isReAged (),
155155 repaymentPeriod .isReAgedEarlyRepaymentHolder (), repaymentPeriod .getFixedInterest ());
156156 newRepaymentPeriod .setCreditedPrincipalMovedDueReAge (repaymentPeriod .getCreditedPrincipalMovedDueReAge ());
157157 newRepaymentPeriod .setCreditedInterestMovedDueReAge (repaymentPeriod .getCreditedInterestMovedDueReAge ());
158158 newRepaymentPeriod .setTotalDisbursedAmount (repaymentPeriod .getTotalDisbursedAmount ());
159159 newRepaymentPeriod .setTotalCapitalizedIncomeAmount (repaymentPeriod .getTotalCapitalizedIncomeAmount ());
160- newRepaymentPeriod .setInterestMoved (repaymentPeriod .isInterestMoved ());
160+ newRepaymentPeriod .setInterestMovedUpward (repaymentPeriod .isInterestMovedUpward ());
161161 newRepaymentPeriod .setCurrency (repaymentPeriod .getCurrency ());
162162 // There is always at least 1 interest period, by default with same from-due date as repayment period
163163 for (InterestPeriod interestPeriod : repaymentPeriod .getInterestPeriods ()) {
@@ -170,13 +170,13 @@ public static RepaymentPeriod copyWithoutPaidAmounts(RepaymentPeriod previous, R
170170 final Money zero = Money .zero (repaymentPeriod .getCurrency (), mc );
171171 final RepaymentPeriod newRepaymentPeriod = new RepaymentPeriod (previous , repaymentPeriod .getFromDate (),
172172 repaymentPeriod .getDueDate (), new ArrayList <>(), repaymentPeriod .getEmi (), repaymentPeriod .getOriginalEmi (), zero , zero ,
173- zero , mc , repaymentPeriod .getLoanProductRelatedDetail (), repaymentPeriod .isNoUnrecognisedInterest (),
173+ zero , mc , repaymentPeriod .getLoanProductRelatedDetail (), repaymentPeriod .isInterestMovedDownward (),
174174 repaymentPeriod .isReAged (), repaymentPeriod .isReAgedEarlyRepaymentHolder (), repaymentPeriod .getFixedInterest ());
175175 newRepaymentPeriod .setCreditedPrincipalMovedDueReAge (repaymentPeriod .getCreditedPrincipalMovedDueReAge ());
176176 newRepaymentPeriod .setCreditedInterestMovedDueReAge (repaymentPeriod .getCreditedInterestMovedDueReAge ());
177177 newRepaymentPeriod .setTotalDisbursedAmount (repaymentPeriod .getTotalDisbursedAmount ());
178178 newRepaymentPeriod .setTotalCapitalizedIncomeAmount (repaymentPeriod .getTotalCapitalizedIncomeAmount ());
179- newRepaymentPeriod .setInterestMoved (repaymentPeriod .isInterestMoved ());
179+ newRepaymentPeriod .setInterestMovedUpward (repaymentPeriod .isInterestMovedUpward ());
180180 newRepaymentPeriod .setCurrency (repaymentPeriod .getCurrency ());
181181 // There is always at least 1 interest period, by default with same from-due date as repayment period
182182 for (InterestPeriod interestPeriod : repaymentPeriod .getInterestPeriods ()) {
@@ -218,7 +218,7 @@ private BigDecimal calculateRateFactorPlus1() {
218218 public Money getCalculatedDueInterest () {
219219 if (calculatedDueInterestCalculation == null ) {
220220 calculatedDueInterestCalculation = Memo .of (this ::calculateCalculatedDueInterest , () -> new Object [] { previous , interestPeriods ,
221- futureUnrecognizedInterest , isInterestMoved , totalDisbursedAmount , fixedInterest , reAged });
221+ futureUnrecognizedInterest , isInterestMovedUpward , totalDisbursedAmount , fixedInterest , reAged });
222222 }
223223 return calculatedDueInterestCalculation .get ();
224224 }
@@ -242,7 +242,7 @@ public Money calculateFixedInterestTillDate() {
242242
243243 public Money calculateCalculatedDueInterest () {
244244 Money calculatedDueInterest = getZero ();
245- if (!isInterestMoved ()) {
245+ if (!isInterestMovedUpward () && ! isInterestMovedDownward ()) {
246246 calculatedDueInterest = Money .of (getEmi ().getCurrencyData (),
247247 getInterestPeriods ().stream ().map (InterestPeriod ::getCalculatedDueInterest ).reduce (BigDecimal .ZERO , BigDecimal ::add ),
248248 mc );
@@ -367,7 +367,7 @@ public boolean isFullyPaid() {
367367 * @return
368368 */
369369 public Money getUnrecognizedInterest () {
370- return noUnrecognisedInterest ? getZero () : getCalculatedDueInterest ().minus (getDueInterest (), getMc ());
370+ return getCalculatedDueInterest ().minus (getDueInterest (), getMc ());
371371 }
372372
373373 public Money getCreditedAmounts () {
0 commit comments