From 927944683390c19eb4320c68534de2c94df325bc Mon Sep 17 00:00:00 2001 From: Pramod Nuthakki Date: Fri, 18 Apr 2014 00:46:23 +0530 Subject: [PATCH] MIFOSX-1077- added installment charge check to aviod wrong calculation --- .../portfolio/loanaccount/domain/LoanCharge.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanCharge.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanCharge.java index a7d5c2887..966e4188a 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanCharge.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanCharge.java @@ -113,17 +113,17 @@ public class LoanCharge extends AbstractPersistable { @Column(name = "is_active", nullable = false) private boolean active = true; - + @OneToOne(mappedBy = "loancharge", cascade = CascadeType.ALL, optional = true, orphanRemoval = true, fetch = FetchType.LAZY) private LoanOverdueInstallmentCharge overdueInstallmentCharge; - public static LoanCharge createNewFromJson(final Loan loan, final Charge chargeDefinition, final JsonCommand command) { final LocalDate dueDate = command.localDateValueOfParameterNamed("dueDate"); - return createNewFromJson(loan, chargeDefinition, command,dueDate); + return createNewFromJson(loan, chargeDefinition, command, dueDate); } - public static LoanCharge createNewFromJson(final Loan loan, final Charge chargeDefinition, final JsonCommand command,final LocalDate dueDate) { + public static LoanCharge createNewFromJson(final Loan loan, final Charge chargeDefinition, final JsonCommand command, + final LocalDate dueDate) { final BigDecimal amount = command.bigDecimalValueOfParameterNamed("amount"); final ChargeTimeType chargeTime = null; @@ -457,8 +457,11 @@ public class LoanCharge extends AbstractPersistable { case PERCENT_OF_INTEREST: this.percentage = newValue; this.amountPercentageAppliedTo = amount; - BigDecimal loanCharge = this.loan.calculatePerInstallmentChargeAmount( - ChargeCalculationType.fromInt(this.chargeCalculation), this.percentage); + BigDecimal loanCharge = BigDecimal.ZERO; + if (isInstalmentFee()) { + loanCharge = this.loan.calculatePerInstallmentChargeAmount(ChargeCalculationType.fromInt(this.chargeCalculation), + this.percentage); + } if (loanCharge.compareTo(BigDecimal.ZERO) == 0) { loanCharge = percentageOf(this.amountPercentageAppliedTo); } @@ -833,7 +836,6 @@ public class LoanCharge extends AbstractPersistable { return totalChargeAmount; } - public void updateOverdueInstallmentCharge(LoanOverdueInstallmentCharge overdueInstallmentCharge) { this.overdueInstallmentCharge = overdueInstallmentCharge; }