WIP update script for additional data table
This commit is contained in:
@@ -45,6 +45,7 @@ DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`;
|
||||
DROP TABLE IF EXISTS `m_code_value`;
|
||||
DROP TABLE IF EXISTS `m_code`;
|
||||
DROP TABLE IF EXISTS `r_enum_value`;
|
||||
DROP TABLE IF EXISTS `x_registered_table`;
|
||||
|
||||
-- additional data and report tables
|
||||
DROP TABLE IF EXISTS `stretchydata_dataset_fields`;
|
||||
@@ -111,6 +112,15 @@ CREATE TABLE `r_enum_value` (
|
||||
UNIQUE KEY `enum_value` (`enum_name`, `enum_value`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
/* used to link MySql tables to Mifos X application tables for additional data needs */
|
||||
CREATE TABLE `x_registered_table` (
|
||||
`registered_table_name` varchar(50) NOT NULL,
|
||||
`registered_table_label` varchar(80) NOT NULL,
|
||||
`application_table_name` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`registered_table_name`),
|
||||
UNIQUE KEY `registered_table_label` (`registered_table_label`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DDL for organisation wide related concepts
|
||||
CREATE TABLE `m_fund` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
@@ -295,6 +305,7 @@ CREATE TABLE `m_client` (
|
||||
`external_id` varchar(100) DEFAULT NULL,
|
||||
`firstname` varchar(50) DEFAULT NULL,
|
||||
`lastname` varchar(50) DEFAULT NULL,
|
||||
`display_name` varchar(50) DEFAULT NULL,
|
||||
`joining_date` date DEFAULT NULL,
|
||||
`createdby_id` bigint(20) DEFAULT NULL,
|
||||
`created_date` datetime DEFAULT NULL,
|
||||
@@ -302,6 +313,7 @@ CREATE TABLE `m_client` (
|
||||
`lastmodifiedby_id` bigint(20) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `external_id` (`external_id`),
|
||||
KEY `display_name` (`display_name`),
|
||||
KEY `FKCE00CAB3E0DD567A` (`office_id`),
|
||||
KEY `FKAUD0000000000001` (`createdby_id`),
|
||||
KEY `FKAUD0000000000002` (`lastmodifiedby_id`),
|
||||
|
||||
@@ -90,4 +90,9 @@ VALUES
|
||||
(8,1,NULL,'Sidi','Kon','2009-02-11',1,'2012-04-14 09:45:43','2012-04-14 09:45:43',1),
|
||||
(9,1,NULL,'Moustapha','Yattabar','2009-02-18',1,'2012-04-14 10:24:20','2012-04-14 10:24:20',1),
|
||||
(10,1,NULL,NULL,'Mali fruit sales ltd.','2009-02-18',1,'2012-04-14 10:25:37','2012-04-14 10:25:37',1),
|
||||
(11,1,NULL,NULL,'Djenne co-op group','2009-02-25',1,'2012-04-14 10:31:03','2012-04-14 10:31:03',1);
|
||||
(11,1,NULL,NULL,'Djenne co-op group','2009-02-25',1,'2012-04-14 10:31:03','2012-04-14 10:31:03',1);
|
||||
|
||||
|
||||
|
||||
update m_client set display_name = concat_ws(' ',firstname,lastname);
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
/* used to link MySql tables to Mifos X application tables for additional data needs */
|
||||
|
||||
DROP TABLE `x_registered_table`;
|
||||
|
||||
CREATE TABLE `x_registered_table` (
|
||||
`registered_table_name` varchar(50) NOT NULL,
|
||||
`registered_table_label` varchar(80) NOT NULL,
|
||||
`application_table_name` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`registered_table_name`),
|
||||
UNIQUE KEY `registered_table_label` (`registered_table_label`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
+34
-22
@@ -1,5 +1,6 @@
|
||||
package org.mifosng.platform.noncore;
|
||||
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -560,7 +561,6 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
||||
columnDefinitions);
|
||||
|
||||
String fkField = applicationTableName.substring(2) + "_id";
|
||||
|
||||
String sql = "select ";
|
||||
if (sqlFields != null)
|
||||
sql = sql + sqlFields;
|
||||
@@ -568,41 +568,53 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
||||
sql = sql + " * ";
|
||||
|
||||
sql = sql + " from " + datatable + " where " + fkField + " = " + id;
|
||||
|
||||
if (sqlOrder != null)
|
||||
sql = sql + " order by " + sqlOrder;
|
||||
logger.info(sql);
|
||||
|
||||
|
||||
//GenericResultsetData result = genericDataService
|
||||
// .fillGenericResultSet(sql);
|
||||
List<ResultsetDataRow> result = fillDatatableResultSetDataRows(sql);
|
||||
|
||||
long elapsed = System.currentTimeMillis() - startTime;
|
||||
logger.info("FINISHING DATATABLE: " + datatable + " Elapsed Time: "
|
||||
+ elapsed);
|
||||
|
||||
return new GenericResultsetData(columnHeaders, new ArrayList<ResultsetDataRow>());
|
||||
|
||||
/*
|
||||
List<ResultsetColumnHeader> columnHeaders = getResultsetColumnHeaders(
|
||||
columnDefinitions, sqlErrorMsg);
|
||||
return new GenericResultsetData(columnHeaders, result);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private List<ResultsetDataRow> fillDatatableResultSetDataRows(final String sql) {
|
||||
|
||||
String selectFieldList = getSelectFieldListFromColumnHeaders(columnHeaders);
|
||||
String sqlErrorMsg = "Sql: " + sql;
|
||||
CachedRowSet rs = genericDataService.getCachedResultSet(sql, sqlErrorMsg);
|
||||
|
||||
String sql = "select " + selectFieldList + " from `" + type
|
||||
+ "` t left join `" + getFullDatasetName(type, set)
|
||||
+ "` s on s.id = t.id where t.id = " + id;
|
||||
logger.info("addition fields sql: " + sql);
|
||||
List<ResultsetDataRow> resultsetDataRows = new ArrayList<ResultsetDataRow>();
|
||||
|
||||
List<ResultsetDataRow> resultsetDataRows = getResultsetDataRows(
|
||||
columnHeaders, sql, sqlErrorMsg);
|
||||
try {
|
||||
|
||||
long elapsed = System.currentTimeMillis() - startTime;
|
||||
logger.info("FINISHING SET: " + set + " Elapsed Time: " + elapsed);
|
||||
ResultSetMetaData rsmd = rs.getMetaData();
|
||||
int columnCount = rsmd.getColumnCount();
|
||||
|
||||
ResultsetDataRow resultsetDataRow;
|
||||
String columnName = null;
|
||||
String columnValue = null;
|
||||
while (rs.next()) {
|
||||
resultsetDataRow = new ResultsetDataRow();
|
||||
List<String> columnValues = new ArrayList<String>();
|
||||
for (int i = 0; i < columnCount; i++) {
|
||||
columnName = rsmd.getColumnName(i + 1);
|
||||
columnValue = rs.getString(columnName);
|
||||
columnValues.add(columnValue);
|
||||
}
|
||||
resultsetDataRow.setRow(columnValues);
|
||||
resultsetDataRows.add(resultsetDataRow);
|
||||
}
|
||||
|
||||
return new GenericResultsetData(columnHeaders, resultsetDataRows);
|
||||
*/
|
||||
|
||||
return resultsetDataRows;
|
||||
} catch (SQLException e) {
|
||||
throw new PlatformDataIntegrityException("error.msg.sql.error",
|
||||
e.getMessage(), sqlErrorMsg);
|
||||
}
|
||||
}
|
||||
|
||||
private String getApplicationTableName(String datatable) {
|
||||
|
||||
Reference in New Issue
Block a user