Skip to content

Commit 77c1f33

Browse files
somasorosdpcadamsaghy
authored andcommitted
FINERACT-2354: [BE] re-aging preview page outcomes with incorrect calculation for diff scenarios with interest bearing loans
1 parent 85cc3d7 commit 77c1f33

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/request/ReAgePreviewRequest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,8 @@ public class ReAgePreviewRequest implements Serializable {
7878
@Locale
7979
private String locale;
8080

81+
@QueryParam("reAgeInterestHandling")
82+
@Parameter(description = "The interest handling type. Applied only for progressive interest-bearing loans. DEFAULT if not provided.")
83+
private String reAgeInterestHandling;
84+
8185
}

fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/reaging/LoanReAgingService.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.List;
2929
import java.util.Locale;
3030
import java.util.Map;
31+
import java.util.Optional;
3132
import java.util.stream.Collectors;
3233
import lombok.RequiredArgsConstructor;
3334
import org.apache.fineract.infrastructure.codes.domain.CodeValue;
@@ -307,14 +308,14 @@ private LoanTransaction createReAgeTransactionFromPreviewRequest(final Loan loan
307308
private LoanReAgeParameter createReAgeParameterFromPreviewRequest(final LoanTransaction reAgeTransaction,
308309
final ReAgePreviewRequest reAgePreviewRequest) {
309310
final PeriodFrequencyType periodFrequencyType = PeriodFrequencyType.valueOf(reAgePreviewRequest.getFrequencyType());
310-
final Locale locale = reAgePreviewRequest.getLocale() != null ? Locale.forLanguageTag(reAgePreviewRequest.getLocale())
311-
: Locale.getDefault();
311+
final Locale locale = Optional.ofNullable(reAgePreviewRequest.getLocale()).map(Locale::forLanguageTag).orElse(Locale.getDefault());
312312
final LocalDate startDate = JsonParserHelper.convertFrom(reAgePreviewRequest.getStartDate(), LoanReAgingApiConstants.startDate,
313313
reAgePreviewRequest.getDateFormat(), locale);
314314
final Integer numberOfInstallments = reAgePreviewRequest.getNumberOfInstallments();
315315
final Integer periodFrequencyNumber = reAgePreviewRequest.getFrequencyNumber();
316316

317-
final LoanReAgeInterestHandlingType reAgeInterestHandlingType = LoanReAgeInterestHandlingType.DEFAULT;
317+
final LoanReAgeInterestHandlingType reAgeInterestHandlingType = Optional.ofNullable(reAgePreviewRequest.getReAgeInterestHandling())
318+
.map(LoanReAgeInterestHandlingType::valueOf).orElse(LoanReAgeInterestHandlingType.DEFAULT);
318319

319320
return new LoanReAgeParameter(reAgeTransaction, periodFrequencyType, periodFrequencyNumber, startDate, numberOfInstallments,
320321
reAgeInterestHandlingType, null);

0 commit comments

Comments
 (0)