Search in sources :

Example 1 with IndicatorValue

use of org.activityinfo.server.database.hibernate.entity.IndicatorValue in project activityinfo by bedatadriven.

the class GetMonthlyReportsHandler method execute.

@Override
public CommandResult execute(GetMonthlyReports cmd, User user) throws CommandException {
    List<ReportingPeriod> periods = em.createQuery("select p from ReportingPeriod p where p.site.id = ?1").setParameter(1, cmd.getSiteId()).getResultList();
    List<Indicator> indicators = em.createQuery("select i from Indicator i where i.activity.id =" + "(select s.activity.id from Site s where s.id = ?1)").setParameter(1, cmd.getSiteId()).getResultList();
    List<IndicatorRowDTO> list = new ArrayList<IndicatorRowDTO>();
    for (Indicator indicator : indicators) {
        IndicatorRowDTO dto = new IndicatorRowDTO();
        dto.setIndicatorId(indicator.getId());
        dto.setSiteId(cmd.getSiteId());
        dto.setIndicatorName(indicator.getName());
        for (ReportingPeriod period : periods) {
            Month month = HandlerUtil.monthFromRange(period.getDate1(), period.getDate2());
            if (month != null && month.compareTo(cmd.getStartMonth()) >= 0 && month.compareTo(cmd.getEndMonth()) <= 0) {
                for (IndicatorValue value : period.getIndicatorValues()) {
                    if (value.getIndicator().getId() == indicator.getId()) {
                        dto.setValue(month, value.getValue());
                    }
                }
            }
        }
        list.add(dto);
    }
    return new MonthlyReportResult(list);
}
Also used : ReportingPeriod(org.activityinfo.server.database.hibernate.entity.ReportingPeriod) Month(org.activityinfo.shared.command.Month) IndicatorValue(org.activityinfo.server.database.hibernate.entity.IndicatorValue) ArrayList(java.util.ArrayList) MonthlyReportResult(org.activityinfo.shared.command.result.MonthlyReportResult) Indicator(org.activityinfo.server.database.hibernate.entity.Indicator) IndicatorRowDTO(org.activityinfo.shared.dto.IndicatorRowDTO)

Aggregations

ArrayList (java.util.ArrayList)1 Indicator (org.activityinfo.server.database.hibernate.entity.Indicator)1 IndicatorValue (org.activityinfo.server.database.hibernate.entity.IndicatorValue)1 ReportingPeriod (org.activityinfo.server.database.hibernate.entity.ReportingPeriod)1 Month (org.activityinfo.shared.command.Month)1 MonthlyReportResult (org.activityinfo.shared.command.result.MonthlyReportResult)1 IndicatorRowDTO (org.activityinfo.shared.dto.IndicatorRowDTO)1