Reattach order before calculating critical path
FEA: ItEr64OTS04ReporteAvancesCadeaCritica
This commit is contained in:
parent
51643855ce
commit
ba6ad9b04b
3 changed files with 38 additions and 5 deletions
|
|
@ -190,6 +190,9 @@ public class Registry {
|
|||
@Autowired
|
||||
private IEntitySequenceDAO entitySequenceDAO;
|
||||
|
||||
@Autowired
|
||||
private IAdHocTransactionService transactionServiceDAO;
|
||||
|
||||
private Registry() {
|
||||
}
|
||||
|
||||
|
|
@ -346,4 +349,8 @@ public class Registry {
|
|||
public static IEntitySequenceDAO getEntitySequenceDAO() {
|
||||
return getInstance().entitySequenceDAO;
|
||||
}
|
||||
|
||||
public static IAdHocTransactionService getTransactionService() {
|
||||
return getInstance().transactionServiceDAO;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,10 +91,6 @@ import org.zkoss.zk.ui.util.Clients;
|
|||
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
|
||||
public class TemplateModel implements ITemplateModel {
|
||||
|
||||
public static List<TaskElement> getCriticalPathFor(Order order) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
private static class DependencyWithVisibility implements
|
||||
IDependency<TaskElement> {
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,13 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.common.Registry;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
import org.navalplanner.business.scenarios.IScenarioManager;
|
||||
import org.navalplanner.web.common.TemplateModel;
|
||||
import org.navalplanner.web.montecarlo.MonteCarloController;
|
||||
import org.navalplanner.web.planner.order.OrderPlanningController;
|
||||
|
|
@ -103,7 +109,7 @@ public class MonteCarloTabCreator {
|
|||
protected void afterShowAction() {
|
||||
List<TaskElement> criticalPath = orderPlanningController.getCriticalPath();
|
||||
if (criticalPath == null) {
|
||||
criticalPath = TemplateModel.getCriticalPathFor(mode.getOrder());
|
||||
criticalPath = getCriticalPathFor(mode.getOrder());
|
||||
}
|
||||
monteCarloController.setCriticalPath(criticalPath);
|
||||
|
||||
|
|
@ -119,6 +125,30 @@ public class MonteCarloTabCreator {
|
|||
};
|
||||
}
|
||||
|
||||
public List<TaskElement> getCriticalPathFor(final Order order) {
|
||||
|
||||
// Reattach order
|
||||
IAdHocTransactionService transactionService = Registry.getTransactionService();
|
||||
return transactionService.runOnTransaction(new IOnTransaction<List<TaskElement>>() {
|
||||
@Override
|
||||
public List<TaskElement> execute() {
|
||||
initializeOrder(order);
|
||||
return order.getAllChildrenAssociatedTaskElements();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initializeOrder(Order order) {
|
||||
IOrderDAO orderDAO = Registry.getOrderDAO();
|
||||
orderDAO.reattach(order);
|
||||
useSchedulingDataFor(order);
|
||||
}
|
||||
|
||||
private void useSchedulingDataFor(Order order) {
|
||||
IScenarioManager scenarioManager = Registry.getScenarioManager();
|
||||
order.useSchedulingDataFor(scenarioManager.getCurrent());
|
||||
}
|
||||
|
||||
private ITab createGlobalMonteCarloTab() {
|
||||
|
||||
final IComponentCreator componentCreator = new IComponentCreator() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue