Merge remote-tracking branch 'sander/master' into develop
This commit is contained in:
@@ -11703,6 +11703,8 @@ No Request Body:
|
||||
<li>m_loan</li>
|
||||
<li>m_office</li>
|
||||
<li>m_saving_account</li>
|
||||
<li>m_product_loan</li>
|
||||
<li>m_savings_product</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ public class DatatableCommandFromApiJsonDeserializer {
|
||||
private final Set<String> supportedParametersForDropColumns = new HashSet<String>(Arrays.asList(
|
||||
"name"));
|
||||
private final Object[] supportedColumnTypes = { "String", "Number", "Decimal", "Date", "Text", "Dropdown" };
|
||||
private final Object[] supportedApptableNames = { "m_loan", "m_savings_account", "m_client", "m_group", "m_office" };
|
||||
private final Object[] supportedApptableNames = { "m_loan", "m_savings_account", "m_client", "m_group", "m_office", "m_savings_product", "m_product_loan" };
|
||||
|
||||
private final FromJsonHelper fromApiJsonHelper;
|
||||
|
||||
|
||||
+22
-10
@@ -261,7 +261,7 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
|
||||
final String sql = getAddSql(columnHeaders, dataTableName, getFKField(appTable), appTableId, dataParams);
|
||||
|
||||
this.jdbcTemplate.update(sql);
|
||||
this.jdbcTemplate.update(sql);
|
||||
|
||||
return commandProcessingResult; //
|
||||
|
||||
@@ -759,8 +759,11 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
final Long id) {
|
||||
|
||||
final String appTable = queryForApplicationTableName(dataTableName);
|
||||
|
||||
checkMainResourceExistsWithinScope(appTable, appTableId);
|
||||
|
||||
|
||||
|
||||
|
||||
final List<ResultsetColumnHeaderData> columnHeaders = this.genericDataService.fillResultsetColumnHeaders(dataTableName);
|
||||
|
||||
String sql = "";
|
||||
@@ -815,6 +818,7 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
Long clientId = getLongSqlRowSet(rs, "clientId");
|
||||
Long savingsId = getLongSqlRowSet(rs, "savingsId");
|
||||
Long LoanId = getLongSqlRowSet(rs, "loanId");
|
||||
Long entityId = getLongSqlRowSet(rs, "entityId");
|
||||
|
||||
if (rs.next()) { throw new DatatableSystemErrorException("System Error: More than one row returned from data scoping query"); }
|
||||
|
||||
@@ -823,7 +827,8 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
.withGroupId(groupId) //
|
||||
.withClientId(clientId) //
|
||||
.withSavingsId(savingsId) //
|
||||
.withLoanId(LoanId) //
|
||||
.withLoanId(LoanId)
|
||||
.withEntityId(entityId)//
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -850,7 +855,7 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
*/
|
||||
if (appTable.equalsIgnoreCase("m_loan")) {
|
||||
scopedSQL = "select distinctrow x.* from ("
|
||||
+ " (select o.id as officeId, l.group_id as groupId, l.client_id as clientId, null as savingsId, l.id as loanId from m_loan l "
|
||||
+ " (select o.id as officeId, l.group_id as groupId, l.client_id as clientId, null as savingsId, l.id as loanId, null as entityId from m_loan l "
|
||||
+ " join m_client c on c.id = l.client_id "
|
||||
+ " join m_office o on o.id = c.office_id and o.hierarchy like '"
|
||||
+ currentUser.getOffice().getHierarchy()
|
||||
@@ -859,13 +864,13 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
+ appTableId
|
||||
+ ")"
|
||||
+ " union all "
|
||||
+ " (select o.id as officeId, l.group_id as groupId, l.client_id as clientId, null as savingsId, l.id as loanId from m_loan l "
|
||||
+ " (select o.id as officeId, l.group_id as groupId, l.client_id as clientId, null as savingsId, l.id as loanId, null as entityId from m_loan l "
|
||||
+ " join m_group g on g.id = l.group_id " + " join m_office o on o.id = g.office_id and o.hierarchy like '"
|
||||
+ currentUser.getOffice().getHierarchy() + "%'" + " where l.id = " + appTableId + ")" + " ) x";
|
||||
}
|
||||
if (appTable.equalsIgnoreCase("m_savings_account")) {
|
||||
scopedSQL = "select distinctrow x.* from ("
|
||||
+ " (select o.id as officeId, s.group_id as groupId, s.client_id as clientId, s.id as savingsId, null as loanId from m_savings_account s "
|
||||
+ " (select o.id as officeId, s.group_id as groupId, s.client_id as clientId, s.id as savingsId, null as loanId, null as entityId from m_savings_account s "
|
||||
+ " join m_client c on c.id = s.client_id "
|
||||
+ " join m_office o on o.id = c.office_id and o.hierarchy like '"
|
||||
+ currentUser.getOffice().getHierarchy()
|
||||
@@ -874,24 +879,29 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
+ appTableId
|
||||
+ ")"
|
||||
+ " union all "
|
||||
+ " (select o.id as officeId, s.group_id as groupId, s.client_id as clientId, s.id as savingsId, null as loanId from m_savings_account s "
|
||||
+ " (select o.id as officeId, s.group_id as groupId, s.client_id as clientId, s.id as savingsId, null as loanId, null as entityId from m_savings_account s "
|
||||
+ " join m_group g on g.id = s.group_id " + " join m_office o on o.id = g.office_id and o.hierarchy like '"
|
||||
+ currentUser.getOffice().getHierarchy() + "%'" + " where s.id = " + appTableId + ")" + " ) x";
|
||||
}
|
||||
if (appTable.equalsIgnoreCase("m_client")) {
|
||||
scopedSQL = "select o.id as officeId, null as groupId, c.id as clientId, null as savingsId, null as loanId from m_client c "
|
||||
scopedSQL = "select o.id as officeId, null as groupId, c.id as clientId, null as savingsId, null as loanId, null as entityId from m_client c "
|
||||
+ " join m_office o on o.id = c.office_id and o.hierarchy like '" + currentUser.getOffice().getHierarchy() + "%'"
|
||||
+ " where c.id = " + appTableId;
|
||||
}
|
||||
if (appTable.equalsIgnoreCase("m_group")) {
|
||||
scopedSQL = "select o.id as officeId, g.id as groupId, null as clientId, null as savingsId, null as loanId from m_group g "
|
||||
scopedSQL = "select o.id as officeId, g.id as groupId, null as clientId, null as savingsId, null as loanId, null as entityId from m_group g "
|
||||
+ " join m_office o on o.id = g.office_id and o.hierarchy like '" + currentUser.getOffice().getHierarchy() + "%'"
|
||||
+ " where g.id = " + appTableId;
|
||||
}
|
||||
if (appTable.equalsIgnoreCase("m_office")) {
|
||||
scopedSQL = "select o.id as officeId, null as groupId, null as clientId, null as savingsId, null as loanId from m_office o "
|
||||
scopedSQL = "select o.id as officeId, null as groupId, null as clientId, null as savingsId, null as loanId from, null as entityId m_office o "
|
||||
+ " where o.hierarchy like '" + currentUser.getOffice().getHierarchy() + "%'" + " and o.id = " + appTableId;
|
||||
}
|
||||
|
||||
if (appTable.equalsIgnoreCase("m_product_loan") || appTable.equalsIgnoreCase("m_savings_product")) {
|
||||
scopedSQL = "select null as officeId, null as groupId, null as clientId, null as savingsId, null as loanId, p.id as entityId from " + appTable
|
||||
+ " as p WHERE p.id = " + appTableId;
|
||||
}
|
||||
|
||||
if (scopedSQL == null) { throw new PlatformDataIntegrityException("error.msg.invalid.dataScopeCriteria", "Application Table: "
|
||||
+ appTable + " not catered for in data Scoping"); }
|
||||
@@ -907,6 +917,8 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
if (appTable.equalsIgnoreCase("m_client")) return;
|
||||
if (appTable.equalsIgnoreCase("m_group")) return;
|
||||
if (appTable.equalsIgnoreCase("m_office")) return;
|
||||
if (appTable.equalsIgnoreCase("m_product_loan")) return;
|
||||
if (appTable.equalsIgnoreCase("m_savings_product")) return;
|
||||
|
||||
throw new PlatformDataIntegrityException("error.msg.invalid.application.table", "Invalid Application Table: " + appTable);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user