=== modified file 'dhis-2/dhis-services/dhis-service-aggregationengine-default/src/main/java/org/hisp/dhis/aggregation/impl/indicator/IndicatorAggregation.java' --- dhis-2/dhis-services/dhis-service-aggregationengine-default/src/main/java/org/hisp/dhis/aggregation/impl/indicator/IndicatorAggregation.java 2011-05-20 13:18:16 +0000 +++ dhis-2/dhis-services/dhis-service-aggregationengine-default/src/main/java/org/hisp/dhis/aggregation/impl/indicator/IndicatorAggregation.java 2011-05-20 13:27:02 +0000 @@ -27,8 +27,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import static org.hisp.dhis.system.util.DateUtils.DAYS_IN_YEAR; -import static org.hisp.dhis.system.util.DateUtils.getDays; import static org.hisp.dhis.system.util.MathUtils.INVALID; import static org.hisp.dhis.system.util.MathUtils.calculateExpression; @@ -46,6 +44,7 @@ import org.hisp.dhis.expression.ExpressionService; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.system.util.DateUtils; /** * @author Lars Helge Overland @@ -106,7 +105,7 @@ { int factor = indicator.getIndicatorType().getFactor(); - double annualizationFactor = getAnnualizationFactor( indicator, startDate, endDate ); + double annualizationFactor = DateUtils.getAnnualizationFactor( indicator, startDate, endDate ); double aggregatedValue = ( numeratorValue / denominatorValue ) * factor * annualizationFactor; @@ -131,23 +130,6 @@ // ------------------------------------------------------------------------- // Supportive methods // ------------------------------------------------------------------------- - - /** - * Returns the annualized value. - */ - private double getAnnualizationFactor( Indicator indicator, Date startDate, Date endDate ) - { - double factor = 1.0; - - if ( indicator.getAnnualized() != null && indicator.getAnnualized() ) - { - long days = getDays( startDate, endDate ) + 1; - - factor = DAYS_IN_YEAR / days; - } - - return factor; - } private String generateExpression( String expression, Date startDate, Date endDate, OrganisationUnit organisationUnit ) { === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/DefaultIndicatorDataMart.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/DefaultIndicatorDataMart.java 2011-05-20 12:27:47 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/DefaultIndicatorDataMart.java 2011-05-20 13:27:02 +0000 @@ -28,7 +28,6 @@ */ import static org.hisp.dhis.options.SystemSettingManager.KEY_OMIT_INDICATORS_ZERO_NUMERATOR_DATAMART; -import static org.hisp.dhis.system.util.DateUtils.DAYS_IN_YEAR; import static org.hisp.dhis.system.util.MathUtils.calculateExpression; import static org.hisp.dhis.system.util.MathUtils.getRounded; @@ -177,7 +176,7 @@ if ( denominatorValue != 0 && !( omitZeroNumerator && numeratorValue == 0 ) ) { - annualizationFactor = getAnnualizationFactor( indicator, period ); + annualizationFactor = DateUtils.getAnnualizationFactor( indicator, period.getStartDate(), period.getEndDate() ); factor = indicator.getIndicatorType().getFactor(); @@ -214,21 +213,7 @@ // ------------------------------------------------------------------------- // Supportive methods // ------------------------------------------------------------------------- - - public static double getAnnualizationFactor( final Indicator indicator, final Period period ) - { - double factor = 1.0; - - if ( indicator.getAnnualized() != null && indicator.getAnnualized() ) - { - final int daysInPeriod = DateUtils.daysBetween( period.getStartDate(), period.getEndDate() ) + 1; - - factor = DAYS_IN_YEAR / daysInPeriod; - } - - return factor; - } - + public static String getAnnualizationString( final Boolean annualized ) { return ( annualized == null || !annualized ) ? FALSE : TRUE; === modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java' --- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java 2011-01-06 14:56:17 +0000 +++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java 2011-05-20 13:27:02 +0000 @@ -27,17 +27,18 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import static org.hisp.dhis.period.Period.DEFAULT_DATE_FORMAT; + import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.apache.commons.validator.DateValidator; +import org.hisp.dhis.indicator.Indicator; import org.joda.time.DateTime; import org.joda.time.Days; -import static org.hisp.dhis.period.Period.DEFAULT_DATE_FORMAT; - /** * @author Lars Helge Overland * @version $Id$ @@ -429,4 +430,20 @@ } } + /** + * Returns the annualization factor for the given indicator and start-end date interval. + */ + public static double getAnnualizationFactor( Indicator indicator, Date startDate, Date endDate ) + { + double factor = 1.0; + + if ( indicator.isAnnualized() ) + { + final int daysInPeriod = DateUtils.daysBetween( startDate, endDate ) + 1; + + factor = DAYS_IN_YEAR / daysInPeriod; + } + + return factor; + } }