Skip to content

Commit a68d287

Browse files
committed
FINERACT-2421: Fix interest period balance correction amount
1 parent 3d7d8c8 commit a68d287

File tree

1 file changed

+7
-1
lines changed
  • fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/calc/data

1 file changed

+7
-1
lines changed

fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/calc/data/InterestPeriod.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,9 @@ public int compareTo(@NotNull InterestPeriod o) {
111111
}
112112

113113
public void addBalanceCorrectionAmount(final Money additionalBalanceCorrectionAmount) {
114-
if (this.getBalanceCorrectionAmount().isGreaterThanZero() && additionalBalanceCorrectionAmount.isLessThanZero()) {
114+
//Double deduct from last interest period to clear overdue amount
115+
if (this.getBalanceCorrectionAmount().isGreaterThanZero() && additionalBalanceCorrectionAmount.isLessThanZero()
116+
&& isLastInterestPeriod()) {
115117
this.balanceCorrectionAmount = MathUtil.plus(this.getBalanceCorrectionAmount(), additionalBalanceCorrectionAmount,
116118
additionalBalanceCorrectionAmount);
117119
} else {
@@ -203,6 +205,10 @@ public boolean isFirstInterestPeriod() {
203205
return this.equals(getRepaymentPeriod().getFirstInterestPeriod());
204206
}
205207

208+
private boolean isLastInterestPeriod() {
209+
return this.equals(getRepaymentPeriod().getLastInterestPeriod());
210+
}
211+
206212
private MonetaryCurrency getCurrency() {
207213
return getRepaymentPeriod().getCurrency();
208214
}

0 commit comments

Comments
 (0)