diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/api/ReportsApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/api/ReportsApiResource.java index 2374a33f2..db5c2c639 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/api/ReportsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/api/ReportsApiResource.java @@ -52,22 +52,14 @@ public class ReportsApiResource { boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); boolean exportCsv = ApiParameterHelper.exportCsv(uriInfo.getQueryParameters()); - + boolean exportPdf = ApiParameterHelper.exportPdf(uriInfo.getQueryParameters()); - if(exportPdf) - - { - String result = this.readExtraDataAndReportingService - .retrieveReportPDF(".", ".", extractedQueryParams); - - return Response - .ok() - .entity(result) - .header("Content-Disposition", - "attachment;filename=ReportList.pdf").build(); - - } + if (exportPdf) + { + String result = this.readExtraDataAndReportingService.retrieveReportPDF(".", ".", extractedQueryParams); + return Response.ok().entity(result).header("Content-Disposition", "attachment;filename=ReportList.pdf").build(); + } if (!exportCsv) { GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(".", ".", extractedQueryParams); @@ -108,31 +100,24 @@ public class ReportsApiResource { } else { parameterTypeValue = "parameter"; } - - - // PDF format - - if(exportPdf) - { - - Map reportParams = getReportParams(queryParams, false); - String pdfFileName = this.readExtraDataAndReportingService - .retrieveReportPDF(reportName, parameterTypeValue, reportParams); - - File file=new File(pdfFileName); - ResponseBuilder response=Response.ok(file); - response.header("Content-Disposition", - "attachment; filename=\"" - +pdfFileName+"\""); - response.header("content-Type","application/pdf"); - - return response.build(); - - } + // PDF format + + if (exportPdf) { + Map reportParams = getReportParams(queryParams, false); + String pdfFileName = this.readExtraDataAndReportingService.retrieveReportPDF(reportName, parameterTypeValue, reportParams); + + File file = new File(pdfFileName); + + ResponseBuilder response = Response.ok(file); + response.header("Content-Disposition", "attachment; filename=\"" + pdfFileName + "\""); + response.header("content-Type", "application/pdf"); + + return response.build(); + + } if (!exportCsv) { - Map reportParams = getReportParams(queryParams, false); GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(reportName, parameterTypeValue, @@ -187,5 +172,4 @@ public class ReportsApiResource { } return reportParams; } - } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/service/ReadReportingService.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/service/ReadReportingService.java index 5e703fee8..202630b88 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/service/ReadReportingService.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/service/ReadReportingService.java @@ -15,8 +15,7 @@ public interface ReadReportingService { Response processPentahoRequest(String reportName, String outputType, Map queryParams); - String retrieveReportPDF(String name, String type,Map extractedQueryParams); - - + String retrieveReportPDF(String name, String type, Map extractedQueryParams); + String getReportType(String reportName); } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/service/ReadReportingServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/service/ReadReportingServiceImpl.java index 37a4e3460..6cd004092 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/service/ReadReportingServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/dataqueries/service/ReadReportingServiceImpl.java @@ -142,8 +142,6 @@ public class ReadReportingServiceImpl implements ReadReportingService { return writer; } - - @Override public GenericResultsetData retrieveGenericResultset(final String name, final String type, final Map queryParams) { @@ -342,85 +340,69 @@ public class ReadReportingServiceImpl implements ReadReportingService { } } - @Override -public String retrieveReportPDF(final String reportName,final String type, final Map queryParams) { + @Override + public String retrieveReportPDF(final String reportName, final String type, final Map queryParams) { - String fileLocation=FileUtils.MIFOSX_BASE_DIR+File.separator+""; - if(!new File(fileLocation).isDirectory()) - { - new File(fileLocation).mkdirs(); - } + String fileLocation = FileUtils.MIFOSX_BASE_DIR + File.separator + ""; + if (!new File(fileLocation).isDirectory()) { + new File(fileLocation).mkdirs(); + } - String genaratePdf=fileLocation+File.separator+reportName+".pdf"; - - - try - { - GenericResultsetData result = retrieveGenericResultset( - reportName, type, queryParams); - + String genaratePdf = fileLocation + File.separator + reportName + ".pdf"; - List columnHeaders = result.getColumnHeaders(); - List data = result.getData(); - List row; + try { + GenericResultsetData result = retrieveGenericResultset(reportName, type, queryParams); - logger.info("NO. of Columns: " + columnHeaders.size()); - Integer chSize = columnHeaders.size(); + List columnHeaders = result.getColumnHeaders(); + List data = result.getData(); + List row; - Document document = new Document(PageSize.B0.rotate()); + logger.info("NO. of Columns: " + columnHeaders.size()); + Integer chSize = columnHeaders.size(); - PdfWriter.getInstance(document, - new FileOutputStream(new File(fileLocation+reportName+".pdf"))); - document.open(); - - PdfPTable table = new PdfPTable(chSize); - table.setWidthPercentage(100); + Document document = new Document(PageSize.B0.rotate()); - for (int i = 0; i < chSize; i++) { - - table.addCell(columnHeaders.get(i).getColumnName()); - - } - table.completeRow(); + PdfWriter.getInstance(document, new FileOutputStream(new File(fileLocation + reportName + ".pdf"))); + document.open(); - Integer rSize; - String currColType; - String currVal; - logger.info("NO. of Rows: " + data.size()); - for (int i = 0; i < data.size(); i++) { - row = data.get(i).getRow(); - rSize = row.size(); - for (int j = 0; j < rSize; j++) { - currColType = columnHeaders.get(j).getColumnType(); - currVal = row.get(j); - if (currVal != null) { - if (currColType.equals("DECIMAL") - || currColType.equals("DOUBLE") - || currColType.equals("BIGINT") - || currColType.equals("SMALLINT") - || currColType.equals("INT")) - { - - table.addCell(currVal.toString()); - } - else - { - table.addCell(currVal.toString()); - } - } - } - } - table.completeRow(); - document.add(table); - document.close(); - return genaratePdf; - } - - catch (Exception e) { - throw new PlatformDataIntegrityException( - "error.msg.exception.error", e.getMessage()); - } + PdfPTable table = new PdfPTable(chSize); + table.setWidthPercentage(100); - } - } + for (int i = 0; i < chSize; i++) { + table.addCell(columnHeaders.get(i).getColumnName()); + + } + table.completeRow(); + + Integer rSize; + String currColType; + String currVal; + logger.info("NO. of Rows: " + data.size()); + for (int i = 0; i < data.size(); i++) { + row = data.get(i).getRow(); + rSize = row.size(); + for (int j = 0; j < rSize; j++) { + currColType = columnHeaders.get(j).getColumnType(); + currVal = row.get(j); + if (currVal != null) { + if (currColType.equals("DECIMAL") || currColType.equals("DOUBLE") || currColType.equals("BIGINT") + || currColType.equals("SMALLINT") || currColType.equals("INT")) { + + table.addCell(currVal.toString()); + } else { + table.addCell(currVal.toString()); + } + } + } + } + table.completeRow(); + document.add(table); + document.close(); + return genaratePdf; + } + catch (Exception e) { + throw new PlatformDataIntegrityException("error.msg.exception.error", e.getMessage()); + } + } +} \ No newline at end of file