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/06/17 06:16:55 UTC
[1/3] incubator-fineract git commit: FINERACT-174
Repository: incubator-fineract
Updated Branches:
refs/heads/develop 7fe50160c -> a89a43a3f
FINERACT-174
Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/94ef2b06
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/94ef2b06
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/94ef2b06
Branch: refs/heads/develop
Commit: 94ef2b0684bbb03fc5d4f7afa3f1cc0fedcfb86d
Parents: 7fe5016
Author: Nazeer Hussain Shaik <na...@confluxtechnologies.com>
Authored: Thu Jun 16 17:17:32 2016 +0530
Committer: Nazeer Hussain Shaik <na...@confluxtechnologies.com>
Committed: Thu Jun 16 17:17:32 2016 +0530
----------------------------------------------------------------------
.../ProductToGLAccountMappingHelper.java | 23 ++++++++++++++++++++
.../SavingsProductToGLAccountMappingHelper.java | 10 +++++++--
2 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/94ef2b06/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java
index 7e2ee41..b6b93f6 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java
@@ -103,6 +103,29 @@ public class ProductToGLAccountMappingHelper {
}
}
+ public void createOrmergeProductToAccountMappingChanges(final JsonElement element, final String paramName, final Long productId,
+ final int accountTypeId, final Map<String, Object> changes,
+ final GLAccountType expectedAccountType, final PortfolioProductType portfolioProductType) {
+ final Long accountId = this.fromApiJsonHelper.extractLongNamed(paramName, element);
+
+ // get the existing product
+ if (accountId != null) {
+ final ProductToGLAccountMapping accountMapping = this.accountMappingRepository.findCoreProductToFinAccountMapping(productId,
+ portfolioProductType.getValue(), accountTypeId);
+ if(accountMapping == null) {
+ final GLAccount glAccount = getAccountByIdAndType(paramName, expectedAccountType, accountId);
+ changes.put(paramName, accountId);
+ ProductToGLAccountMapping newAccountMapping = new ProductToGLAccountMapping(glAccount, productId,
+ portfolioProductType.getValue(), accountTypeId) ;
+ this.accountMappingRepository.save(newAccountMapping);
+ }else if (accountMapping.getGlAccount().getId() != accountId) {
+ final GLAccount glAccount = getAccountByIdAndType(paramName, expectedAccountType, accountId);
+ changes.put(paramName, accountId);
+ accountMapping.setGlAccount(glAccount);
+ this.accountMappingRepository.save(accountMapping);
+ }
+ }
+ }
/**
* Saves the payment type to Fund source mappings for a particular
* product/product type (also populates the changes array if passed in)
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/94ef2b06/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
index 529fb44..f888e60 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
@@ -98,6 +98,12 @@ public class SavingsProductToGLAccountMappingHelper extends ProductToGLAccountMa
GLAccountType.LIABILITY, PortfolioProductType.SAVING);
}
+ public void createOrmergeSavingsToLiabilityAccountMappingChanges(final JsonElement element, final String paramName, final Long productId,
+ final int accountTypeId, final Map<String, Object> changes) {
+ createOrmergeProductToAccountMappingChanges(element, paramName, productId, accountTypeId, changes,
+ GLAccountType.LIABILITY, PortfolioProductType.SAVING);
+ }
+
/*** Abstractions for payments channel related to savings products ***/
public void savePaymentChannelToFundSourceMappings(final JsonCommand command, final JsonElement element, final Long productId,
@@ -222,9 +228,9 @@ public class SavingsProductToGLAccountMappingHelper extends ProductToGLAccountMa
mergeSavingsToLiabilityAccountMappingChanges(element, SAVINGS_PRODUCT_ACCOUNTING_PARAMS.TRANSFERS_SUSPENSE.getValue(),
savingsProductId, CASH_ACCOUNTS_FOR_SAVINGS.TRANSFERS_SUSPENSE.getValue(),
CASH_ACCOUNTS_FOR_SAVINGS.TRANSFERS_SUSPENSE.toString(), changes);
- mergeSavingsToLiabilityAccountMappingChanges(element, SAVINGS_PRODUCT_ACCOUNTING_PARAMS.ESCHEAT_LIABILITY.getValue(),
+ createOrmergeSavingsToLiabilityAccountMappingChanges(element, SAVINGS_PRODUCT_ACCOUNTING_PARAMS.ESCHEAT_LIABILITY.getValue(),
savingsProductId, CASH_ACCOUNTS_FOR_SAVINGS.ESCHEAT_LIABILITY.getValue(),
- CASH_ACCOUNTS_FOR_SAVINGS.ESCHEAT_LIABILITY.toString(), changes);
+ changes);
break;
case ACCRUAL_PERIODIC:
break;
[3/3] incubator-fineract git commit: Merge branch 'PR145' into develop
Posted by ra...@apache.org.
Merge branch 'PR145' 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/a89a43a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/a89a43a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/a89a43a3
Branch: refs/heads/develop
Commit: a89a43a3f79bdb4d59ed3936a9082c6734b82bcd
Parents: 94ef2b0 6576786
Author: Adi Narayana Raju <ad...@confluxtechnologies.com>
Authored: Fri Jun 17 10:35:44 2016 +0530
Committer: Adi Narayana Raju <ad...@confluxtechnologies.com>
Committed: Fri Jun 17 10:35:44 2016 +0530
----------------------------------------------------------------------
.../portfolio/loanaccount/domain/Loan.java | 27 ++++++++++++--------
1 file changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
[2/3] incubator-fineract git commit: fineract-170,171
Posted by ra...@apache.org.
fineract-170,171
Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/65767869
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/65767869
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/65767869
Branch: refs/heads/develop
Commit: 65767869b054c0c4d6ba3aad645359791bd69e20
Parents: 7fe5016
Author: keshav10 <ke...@confluxtechnologies.com>
Authored: Thu Jun 16 18:12:51 2016 +0530
Committer: keshav10 <ke...@confluxtechnologies.com>
Committed: Thu Jun 16 18:34:48 2016 +0530
----------------------------------------------------------------------
.../portfolio/loanaccount/domain/Loan.java | 27 ++++++++++++--------
1 file changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/65767869/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 c5e494b..42427c4 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
@@ -40,7 +40,6 @@ import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
@@ -6018,15 +6017,13 @@ public class Loan extends AbstractPersistable<Long> {
final MonetaryCurrency currency = getCurrency();
Money interest = Money.zero(currency);
Money fee = Money.zero(currency);
- Money penalty = Money.zero(currency);
- boolean isArrearsPresent = false;
+ Money penalty = Money.zero(currency);
for (final LoanRepaymentScheduleInstallment installment : this.repaymentScheduleInstallments) {
if (installment.isNotFullyPaidOff()) {
- if (!isArrearsPresent || !installment.getDueDate().isAfter(paymentDate)) {
+ if (!installment.getDueDate().isAfter(paymentDate)) {
interest = interest.plus(installment.getInterestOutstanding(currency));
fee = fee.plus(installment.getFeeChargesOutstanding(currency));
- penalty = penalty.plus(installment.getPenaltyChargesOutstanding(currency));
- isArrearsPresent = true;
+ penalty = penalty.plus(installment.getPenaltyChargesOutstanding(currency));
} else if (installment.getFromDate().isBefore(paymentDate)) {
Money[] balancesForCurrentPeroid = fetchInterestFeeAndPenalty(paymentDate, currency, installment);
interest = interest.plus(balancesForCurrentPeroid[0]);
@@ -6071,6 +6068,7 @@ public class Loan extends AbstractPersistable<Long> {
public Money[] retriveIncomeForOverlappingPeriod(final LocalDate paymentDate) {
Money[] balances = new Money[3];
final MonetaryCurrency currency = getCurrency();
+ balances[0] = balances[1] = balances[2] = Money.zero(currency);
for (final LoanRepaymentScheduleInstallment installment : this.repaymentScheduleInstallments) {
if (installment.getDueDate().isEqual(paymentDate)){
Money interest = installment.getInterestOutstanding(currency);
@@ -6202,13 +6200,22 @@ public class Loan extends AbstractPersistable<Long> {
Money [] balances = retriveIncomeForOverlappingPeriod(transactionDate);
for (final LoanRepaymentScheduleInstallment installment : this.repaymentScheduleInstallments) {
if (!installment.getDueDate().isBefore(transactionDate)) {
- totalPrincipal = totalPrincipal.plus(installment.getPrincipalOutstanding(currency));
- newInstallments.remove(installment);
- }
+ if (!installment.isPartlyPaid() && !installment.isObligationsMet()) {
+ totalPrincipal = totalPrincipal.plus(installment.getPrincipalOutstanding(currency));
+ newInstallments.remove(installment);
+ }
+ }
}
+
+ LocalDate installmentStartDate = getDisbursementDate();
+
+ if (newInstallments.size() > 0) {
+ installmentStartDate = newInstallments.get((newInstallments.size() - 1)).getDueDate();
+ }
+
LoanRepaymentScheduleInstallment newInstallment = new LoanRepaymentScheduleInstallment(null, newInstallments.size() + 1,
- newInstallments.get((newInstallments.size() - 1)).getDueDate(), transactionDate, totalPrincipal.getAmount(),
+ installmentStartDate, transactionDate, totalPrincipal.getAmount(),
balances[0].getAmount(), balances[1].getAmount(), balances[2].getAmount(), true, null);
newInstallment.updateInstallmentNumber(newInstallments.size() + 1);
newInstallments.add(newInstallment);