public ReportPage generateReport()

in service/src/main/java/org/apache/fineract/cn/reporting/service/internal/specification/CustomerListReportSpecification.java [93:114]


  public ReportPage generateReport(final ReportRequest reportRequest, final int pageIndex, final int size) {
    final ReportDefinition reportDefinition = this.getReportDefinition();
    this.logger.info("Generating report {0}.", reportDefinition.getIdentifier());

    final ReportPage reportPage = new ReportPage();
    reportPage.setName(reportDefinition.getName());
    reportPage.setDescription(reportDefinition.getDescription());
    reportPage.setHeader(this.createHeader(reportRequest.getDisplayableFields()));

    final Query customerQuery = this.entityManager.createNativeQuery(this.buildCustomerQuery(reportRequest, pageIndex, size));
    final List<?> customerResultList =  customerQuery.getResultList();
    reportPage.setRows(this.buildRows(reportRequest, customerResultList));

    reportPage.setHasMore(
        !this.entityManager.createNativeQuery(this.buildCustomerQuery(reportRequest, pageIndex + 1, size))
            .getResultList().isEmpty()
    );

    reportPage.setGeneratedBy(UserContextHolder.checkedGetUser());
    reportPage.setGeneratedOn(DateConverter.toIsoString(LocalDateTime.now(Clock.systemUTC())));
    return reportPage;
  }