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 <[email protected]>
Authored: Thu Jun 16 17:17:32 2016 +0530
Committer: Nazeer Hussain Shaik <[email protected]>
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;

Reply via email to