From 21bab56df8307b46bf594d7cab450413a2c5bb09 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 19 Jan 2010 11:12:53 +0100 Subject: [PATCH] ItEr44S08ImplantacionAplicacionItEr43S09: [Bug #248] Fixed loading resource calendars in resource allocation window. --- .../allocation/ResourceAllocationModel.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java index 7528c4aa3..230f5e15e 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java @@ -28,6 +28,8 @@ import java.util.Set; import org.hibernate.Hibernate; import org.navalplanner.business.calendars.daos.IBaseCalendarDAO; +import org.navalplanner.business.calendars.entities.BaseCalendar; +import org.navalplanner.business.calendars.entities.CalendarData; import org.navalplanner.business.common.IAdHocTransactionService; import org.navalplanner.business.common.IOnTransaction; import org.navalplanner.business.common.ProportionalDistributor; @@ -346,6 +348,7 @@ public class ResourceAllocationModel implements IResourceAllocationModel { reattachCriterionSatisfactions(resource.getCriterionSatisfactions()); if (resource.getCalendar() != null) { calendarDAO.reattachUnmodifiedEntity(resource.getCalendar()); + loadCalendar(resource.getCalendar()); } for (DayAssignment dayAssignment : resource.getAssignments()) { Hibernate.initialize(dayAssignment); @@ -355,6 +358,17 @@ public class ResourceAllocationModel implements IResourceAllocationModel { } } + private void loadCalendar(BaseCalendar baseCalendar) { + for (CalendarData calendarData : baseCalendar.getCalendarDataVersions()) { + calendarData.getHoursPerDay().size(); + if (calendarData.getParent() != null) { + loadCalendar(calendarData.getParent()); + } + } + baseCalendar.getExceptions().size(); + baseCalendar.getCalendarAvailabilities().size(); + } + private void reattachCriterionSatisfactions( Set criterionSatisfactions) { for (CriterionSatisfaction criterionSatisfaction : criterionSatisfactions) {