diff --git a/metasfresh-webui-api/src/main/java/de/metas/ui/web/dashboard/KPIDataLoader.java b/metasfresh-webui-api/src/main/java/de/metas/ui/web/dashboard/KPIDataLoader.java index da294bbc5..2e4cef98c 100644 --- a/metasfresh-webui-api/src/main/java/de/metas/ui/web/dashboard/KPIDataLoader.java +++ b/metasfresh-webui-api/src/main/java/de/metas/ui/web/dashboard/KPIDataLoader.java @@ -112,23 +112,24 @@ public KPIDataLoader setTimeRange(long fromMillis, long toMillis) { timeRanges.add(TimeRange.offset(mainTimeRange, compareOffset)); + fieldNameExtractor = (field, timeRange) -> { + if (timeRange.isMainTimeRange()) + { + return field.getFieldName(); + } + else if (field.isGroupBy()) + { + return "_" + field.getOffsetFieldName(); + } + else + { + return field.getOffsetFieldName(); + } + }; + final KPIField groupByField = kpi.getGroupByField(); if (groupByField.getValueType().isDate()) { - fieldNameExtractor = (field, timeRange) -> { - if (timeRange.isMainTimeRange()) - { - return field.getFieldName(); - } - else if (field.isGroupBy()) - { - return "_" + field.getOffsetFieldName(); - } - else - { - return field.getOffsetFieldName(); - } - }; dataSetValueKeyExtractor = (bucket, timeRange) -> { final long millis = convertToMillis(bucket.getKey()); return JSONDate.toJson(timeRange.subtractOffset(millis)); @@ -136,7 +137,7 @@ else if (field.isGroupBy()) } else { - throw new AdempiereException("Only fields of type Date are supported for groupping by with offset"); + dataSetValueKeyExtractor = (bucket, timeRange) -> groupByField.convertValueToJson(bucket.getKey()); } }