Skip to content

Commit 6ab05fb

Browse files
committed
Use enum directly for over-applied calculation type instead of string comparison
- Restore enum import: LoanOverAppliedCalculationType - Replace string comparison with proper enum conversion using .valueOf() - Use .toUpperCase() (ASCII, no Locale needed) to map 'percentage' → 'PERCENTAGE' - Call .isPercentage() on enum for type-safe, idiomatic domain model usage - Maintains compile-time safety and respects Fineract design patterns
1 parent 0d5b7c3 commit 6ab05fb

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanDisbursementValidator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.apache.fineract.infrastructure.core.service.MathUtil;
2626
import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
2727
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
28+
import org.apache.fineract.portfolio.loanaccount.domain.LoanOverAppliedCalculationType;
2829
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
2930
import org.apache.fineract.portfolio.loanaccount.exception.InvalidLoanStateTransitionException;
3031
import org.apache.fineract.portfolio.loanaccount.exception.LoanDisbursalException;
@@ -70,8 +71,10 @@ private BigDecimal calculateMaxAllowedDisbursement(final Loan loan) {
7071

7172
if (loanProduct.getOverAppliedCalculationType() != null && loanProduct.getOverAppliedNumber() != null) {
7273
final BigDecimal overAppliedMax = BigDecimal.valueOf(loanProduct.getOverAppliedNumber());
74+
final LoanOverAppliedCalculationType calculationType = LoanOverAppliedCalculationType
75+
.valueOf(loanProduct.getOverAppliedCalculationType().toUpperCase());
7376

74-
if ("percentage".equalsIgnoreCase(loanProduct.getOverAppliedCalculationType())) {
77+
if (calculationType.isPercentage()) {
7578
final BigDecimal extra = MathUtil.percentageOf(approvedPrincipal, overAppliedMax, MoneyHelper.getMathContext());
7679
maxAllowed = approvedPrincipal.add(extra);
7780
} else {

0 commit comments

Comments
 (0)