You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by na...@apache.org on 2017/05/16 07:24:24 UTC
[1/2] incubator-fineract git commit: bugs fixed 458,310,453,158,166
Repository: incubator-fineract
Updated Branches:
refs/heads/develop cf9af2ec3 -> d93885b55
bugs fixed 458,310,453,158,166
Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/d70618d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/d70618d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/d70618d7
Branch: refs/heads/develop
Commit: d70618d7d1af43cd0bef80ab03c757c0ceda59c7
Parents: a8ac555
Author: nazeer1100126 <na...@confluxtechnologies.com>
Authored: Mon May 15 20:59:18 2017 +0530
Committer: nazeer1100126 <na...@confluxtechnologies.com>
Committed: Mon May 15 20:59:18 2017 +0530
----------------------------------------------------------------------
...ntWritePlatformServiceJpaRepositoryImpl.java | 6 ++++-
.../domain/LoanInstallmentCharge.java | 5 ++--
...onWritePlatformServiceJpaRepositoryImpl.java | 2 +-
.../service/LoanReadPlatformServiceImpl.java | 27 ++++++++++++++++++--
...anWritePlatformServiceJpaRepositoryImpl.java | 4 ++-
.../LoanProductReadPlatformServiceImpl.java | 6 ++---
6 files changed, 39 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/d70618d7/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
index 2a131a0..2e109c4 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
@@ -365,7 +365,7 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP
{
final JsonElement clientNonPersonElement = this.fromApiJsonHelper.parse(command.jsonFragment(ClientApiConstants.clientNonPersonDetailsParamName));
- if(clientNonPersonElement != null)
+ if(clientNonPersonElement != null && !isEmpty(clientNonPersonElement))
{
final String incorpNumber = this.fromApiJsonHelper.extractStringNamed(ClientApiConstants.incorpNumberParamName, clientNonPersonElement);
final String remarks = this.fromApiJsonHelper.extractStringNamed(ClientApiConstants.remarksParamName, clientNonPersonElement);
@@ -391,6 +391,10 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP
this.clientNonPersonRepository.save(newClientNonPerson);
}
}
+
+ public boolean isEmpty(final JsonElement element){
+ return element.toString().trim().length()<4;
+ }
@Transactional
@Override
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/d70618d7/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java
index f0459a2..53168ef 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java
@@ -20,7 +20,6 @@ package org.apache.fineract.portfolio.loanaccount.domain;
import java.math.BigDecimal;
-import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
@@ -39,8 +38,8 @@ public class LoanInstallmentCharge extends AbstractPersistableCustom<Long> imple
@JoinColumn(name = "loan_charge_id", referencedColumnName = "id", nullable = false)
private LoanCharge loancharge;
- @ManyToOne(optional = false, cascade = CascadeType.ALL)
- @JoinColumn(name = "loan_schedule_id", referencedColumnName = "id", nullable = false)
+ @ManyToOne
+ @JoinColumn(name = "loan_schedule_id", nullable = false)
private LoanRepaymentScheduleInstallment installment;
@Column(name = "amount", scale = 6, precision = 19, nullable = false)
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/d70618d7/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
index 92660a0..8757e01 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
@@ -824,7 +824,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
final CalendarInstance calendarInstance = ciList.get(0);
final boolean isCalendarAssociatedWithEntity = this.calendarReadPlatformService.isCalendarAssociatedWithEntity(calendarInstance
.getEntityId(), calendarInstance.getCalendar().getId(), CalendarEntityType.LOANS.getValue().longValue());
- if (isCalendarAssociatedWithEntity) {
+ if (isCalendarAssociatedWithEntity && calendarId == null) {
this.calendarRepository.delete(calendarInstance.getCalendar());
}
if (calendarInstance.getCalendar().getId() != calendar.getId()) {
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/d70618d7/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 4bf7326..a5de687 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
@@ -60,6 +60,7 @@ import org.apache.fineract.portfolio.calendar.data.CalendarData;
import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
import org.apache.fineract.portfolio.calendar.service.CalendarReadPlatformService;
import org.apache.fineract.portfolio.charge.data.ChargeData;
+import org.apache.fineract.portfolio.charge.domain.ChargeCalculationType;
import org.apache.fineract.portfolio.charge.domain.ChargeTimeType;
import org.apache.fineract.portfolio.charge.service.ChargeReadPlatformService;
import org.apache.fineract.portfolio.client.data.ClientData;
@@ -90,6 +91,8 @@ import org.apache.fineract.portfolio.loanaccount.data.PaidInAdvanceData;
import org.apache.fineract.portfolio.loanaccount.data.RepaymentScheduleRelatedLoanData;
import org.apache.fineract.portfolio.loanaccount.data.ScheduleGeneratorDTO;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
+import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
+import org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleTransactionProcessorFactory;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepositoryWrapper;
@@ -416,14 +419,34 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
final Collection<PaymentTypeData> paymentOptions = this.paymentTypeReadPlatformService.retrieveAllPaymentTypes();
final BigDecimal outstandingLoanBalance = loanRepaymentScheduleInstallment.getPrincipalOutstanding(currency).getAmount();
final BigDecimal unrecognizedIncomePortion = null;
+ BigDecimal adjustedChargeAmount = adjustPrepayInstallmentCharge(loan, onDate);
return new LoanTransactionData(null, null, null, transactionType, null, currencyData, earliestUnpaidInstallmentDate,
- loanRepaymentScheduleInstallment.getTotalOutstanding(currency).getAmount(), loanRepaymentScheduleInstallment
+ loanRepaymentScheduleInstallment.getTotalOutstanding(currency).getAmount().subtract(adjustedChargeAmount), loanRepaymentScheduleInstallment
.getPrincipalOutstanding(currency).getAmount(), loanRepaymentScheduleInstallment.getInterestOutstanding(currency)
- .getAmount(), loanRepaymentScheduleInstallment.getFeeChargesOutstanding(currency).getAmount(),
+ .getAmount(), loanRepaymentScheduleInstallment.getFeeChargesOutstanding(currency).getAmount().subtract(adjustedChargeAmount),
loanRepaymentScheduleInstallment.getPenaltyChargesOutstanding(currency).getAmount(), null, unrecognizedIncomePortion,
paymentOptions, null, null, null, outstandingLoanBalance, false);
}
+ private BigDecimal adjustPrepayInstallmentCharge(Loan loan, final LocalDate onDate) {
+ BigDecimal chargeAmount = BigDecimal.ZERO;
+ for(LoanCharge loanCharge: loan.charges()){
+ if(loanCharge.isInstalmentFee() && loanCharge.getCharge().getChargeCalculation()==ChargeCalculationType.FLAT.getValue()){
+ for (LoanRepaymentScheduleInstallment installment : loan.getRepaymentScheduleInstallments()) {
+ if(onDate.isBefore(installment.getDueDate())){
+ LoanInstallmentCharge loanInstallmentCharge = loanCharge.getInstallmentLoanCharge(installment.getInstallmentNumber());
+ if(loanInstallmentCharge != null){
+ chargeAmount = chargeAmount.add(loanInstallmentCharge.getAmountOutstanding());
+ }
+
+ break;
+ }
+ }
+ }
+ }
+ return chargeAmount;
+ }
+
@Override
public LoanTransactionData retrieveWaiveInterestDetails(final Long loanId) {
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/d70618d7/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
index c0a6ae2..23270d5 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
@@ -279,7 +279,9 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
checkForProductMixRestrictions(loan);
LocalDate recalculateFrom = null;
- loan.setActualDisbursementDate(actualDisbursementDate.toDate());
+ if(!loan.isMultiDisburmentLoan()){
+ loan.setActualDisbursementDate(actualDisbursementDate.toDate());
+ }
ScheduleGeneratorDTO scheduleGeneratorDTO = this.loanUtilService.buildScheduleGeneratorDTO(loan, recalculateFrom);
// validate actual disbursement date against meeting date
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/d70618d7/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java
index 903503d..165cf71 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java
@@ -477,16 +477,16 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo
}
public String productMixSchema() {
- return "lp.id as id, lp.name as name FROM m_product_loan lp left join m_product_mix pm on pm.product_id=lp.id where lp.id not IN("
+ return "lp.id as id, lp.name as name, lp.allow_multiple_disbursals as multiDisburseLoan FROM m_product_loan lp left join m_product_mix pm on pm.product_id=lp.id where lp.id not IN("
+ "select lp.id from m_product_loan lp inner join m_product_mix pm on pm.product_id=lp.id)";
}
public String restrictedProductsSchema() {
- return "pm.restricted_product_id as id, rp.name as name from m_product_mix pm join m_product_loan rp on rp.id = pm.restricted_product_id ";
+ return "pm.restricted_product_id as id, rp.name as name, rp.allow_multiple_disbursals as multiDisburseLoan from m_product_mix pm join m_product_loan rp on rp.id = pm.restricted_product_id ";
}
public String derivedRestrictedProductsSchema() {
- return "pm.product_id as id, lp.name as name from m_product_mix pm join m_product_loan lp on lp.id=pm.product_id";
+ return "pm.product_id as id, lp.name as name, lp.allow_multiple_disbursals as multiDisburseLoan from m_product_mix pm join m_product_loan lp on lp.id=pm.product_id";
}
@Override
[2/2] incubator-fineract git commit: Merge branch 'PR353' into develop
Posted by na...@apache.org.
Merge branch 'PR353' into develop
Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/d93885b5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/d93885b5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/d93885b5
Branch: refs/heads/develop
Commit: d93885b55523ede15467ee1e179b58d2462e3129
Parents: cf9af2e d70618d
Author: Nazeer Hussain Shaik <na...@confluxtechnologies.com>
Authored: Tue May 16 12:53:47 2017 +0530
Committer: Nazeer Hussain Shaik <na...@confluxtechnologies.com>
Committed: Tue May 16 12:53:47 2017 +0530
----------------------------------------------------------------------
...ntWritePlatformServiceJpaRepositoryImpl.java | 6 ++++-
...onWritePlatformServiceJpaRepositoryImpl.java | 2 +-
.../service/LoanReadPlatformServiceImpl.java | 27 ++++++++++++++++++--
...anWritePlatformServiceJpaRepositoryImpl.java | 4 ++-
.../LoanProductReadPlatformServiceImpl.java | 6 ++---
5 files changed, 37 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/d93885b5/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/d93885b5/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java
----------------------------------------------------------------------