Repository: fineract
Updated Branches:
  refs/heads/develop 35ec9d877 -> 677764511


439, 454, 473, 476 edit data table, bulk jlg,modify application


Project: http://git-wip-us.apache.org/repos/asf/fineract/repo
Commit: http://git-wip-us.apache.org/repos/asf/fineract/commit/3ddde495
Tree: http://git-wip-us.apache.org/repos/asf/fineract/tree/3ddde495
Diff: http://git-wip-us.apache.org/repos/asf/fineract/diff/3ddde495

Branch: refs/heads/develop
Commit: 3ddde49564c1d63cbb757337e143f7fa60e165a9
Parents: 20db9d4
Author: nazeer shaik <nazeer.sh...@confluxtechnologies.com>
Authored: Fri Jun 2 11:02:59 2017 +0530
Committer: nazeer shaik <nazeer.sh...@confluxtechnologies.com>
Committed: Fri Jun 2 11:02:59 2017 +0530

----------------------------------------------------------------------
 .../ReadWriteNonCoreDataServiceImpl.java        | 22 +++++++++++++++-----
 .../loanaccount/api/LoansApiResource.java       | 11 ++++++----
 2 files changed, 24 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/fineract/blob/3ddde495/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
index 6b91255..e5b7055 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
@@ -862,7 +862,7 @@ public class ReadWriteNonCoreDataServiceImpl implements 
ReadWriteNonCoreDataServ
             final String apptableName = 
this.fromJsonHelper.extractStringNamed("apptableName", element);
 
             validateDatatableName(datatableName);
-
+            int rowCount = getRowCount(datatableName);
             final List<ResultsetColumnHeaderData> columnHeaderData = 
this.genericDataService.fillResultsetColumnHeaders(datatableName);
             final Map<String, ResultsetColumnHeaderData> 
mapColumnNameDefinition = new HashMap<>();
             for (final ResultsetColumnHeaderData columnHeader : 
columnHeaderData) {
@@ -908,7 +908,10 @@ public class ReadWriteNonCoreDataServiceImpl implements 
ReadWriteNonCoreDataServ
             if (changeColumns == null && addColumns == null && dropColumns == 
null) { return; }
 
             if (dropColumns != null) {
-
+                if(rowCount>0){
+                       throw new 
GeneralPlatformDomainRuleException("error.msg.non.empty.datatable.column.cannot.be.deleted",
+                            "Non-empty datatable columns can not be deleted.");
+                }
                 StringBuilder sqlBuilder = new StringBuilder("ALTER TABLE `" + 
datatableName + "`");
                 final StringBuilder constrainBuilder = new StringBuilder();
                 final List<String> codeMappings = new ArrayList<>();
@@ -931,7 +934,12 @@ public class ReadWriteNonCoreDataServiceImpl implements 
ReadWriteNonCoreDataServ
                 final StringBuilder constrainBuilder = new StringBuilder();
                 final Map<String, Long> codeMappings = new HashMap<>();
                 for (final JsonElement column : addColumns) {
-                    parseDatatableColumnForAdd(column.getAsJsonObject(), 
sqlBuilder, datatableName.toLowerCase().replaceAll("\\s", "_"),
+                       JsonObject columnAsJson = column.getAsJsonObject();
+                       if(rowCount>0 && columnAsJson.has("mandatory") && 
columnAsJson.get("mandatory").getAsBoolean()){
+                               throw new 
GeneralPlatformDomainRuleException("error.msg.non.empty.datatable.mandatory.column.cannot.be.added",
+                                "Non empty datatable mandatory columns can not 
be added.");
+                       }
+                    parseDatatableColumnForAdd(columnAsJson, sqlBuilder, 
datatableName.toLowerCase().replaceAll("\\s", "_"),
                             constrainBuilder, codeMappings, 
isConstraintApproach);
                 }
 
@@ -1050,11 +1058,15 @@ public class ReadWriteNonCoreDataServiceImpl implements 
ReadWriteNonCoreDataServ
     }
 
     private void assertDataTableEmpty(final String datatableName) {
-        final String sql = "select count(*) from `" + datatableName + "`";
-        final int rowCount = this.jdbcTemplate.queryForObject(sql, 
Integer.class);
+        final int rowCount = getRowCount(datatableName);
         if (rowCount != 0) { throw new 
GeneralPlatformDomainRuleException("error.msg.non.empty.datatable.cannot.be.deleted",
                 "Non-empty datatable cannot be deleted."); }
     }
+    
+    private int getRowCount(final String datatableName){
+       final String sql = "select count(*) from `" + datatableName + "`";
+        return this.jdbcTemplate.queryForObject(sql, Integer.class);
+    }
 
     @Transactional
     @Override

http://git-wip-us.apache.org/repos/asf/fineract/blob/3ddde495/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
----------------------------------------------------------------------
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
index 8da89c0..e3c51c7 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
@@ -320,11 +320,14 @@ public class LoansApiResource {
                     Map<Long, Integer> memberLoanCycle = new HashMap<>();
                     Collection<ClientData> members = 
loanAccountGroupData.groupData().clientMembers();
                     accountLinkingOptions = new ArrayList<>();
-                    for (ClientData clientData : members) {
-                        Integer loanCounter = 
this.loanReadPlatformService.retriveLoanCounter(clientData.id(), productId);
-                        memberLoanCycle.put(clientData.id(), loanCounter);
-                        
accountLinkingOptions.addAll(getaccountLinkingOptions(newLoanAccount, 
clientData.id(), groupId));
+                    if(members != null){
+                       for (ClientData clientData : members) {
+                            Integer loanCounter = 
this.loanReadPlatformService.retriveLoanCounter(clientData.id(), productId);
+                            memberLoanCycle.put(clientData.id(), loanCounter);
+                            
accountLinkingOptions.addAll(getaccountLinkingOptions(newLoanAccount, 
clientData.id(), groupId));
+                        }
                     }
+                    
                     newLoanAccount = 
LoanAccountData.associateMemberVariations(newLoanAccount, memberLoanCycle);
                 }
 

Reply via email to