dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #40863
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 20809: Event analytics, respecting skip rounding for program indicators
------------------------------------------------------------
revno: 20809
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2015-10-20 16:07:43 +0200
message:
Event analytics, respecting skip rounding for program indicators
modified:
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsUtils.java
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsUtils.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsUtils.java 2015-09-28 09:07:56 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsUtils.java 2015-10-20 14:07:43 +0000
@@ -45,6 +45,7 @@
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.period.Period;
+import org.hisp.dhis.system.util.MathUtils;
import org.hisp.dhis.system.util.ReflectionUtils;
/**
@@ -135,4 +136,30 @@
return list;
}
+ /**
+ * Returns a value. If the given parameters has skip rounding, the value is
+ * returned unchanged. If the given number of decimals is specified, the
+ * value is rounded to the given decimals. Otherwise, default rounding is
+ * used.
+ *
+ * @param params the query parameters.
+ * @param decimals the number of decimals.
+ * @param value the value.
+ * @return a double.
+ */
+ public static Double getRoundedValue( DataQueryParams params, Integer decimals, Double value )
+ {
+ if ( params.isSkipRounding() )
+ {
+ return value;
+ }
+ else if ( decimals != null && decimals > 0 )
+ {
+ return MathUtils.getRounded( value, decimals );
+ }
+ else
+ {
+ return MathUtils.getRounded( value );
+ }
+ }
}
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-10-13 07:58:48 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-10-20 14:07:43 +0000
@@ -88,6 +88,7 @@
import org.hisp.dhis.analytics.AnalyticsManager;
import org.hisp.dhis.analytics.AnalyticsSecurityManager;
import org.hisp.dhis.analytics.AnalyticsService;
+import org.hisp.dhis.analytics.AnalyticsUtils;
import org.hisp.dhis.analytics.DataQueryGroups;
import org.hisp.dhis.analytics.DataQueryParams;
import org.hisp.dhis.analytics.DimensionItem;
@@ -341,11 +342,9 @@
row.add( DX_INDEX, new DimensionItem( DATA_X_DIM_ID, indicator ) );
- Double roundedValue = indicator.hasDecimals() ? MathUtils.getRounded( value, indicator.getDecimals() ) : MathUtils.getRounded( value );
-
grid.addRow();
grid.addValues( DimensionItem.getItemIdentifiers( row ) );
- grid.addValue( dataSourceParams.isSkipRounding() ? value : roundedValue );
+ grid.addValue( AnalyticsUtils.getRoundedValue( dataSourceParams, indicator.getDecimals(), value ) );
}
}
}
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2015-10-12 15:45:11 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2015-10-20 14:07:43 +0000
@@ -46,6 +46,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hisp.dhis.analytics.AggregationType;
+import org.hisp.dhis.analytics.AnalyticsUtils;
import org.hisp.dhis.analytics.EventOutputType;
import org.hisp.dhis.analytics.event.EventAnalyticsManager;
import org.hisp.dhis.analytics.event.EventQueryParams;
@@ -203,7 +204,7 @@
{
double value = rowSet.getDouble( "value" );
ProgramIndicator indicator = params.getProgramIndicator();
- grid.addValue( indicator.hasDecimals() ? getRounded( value, indicator.getDecimals() ) : getRounded( value ) );
+ grid.addValue( AnalyticsUtils.getRoundedValue( params, indicator.getDecimals(), value ) );
}
else
{