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); }