return taskTree.getKost2List(timesheet.getTaskId());
}
public QueryFilter buildQueryFilter(final TimesheetFilter filter)
{
final QueryFilter queryFilter = new QueryFilter(filter);
if (filter.getUserId() != null) {
final PFUserDO user = new PFUserDO();
user.setId(filter.getUserId());
queryFilter.add(Restrictions.eq("user", user));
}
if (filter.getStartTime() != null && filter.getStopTime() != null) {
queryFilter.add(Restrictions.between("startTime", filter.getStartTime(), filter.getStopTime()));
} else if (filter.getStartTime() != null) {
queryFilter.add(Restrictions.ge("startTime", filter.getStartTime()));
} else if (filter.getStopTime() != null) {
queryFilter.add(Restrictions.le("startTime", filter.getStopTime()));
}
if (filter.getTaskId() != null) {
if (filter.isRecursive() == true) {
final TaskNode node = taskTree.getTaskNodeById(filter.getTaskId());
final List<Integer> taskIds = node.getDescendantIds();
taskIds.add(node.getId());
queryFilter.add(Restrictions.in("task.id", taskIds));
if (log.isDebugEnabled() == true) {
log.debug("search in tasks: " + taskIds);
}
} else {
queryFilter.add(Restrictions.eq("task.id", filter.getTaskId()));
}
}
if (filter.getOrderType() == OrderDirection.DESC) {
queryFilter.addOrder(Order.desc("startTime"));
} else {
queryFilter.addOrder(Order.asc("startTime"));
}
if (log.isDebugEnabled() == true) {
log.debug(ToStringBuilder.reflectionToString(filter));
}
return queryFilter;