diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java
index fa8e972de..054700377 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java
@@ -22,6 +22,7 @@ package org.navalplanner.business.orders.entities;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -34,6 +35,7 @@ import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.planner.entities.DayAssignment;
import org.navalplanner.business.planner.entities.ResourceAllocation;
import org.navalplanner.business.planner.entities.TaskElement;
+import org.navalplanner.business.resources.entities.Resource;
/**
* It represents an {@link Order} with its related information.
@@ -218,4 +220,12 @@ public class Order extends BaseEntity implements IOrderLineGroup, IValidable {
return result;
}
+ public Set getResources() {
+ Set resources = new HashSet();
+ for (DayAssignment dayAssignment : getDayAssignments()) {
+ resources.add(dayAssignment.getResource());
+ }
+ return resources;
+ }
+
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java
index e74095b18..e56ecd6eb 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java
@@ -225,14 +225,10 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
}
private Chart getChartComponent(Order order) {
- SortedMap mapDayAssignments = calculateHoursAdditionByDay(order);
-
XYModel xymodel = new SimpleXYModel();
- for (LocalDate day : mapDayAssignments.keySet()) {
- Integer hours = mapDayAssignments.get(day);
- xymodel.addValue("", new Long(day.toDateTimeAtStartOfDay()
- .getMillis()), hours);
- }
+
+ addDayAssignmentsLoad(order, xymodel, "order");
+ addResourcesLoad(order, xymodel, "all");
Chart chart = new Chart();
chart.setType("time_series");
@@ -243,11 +239,38 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
return chart;
}
+ private void addDayAssignmentsLoad(Order order, XYModel xymodel,
+ String title) {
+ List dayAssignments = order.getDayAssignments();
+
+ SortedMap mapDayAssignments = calculateHoursAdditionByDay(dayAssignments);
+ for (LocalDate day : mapDayAssignments.keySet()) {
+ Integer hours = mapDayAssignments.get(day);
+ xymodel.addValue(title, new Long(day.toDateTimeAtStartOfDay()
+ .getMillis()), hours);
+ }
+ }
+
+ private void addResourcesLoad(Order order, XYModel xymodel, String title) {
+ List dayAssignments = new ArrayList();
+
+ Set resources = order.getResources();
+ for (Resource resource : resources) {
+ dayAssignments.addAll(resource.getAssignments());
+ }
+
+ SortedMap mapDayAssignments = calculateHoursAdditionByDay(dayAssignments);
+ for (LocalDate day : mapDayAssignments.keySet()) {
+ Integer hours = mapDayAssignments.get(day);
+ xymodel.addValue(title, new Long(day.toDateTimeAtStartOfDay()
+ .getMillis()), hours);
+ }
+ }
+
private SortedMap calculateHoursAdditionByDay(
- Order order) {
+ List dayAssignments) {
SortedMap map = new TreeMap();
- List dayAssignments = order.getDayAssignments();
if (dayAssignments.isEmpty()) {
return map;
}