use of org.hisp.dhis.calendar.DateTimeUnit in project dhis2-core by dhis2.
the class QuarterlyPeriodType method getPreviousPeriod.
@Override
public Period getPreviousPeriod(Period period, org.hisp.dhis.calendar.Calendar calendar) {
DateTimeUnit dateTimeUnit = createLocalDateUnitInstance(period.getStartDate(), calendar);
dateTimeUnit = calendar.minusMonths(dateTimeUnit, 3);
return createPeriod(dateTimeUnit, calendar);
}
use of org.hisp.dhis.calendar.DateTimeUnit in project dhis2-core by dhis2.
the class AnalyticsUtils method getDimensionItemNameMap.
/**
* Returns a mapping between identifiers and names for the given query.
*
* @param params the data query parameters.
* @return a mapping between identifiers and names.
*/
public static Map<String, String> getDimensionItemNameMap(DataQueryParams params) {
List<DimensionalObject> dimensions = params.getDimensionsAndFilters();
Map<String, String> map = new HashMap<>();
Calendar calendar = PeriodType.getCalendar();
for (DimensionalObject dimension : dimensions) {
for (DimensionalItemObject item : dimension.getItems()) {
if (DimensionType.PERIOD.equals(dimension.getDimensionType()) && !calendar.isIso8601()) {
Period period = (Period) item;
DateTimeUnit dateTimeUnit = calendar.fromIso(period.getStartDate());
map.put(period.getPeriodType().getIsoDate(dateTimeUnit), period.getDisplayName());
} else {
map.put(item.getDimensionItem(), item.getDisplayProperty(params.getDisplayProperty()));
}
if (DimensionType.ORGANISATION_UNIT.equals(dimension.getDimensionType()) && params.isHierarchyMeta()) {
OrganisationUnit unit = (OrganisationUnit) item;
map.putAll(NameableObjectUtils.getUidDisplayPropertyMap(unit.getAncestors(), params.getDisplayProperty()));
}
}
map.put(dimension.getDimension(), dimension.getDisplayProperty(params.getDisplayProperty()));
}
return map;
}
use of org.hisp.dhis.calendar.DateTimeUnit in project dhis2-core by dhis2.
the class IdentifiableObjectUtils method getLocalPeriodIdentifiers.
/**
* Returns a list of calendar specific period identifiers for the given
* collection of periods and calendar.
*
* @param periods the list of periods.
* @param calendar the calendar to use for generation of iso periods.
* @return a list of iso period identifiers.
*/
public static <T extends IdentifiableObject> List<String> getLocalPeriodIdentifiers(Collection<T> periods, Calendar calendar) {
List<String> localIdentifiers = new ArrayList<>();
for (IdentifiableObject object : periods) {
Period period = (Period) object;
DateTimeUnit dateTimeUnit = calendar.fromIso(period.getStartDate());
localIdentifiers.add(period.getPeriodType().getIsoDate(dateTimeUnit));
}
return localIdentifiers;
}
use of org.hisp.dhis.calendar.DateTimeUnit in project dhis2-core by dhis2.
the class QuarterlyPeriodType method generateRollingPeriods.
@Override
public List<Period> generateRollingPeriods(DateTimeUnit dateTimeUnit, Calendar calendar) {
dateTimeUnit.setDay(1);
DateTimeUnit iterationDateTimeUnit = calendar.minusMonths(dateTimeUnit, 9);
List<Period> periods = Lists.newArrayList();
for (int i = 0; i < 4; i++) {
periods.add(createPeriod(iterationDateTimeUnit, calendar));
iterationDateTimeUnit = calendar.plusMonths(iterationDateTimeUnit, 3);
}
return periods;
}
use of org.hisp.dhis.calendar.DateTimeUnit in project dhis2-core by dhis2.
the class QuarterlyPeriodType method getRewindedDate.
@Override
public Date getRewindedDate(Date date, Integer rewindedPeriods) {
Calendar cal = getCalendar();
date = date != null ? date : new Date();
rewindedPeriods = rewindedPeriods != null ? rewindedPeriods : 1;
DateTimeUnit dateTimeUnit = createLocalDateUnitInstance(date);
dateTimeUnit = cal.minusMonths(dateTimeUnit, rewindedPeriods * 3);
return cal.toIso(dateTimeUnit).toJdkDate();
}
Aggregations