diff --git a/mifosng-individual-lending-app/src/main/webapp/WEB-INF/views/reports/flexireport.jsp b/mifosng-individual-lending-app/src/main/webapp/WEB-INF/views/reports/flexireport.jsp index 3d6358cb6..e83e7a049 100644 --- a/mifosng-individual-lending-app/src/main/webapp/WEB-INF/views/reports/flexireport.jsp +++ b/mifosng-individual-lending-app/src/main/webapp/WEB-INF/views/reports/flexireport.jsp @@ -90,11 +90,9 @@ function selectNewThousandsSep(selectedVal) { } var reportingParams = { - rptDB: "mifosngprovider", + //rptDB: "mifosngproviderJ", RESTUrl: "${baseUrl}api/v1/reports", pentahoUrl: "${baseUrl}pentahoreport", - //old link exportUrl: "${rootContext}exportcsv", - //not needed now exportUrl: "${baseUrl}exportcsv", bundleDir: "${resValue}/stretchyreporting/mifosngbundle/", reportsListDiv: "myListOfReports", runReportDiv: "myRunReportButton", diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingService.java b/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingService.java index 5a360986f..cb873d5b7 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingService.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingService.java @@ -9,11 +9,11 @@ import org.mifosng.data.reports.GenericResultset; public interface ReadExtraDataAndReportingService { - StreamingOutput retrieveReportCSV(String rptDB, String name, String type, + StreamingOutput retrieveReportCSV(String name, String type, Map extractedQueryParams); // @PreAuthorize(value = "hasAnyRole('REPORTING_SUPER_USER_ROLE')") - GenericResultset retrieveGenericResultset(String rptDB, String name, + GenericResultset retrieveGenericResultset(String name, String type, Map extractedQueryParams); ExtraDatasets retrieveExtraDatasetNames(String datasetType); diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingServiceImpl.java index 797993d66..7214c12ad 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingServiceImpl.java @@ -38,24 +38,29 @@ public class ReadExtraDataAndReportingServiceImpl implements .getLogger(ReadExtraDataAndReportingServiceImpl.class); private final DataSource dataSource; + private final String reportingMetaDataDB; @Autowired - public ReadExtraDataAndReportingServiceImpl(final DataSource dataSource) { + public ReadExtraDataAndReportingServiceImpl(final DataSource dataSource) + throws SQLException { this.dataSource = dataSource; + Connection db_connection = dataSource.getConnection(); + this.reportingMetaDataDB = db_connection.getCatalog(); + db_connection.close(); + db_connection = null; } @Override - public StreamingOutput retrieveReportCSV(final String rptDB, - final String name, final String type, - final Map queryParams) { + public StreamingOutput retrieveReportCSV(final String name, + final String type, final Map queryParams) { return new StreamingOutput() { public void write(OutputStream out) throws IOException, WebApplicationException { try { - GenericResultset result = retrieveGenericResultset(rptDB, - name, type, queryParams); + GenericResultset result = retrieveGenericResultset(name, + type, queryParams); StringBuffer sb = generateCsvFileBuffer(result); InputStream in = new ByteArrayInputStream(sb.toString() @@ -126,9 +131,8 @@ public class ReadExtraDataAndReportingServiceImpl implements } @Override - public GenericResultset retrieveGenericResultset(final String rptDB, - final String name, final String type, - final Map queryParams) { + public GenericResultset retrieveGenericResultset(final String name, + final String type, final Map queryParams) { if (name == null) { logger.info("Report Name not Found"); @@ -154,7 +158,7 @@ public class ReadExtraDataAndReportingServiceImpl implements String sql; try { - sql = getSQLtoRun(rptDB, name, type, orgId, queryParams); + sql = getSQLtoRun(name, type, orgId, queryParams); } catch (SQLException e) { logger.info(name + ": Failed in getSQLtoRun"); throw new WebApplicationException(Response @@ -222,10 +226,14 @@ public class ReadExtraDataAndReportingServiceImpl implements } - private String getSQLtoRun(final String rptDB, final String name, - final String type, final String orgId, - final Map queryParams) throws SQLException { + private String getSQLtoRun(final String name, final String type, + final String orgId, final Map queryParams) + throws SQLException { String sql = null; + String rptDB = queryParams.get("${rptDB}"); + if ((rptDB == null) || rptDB.equals("")) { + rptDB = reportingMetaDataDB; + } if (type.equals("report")) { sql = getReportSql(rptDB, name); @@ -284,7 +292,7 @@ public class ReadExtraDataAndReportingServiceImpl implements throws SQLException { String sql = "select report_sql as the_sql from " + rptDB + ".stretchy_report where report_name = '" + reportName + "'"; - // logger.info("Report SQL: " + sql); + logger.info("Report SQL: " + sql); return getSql(sql); } @@ -294,7 +302,7 @@ public class ReadExtraDataAndReportingServiceImpl implements String sql = "select parameter_sql as the_sql from " + rptDB + ".stretchy_parameter where parameter_name = '" + parameterName + "'"; - // logger.info("Parameter SQL: " + sql); + logger.info("Parameter SQL: " + sql); return getSql(sql); } diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/ReportingApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/ReportingApiResource.java index 4cfaccdfe..0f6a8c420 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/ReportingApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/ReportingApiResource.java @@ -92,7 +92,6 @@ public class ReportingApiResource { MultivaluedMap queryParams = uriInfo .getQueryParameters(); - String rptDB = queryParams.getFirst("MRP_rptDB"); String name = queryParams.getFirst("MRP_Name"); String type = queryParams.getFirst("MRP_Type"); String exportCSV = queryParams.getFirst("exportCSV"); @@ -115,12 +114,11 @@ public class ReportingApiResource { if ((exportCSV == null) || (!(exportCSV.equalsIgnoreCase("true")))) { GenericResultset result = this.ReadExtraDataAndReportingService - .retrieveGenericResultset(rptDB, name, type, - extractedQueryParams); + .retrieveGenericResultset(name, type, extractedQueryParams); return makeCORS(Response.ok().entity(result)); } else { StreamingOutput result = this.ReadExtraDataAndReportingService - .retrieveReportCSV(rptDB, name, type, extractedQueryParams); + .retrieveReportCSV(name, type, extractedQueryParams); return makeCORSExport(Response.ok().entity(result), name.replaceAll(" ", "") + ".csv");