diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/DayAssignmentDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/DayAssignmentDAO.java index e8b33b8f1..02b076cb2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/DayAssignmentDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/DayAssignmentDAO.java @@ -80,14 +80,8 @@ public class DayAssignmentDAO extends GenericDAOHibernate criteria.setProjection(Projections.projectionList().add( Property.forName("day").group()).add( Projections.sum("hours"))); - List list = criteria.list(); - - for (Object[] object : list) { - LocalDate date = (LocalDate) object[0]; - Integer hours = (Integer) object[1]; - result.put(date, hours.intValue()); - } + addHoursByDate(result, list); } if (!specificResourceAllocations.isEmpty()) { @@ -101,22 +95,22 @@ public class DayAssignmentDAO extends GenericDAOHibernate Projections.sum("hours"))); List list = criteria.list(); - - for (Object[] object : list) { - LocalDate date = (LocalDate) object[0]; - Integer hours = (Integer) object[1]; - - if (result.get(date) == null) { - result.put(date, hours.intValue()); - } else { - result.put(date, result.get(date) + hours.intValue()); - } - } + addHoursByDate(result, list); } return result; } + private void addHoursByDate(SortedMap result, + List list) { + for (Object[] object : list) { + LocalDate date = (LocalDate) object[0]; + Integer hours = (Integer) object[1]; + int current = result.get(date) != null ? result.get(date) : 0; + result.put(date, current + hours); + } + } + private List withId(List elements) { List result = new ArrayList(); for (T element : elements) {