diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java index 20249b26f..0d8335e0c 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java @@ -905,7 +905,10 @@ public class Loan extends AbstractPersistable { Money unrecognizedIncome = amountWaived.zero(); Money chargeComponent = amountWaived; if (isPeriodicAccrualAccountingEnabledOnLoanProduct()) { - Money receivableCharge = accruedCharge.minus(loanCharge.getAmountPaid(getCurrency())); + Money receivableCharge = Money.zero(getCurrency()); + if(loanInstallmentNumber !=null){ + receivableCharge = accruedCharge.minus(loanCharge.getInstallmentLoanCharge(loanInstallmentNumber).getAmountPaid(getCurrency())); + }else{ receivableCharge = accruedCharge.minus(loanCharge.getAmountPaid(getCurrency()));} if (receivableCharge.isLessThanZero()) { receivableCharge = amountWaived.zero(); } @@ -921,7 +924,7 @@ public class Loan extends AbstractPersistable { feeChargesWaived = Money.zero(loanCurrency()); } - LocalDate transactionDate = getDisbursementDate(); + LocalDate transactionDate = DateUtils.getLocalDateOfTenant(); if (loanCharge.isSpecifiedDueDate()) { transactionDate = loanCharge.getDueLocalDate(); } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanInstallmentCharge.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanInstallmentCharge.java index 88fd223d1..40deee03c 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanInstallmentCharge.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanInstallmentCharge.java @@ -121,7 +121,7 @@ public class LoanInstallmentCharge extends AbstractPersistable { return Money.of(currency, this.amount); } - private Money getAmountPaid(final MonetaryCurrency currency) { + public Money getAmountPaid(final MonetaryCurrency currency) { return Money.of(currency, this.amountPaid); }