From 17ad0984c0a6ced557409ca08dfc90a281db0f09 Mon Sep 17 00:00:00 2001 From: Vishwas Babu AJ Date: Tue, 26 Mar 2013 01:24:41 +0530 Subject: [PATCH] updating fee_charges_charged and fee_charges_repaid to include charges due at disbursal --- .../portfolio/loanaccount/domain/Loan.java | 3 ++- .../loanaccount/domain/LoanSummary.java | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) 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 127cdf2ac..eba40151a 100644 --- 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 @@ -770,7 +770,8 @@ public class Loan extends AbstractPersistable { this.summaryArrearsAging = null; } else { final Money principal = this.loanRepaymentScheduleDetail.getPrincipal(); - this.summary.updateSummary(loanCurrency(), principal, this.repaymentScheduleInstallments, this.loanSummaryWrapper); + this.summary.updateSummary(loanCurrency(), principal, this.repaymentScheduleInstallments, this.loanSummaryWrapper, + isDisbursed()); if (this.summaryArrearsAging == null) { this.summaryArrearsAging = new LoanSummaryArrearsAging(this); } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanSummary.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanSummary.java index 9d2499376..2c8b2bb3c 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanSummary.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanSummary.java @@ -130,7 +130,7 @@ public final class LoanSummary { public boolean isRepaidInFull(final MonetaryCurrency currency) { return getTotalOutstanding(currency).isZero(); } - + public BigDecimal getTotalInterestCharged() { return this.totalInterestCharged; } @@ -169,7 +169,8 @@ public final class LoanSummary { } public void updateSummary(final MonetaryCurrency currency, final Money principal, - final List repaymentScheduleInstallments, final LoanSummaryWrapper summaryWrapper) { + final List repaymentScheduleInstallments, final LoanSummaryWrapper summaryWrapper, + final Boolean disbursed) { this.totalPrincipalDisbursed = principal.getAmount(); this.totalPrincipalRepaid = summaryWrapper.calculateTotalPrincipalRepaid(repaymentScheduleInstallments, currency).getAmount(); @@ -189,9 +190,16 @@ public final class LoanSummary { .minus(this.totalInterestWrittenOff).getAmount(); } - final Money totalFeeChargesCharged = summaryWrapper.calculateTotalFeeChargesCharged(repaymentScheduleInstallments, currency); + final Money totalFeeChargesCharged = summaryWrapper.calculateTotalFeeChargesCharged(repaymentScheduleInstallments, currency).plus( + this.totalFeeChargesDueAtDisbursement); this.totalFeeChargesCharged = totalFeeChargesCharged.getAmount(); - this.totalFeeChargesRepaid = summaryWrapper.calculateTotalFeeChargesRepaid(repaymentScheduleInstallments, currency).getAmount(); + + Money totalFeeChargesRepaid = summaryWrapper.calculateTotalFeeChargesRepaid(repaymentScheduleInstallments, currency); + if (disbursed) { + totalFeeChargesRepaid = totalFeeChargesRepaid.plus(this.totalFeeChargesDueAtDisbursement); + } + this.totalFeeChargesRepaid = totalFeeChargesRepaid.getAmount(); + this.totalFeeChargesWaived = summaryWrapper.calculateTotalFeeChargesWaived(repaymentScheduleInstallments, currency).getAmount(); this.totalFeeChargesWrittenOff = summaryWrapper.calculateTotalFeeChargesWrittenOff(repaymentScheduleInstallments, currency) .getAmount();