You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ra...@apache.org on 2016/05/10 12:27:32 UTC
[2/5] incubator-fineract git commit: FINERACT-108 : disbursement
change with tranche loan
FINERACT-108 : disbursement change with tranche loan
Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/e58e591c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/e58e591c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/e58e591c
Branch: refs/heads/develop
Commit: e58e591c8912b748aaae3154b3d43f476b5eec83
Parents: f3f6f4b
Author: pramod <pr...@confluxtechnologies.com>
Authored: Tue May 10 16:58:09 2016 +0530
Committer: pramod <pr...@confluxtechnologies.com>
Committed: Tue May 10 16:58:46 2016 +0530
----------------------------------------------------------------------
.../fineract/portfolio/loanaccount/domain/Loan.java | 8 +++++---
.../loanaccount/service/LoanReadPlatformServiceImpl.java | 10 ++++++++--
2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/e58e591c/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 85725d2..dae03dd 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
@@ -1683,7 +1683,7 @@ public class Loan extends AbstractPersistable<Long> {
public void updateDisbursementDetails(final JsonCommand jsonCommand, final Map<String, Object> actualChanges) {
List<Long> disbursementList = fetchDisbursementIds();
- List<Long> loanChargeIds = fetchLoanChargeIds();
+ List<Long> loanChargeIds = fetchLoanTrancheChargeIds();
int chargeIdLength = loanChargeIds.size();
String chargeIds = null;
// From modify application page, if user removes all charges, we should
@@ -1807,10 +1807,12 @@ public class Loan extends AbstractPersistable<Long> {
}
}
- private List<Long> fetchLoanChargeIds() {
+ private List<Long> fetchLoanTrancheChargeIds() {
List<Long> list = new ArrayList<>();
for (LoanCharge charge : this.charges) {
- list.add(charge.getId());
+ if (charge.isTrancheDisbursementCharge() && charge.isActive()) {
+ list.add(charge.getId());
+ }
}
return list;
}
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/e58e591c/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
index ba0ee0a..d0712ce 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
@@ -1027,6 +1027,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
final MonetaryCurrency monCurrency = new MonetaryCurrency(this.currency.code(), this.currency.decimalPlaces(),
this.currency.currencyInMultiplesOf());
BigDecimal totalPrincipalDisbursed = BigDecimal.ZERO;
+ BigDecimal disbursementChargeAmount = this.totalFeeChargesDueAtDisbursement;
if (disbursementData == null || disbursementData.isEmpty()) {
periods.add(disbursementPeriod);
totalPrincipalDisbursed = Money.of(monCurrency, this.disbursement.amount()).getAmount();
@@ -1034,6 +1035,11 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
if (!this.disbursement.isDisbursed()) {
excludePastUndisbursed = false;
}
+ for(DisbursementData disbursementData : disbursementData){
+ if(disbursementData.getChargeAmount() != null){
+ disbursementChargeAmount = disbursementChargeAmount.subtract(disbursementData.getChargeAmount());
+ }
+ }
this.outstandingLoanPrincipalBalance = BigDecimal.ZERO;
}
@@ -1072,11 +1078,11 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
principal = principal.add(data.amount());
if (data.getChargeAmount() == null) {
final LoanSchedulePeriodData periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(
- data.disbursementDate(), data.amount(), BigDecimal.ZERO, data.isDisbursed());
+ data.disbursementDate(), data.amount(), disbursementChargeAmount, data.isDisbursed());
periods.add(periodData);
} else {
final LoanSchedulePeriodData periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(
- data.disbursementDate(), data.amount(), data.getChargeAmount(), data.isDisbursed());
+ data.disbursementDate(), data.amount(), disbursementChargeAmount.add(data.getChargeAmount()), data.isDisbursed());
periods.add(periodData);
}
this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.amount());