From 8894269543a1aea893b32216952ea366c45ed205 Mon Sep 17 00:00:00 2001 From: venkatconflux Date: Thu, 23 Jun 2016 14:37:37 +0530 Subject: [PATCH] FINERACT-182 --- .../integrationtests/ClientLoanIntegrationTest.java | 12 ++++++------ .../fineract/portfolio/loanaccount/domain/Loan.java | 11 +++++++++-- .../portfolio/loanaccount/domain/LoanCharge.java | 4 ++++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java index 9a241a2dc..b2a737c75 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java @@ -1890,9 +1890,9 @@ public class ClientLoanIntegrationTest { loanCharges = this.loanTransactionHelper.getLoanCharges(loanID); validateCharge(flatInstallmentFee, loanCharges, "50", "100.00", "50.0", "50.0"); - this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", new JournalEntry(Float.valueOf("50.0"), + this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("50.0"), JournalEntry.TransactionType.CREDIT)); - this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 September 2011", + this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 November 2011", new JournalEntry(Float.valueOf("50.0"), JournalEntry.TransactionType.DEBIT)); System.out.println("----------Make repayment 2------------"); @@ -2079,9 +2079,9 @@ public class ClientLoanIntegrationTest { loanCharges = this.loanTransactionHelper.getLoanCharges(loanID); validateCharge(percentageInstallmentFee, loanCharges, "1", "61.19", "29.11", "29.70"); - this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", new JournalEntry(Float.valueOf("29.7"), + this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("29.7"), JournalEntry.TransactionType.CREDIT)); - this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 September 2011", + this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 November 2011", new JournalEntry(Float.valueOf("29.7"), JournalEntry.TransactionType.DEBIT)); System.out.println("----------Make repayment 2------------"); @@ -2280,9 +2280,9 @@ public class ClientLoanIntegrationTest { loanCharges = this.loanTransactionHelper.getLoanCharges(loanID); validateCharge(amountPlusInterestPercentageInstallmentFee, loanCharges, "1", "63.02", "31.51", "31.51"); - this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", new JournalEntry( + this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry( Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT)); - this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 September 2011", + this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 November 2011", new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.DEBIT)); System.out.println("----------Make repayment 2------------"); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java index e0428b0d8..f55111edb 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java @@ -972,9 +972,16 @@ public class Loan extends AbstractPersistable { } LocalDate transactionDate = getDisbursementDate(); - if (loanCharge.isSpecifiedDueDate()) { - transactionDate = loanCharge.getDueLocalDate(); + if (loanCharge.isDueDateCharge()) { + if (loanCharge.getDueLocalDate().isAfter(DateUtils.getLocalDateOfTenant())) { + transactionDate = DateUtils.getLocalDateOfTenant(); + } else { + transactionDate = loanCharge.getDueLocalDate(); + } + }else if(loanCharge.isInstalmentFee()){ + transactionDate = loanCharge.getInstallmentLoanCharge(loanInstallmentNumber).getRepaymentInstallment().getDueDate(); } + scheduleGeneratorDTO.setRecalculateFrom(transactionDate); updateSummaryWithTotalFeeChargesDueAtDisbursement(deriveSumTotalOfChargesDueAtDisbursement()); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java index ee2c38227..0c0bcbfc8 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java @@ -987,4 +987,8 @@ public class LoanCharge extends AbstractPersistable { public boolean isTrancheDisbursementCharge() { return ChargeTimeType.fromInt(this.chargeTime).equals(ChargeTimeType.TRANCHE_DISBURSEMENT); } + + public boolean isDueDateCharge() { + return this.dueDate != null; + } } \ No newline at end of file