=== modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/utils/FormUtils.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/utils/FormUtils.java 2012-07-25 13:18:48 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/utils/FormUtils.java 2012-11-05 04:36:04 +0000 @@ -34,7 +34,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.Validate; import org.hisp.dhis.common.comparator.IdentifiableObjectNameComparator; @@ -51,6 +50,7 @@ import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.CalendarPeriodType; import org.hisp.dhis.period.Period; +import org.hisp.dhis.period.YearlyPeriodType; import org.hisp.dhis.setting.SystemSettingManager; import org.hisp.dhis.system.filter.OrganisationUnitWithDataSetsFilter; import org.hisp.dhis.system.filter.PastAndCurrentPeriodFilter; @@ -149,17 +149,17 @@ { Map validationErrorMap = new HashMap(); - Double factor = (Double) systemSettingManager.getSystemSetting( - SystemSettingManager.KEY_FACTOR_OF_DEVIATION, 2.0 ); - - Collection stdDevs = stdDevOutlierAnalysisService.analyse( ListUtils.getCollection( organisationUnit ), - dataElements, ListUtils.getCollection( period ), factor ); - - Collection minMaxs = minMaxOutlierAnalysisService.analyse( ListUtils.getCollection( organisationUnit ), - dataElements, ListUtils.getCollection( period ), null ); + Double factor = (Double) systemSettingManager.getSystemSetting( SystemSettingManager.KEY_FACTOR_OF_DEVIATION, + 2.0 ); + + Collection stdDevs = stdDevOutlierAnalysisService.analyse( + ListUtils.getCollection( organisationUnit ), dataElements, ListUtils.getCollection( period ), factor ); + + Collection minMaxs = minMaxOutlierAnalysisService.analyse( + ListUtils.getCollection( organisationUnit ), dataElements, ListUtils.getCollection( period ), null ); Collection deflatedDataValues = CollectionUtils.union( stdDevs, minMaxs ); - + for ( DeflatedDataValue deflatedDataValue : deflatedDataValues ) { String key = String.format( "DE%dOC%d", deflatedDataValue.getDataElementId(), @@ -260,7 +260,16 @@ DataSet dataSet = dataSetService.getDataSet( dataSetId ); - CalendarPeriodType periodType = (CalendarPeriodType) dataSet.getPeriodType(); + CalendarPeriodType periodType = null; + if ( dataSet.getPeriodType().getName().equalsIgnoreCase( "Yearly" ) ) + { + periodType = (CalendarPeriodType) new YearlyPeriodType(); + } + else + { + periodType = (CalendarPeriodType) dataSet.getPeriodType(); + } + List periods = periodType.generateLast5Years( new Date() ); FilterUtils.filter( periods, new PastAndCurrentPeriodFilter() ); Collections.reverse( periods );