[Bug #1205] Fix issue going to edition of a task in WBS directly
The problem was related with a Hibernate proxy when trying to use method getOrder of an OrderElement. FEA: ItEr75S04BugFixing
This commit is contained in:
parent
c8d1725a1b
commit
ad3268654a
3 changed files with 27 additions and 4 deletions
|
|
@ -502,6 +502,10 @@ public abstract class TaskElement extends BaseEntity {
|
|||
this.calendar = calendar;
|
||||
}
|
||||
|
||||
public BaseCalendar getOwnCalendar() {
|
||||
return calendar;
|
||||
}
|
||||
|
||||
public BaseCalendar getCalendar() {
|
||||
if (calendar == null) {
|
||||
OrderElement orderElement = getOrderElement();
|
||||
|
|
|
|||
|
|
@ -27,8 +27,10 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
import org.navalplanner.business.orders.daos.IOrderElementDAO;
|
||||
import org.navalplanner.business.orders.entities.HoursGroup;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.resources.daos.ICriterionTypeDAO;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
|
|
@ -50,6 +52,9 @@ public class OrderElementModel implements IOrderElementModel {
|
|||
@Autowired
|
||||
private IOrderElementDAO orderElementDAO;
|
||||
|
||||
@Autowired
|
||||
private IOrderDAO orderDAO;
|
||||
|
||||
@Autowired
|
||||
private ICriterionTypeDAO criterionTypeDao;
|
||||
|
||||
|
|
@ -144,11 +149,16 @@ public class OrderElementModel implements IOrderElementModel {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public boolean isCodeAutogenerated() {
|
||||
if ((orderElement == null) || (orderElement.getOrder() == null)) {
|
||||
if (orderElement == null) {
|
||||
return false;
|
||||
}
|
||||
return orderElement.getOrder().isCodeAutogenerated();
|
||||
Order order = orderDAO.loadOrderAvoidingProxyFor(orderElement);
|
||||
if (order == null) {
|
||||
return false;
|
||||
}
|
||||
return order.isCodeAutogenerated();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import org.hibernate.Hibernate;
|
|||
import org.joda.time.LocalDate;
|
||||
import org.navalplanner.business.advance.entities.DirectAdvanceAssignment;
|
||||
import org.navalplanner.business.advance.entities.IndirectAdvanceAssignment;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.common.daos.IEntitySequenceDAO;
|
||||
|
|
@ -312,8 +313,16 @@ public class PlanningStateCreator {
|
|||
private void forceLoadOfDataAssociatedTo(TaskElement each) {
|
||||
forceLoadOfResourceAllocationsResourcesAndAssignmentFunction(each);
|
||||
forceLoadOfCriterions(each);
|
||||
if (each.getCalendar() != null) {
|
||||
BaseCalendarModel.forceLoadBaseCalendar(each.getCalendar());
|
||||
|
||||
BaseCalendar calendar = each.getOwnCalendar();
|
||||
if (calendar == null) {
|
||||
if (each.getOrderElement() != null) {
|
||||
calendar = orderDAO.loadOrderAvoidingProxyFor(
|
||||
each.getOrderElement()).getCalendar();
|
||||
}
|
||||
}
|
||||
if (calendar != null) {
|
||||
BaseCalendarModel.forceLoadBaseCalendar(calendar);
|
||||
}
|
||||
each.hasConsolidations();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue