Repository: incubator-fineract Updated Branches: refs/heads/develop 66eb337e3 -> 851b22d16
[MIFOSX-2656] - Accrual transaction should be added only on the first tranche disbursal Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/2faea6d2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/2faea6d2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/2faea6d2 Branch: refs/heads/develop Commit: 2faea6d27fc7714293b7685721c1b44a75b9028a Parents: 7ae9b67 Author: Adi Narayana Raju <[email protected]> Authored: Tue May 24 14:47:28 2016 +0530 Committer: Adi Narayana Raju <[email protected]> Committed: Tue May 24 14:47:28 2016 +0530 ---------------------------------------------------------------------- .../portfolio/loanaccount/domain/Loan.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/2faea6d2/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java ---------------------------------------------------------------------- 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 dae03dd..04a497a 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 @@ -2286,7 +2286,8 @@ public class Loan extends AbstractPersistable<Long> { * selected **/ - if (isNoneOrCashOrUpfrontAccrualAccountingEnabledOnLoanProduct()) { + if (isNoneOrCashOrUpfrontAccrualAccountingEnabledOnLoanProduct() + && ((isMultiDisburmentLoan() && getDisbursedLoanDisbursementDetails().size() == 1) || !isMultiDisburmentLoan())) { final LoanTransaction interestAppliedTransaction = LoanTransaction.accrueInterest(getOffice(), this, interestApplied, actualDisbursementDate, createdDate, currentUser); this.loanTransactions.add(interestAppliedTransaction); @@ -2296,7 +2297,19 @@ public class Loan extends AbstractPersistable<Long> { } - public void regenerateScheduleOnDisbursement(final ScheduleGeneratorDTO scheduleGeneratorDTO, final boolean recalculateSchedule, + private List<LoanDisbursementDetails> getDisbursedLoanDisbursementDetails() { + List<LoanDisbursementDetails> ret = new ArrayList<>(); + if(this.disbursementDetails != null && this.disbursementDetails.size() > 0){ + for (LoanDisbursementDetails disbursementDetail : this.disbursementDetails) { + if (disbursementDetail.actualDisbursementDate() != null) { + ret.add(disbursementDetail); + } + } + } + return ret; + } + + public void regenerateScheduleOnDisbursement(final ScheduleGeneratorDTO scheduleGeneratorDTO, final boolean recalculateSchedule, final LocalDate actualDisbursementDate, BigDecimal emiAmount, final AppUser currentUser, LocalDate nextPossibleRepaymentDate, Date rescheduledRepaymentDate) { boolean isEmiAmountChanged = false;
