[Bug #748] Fix bug

If the planning state is empty, the update and refreshing operations
can't be done.

FEA: ItEr64S03BugFixing
This commit is contained in:
Óscar González Fernández 2010-12-07 12:55:42 +01:00
parent b3be811ffe
commit 111bac3e8f
2 changed files with 22 additions and 5 deletions

View file

@ -1554,6 +1554,9 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
@Override
public void onEvent(Event event) throws Exception {
if (planningState.isEmpty()) {
return;
}
transactionService
.runOnReadOnlyTransaction(new IOnTransaction<Void>() {
@Override
@ -1568,6 +1571,9 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
}
public void refresh() {
if (planningState.isEmpty()) {
return;
}
TaskGroup rootTask = planningState.getRootTask();
setAdvancePercentage(rootTask.getAdvancePercentage());
@ -1584,11 +1590,10 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
}
private void updateCriticalPathProgress(TaskGroup rootTask) {
if (rootTask != null && planningState.getPlanner() != null) {
taskElementDAO.save(rootTask);
List<Task> criticalPath = planningState.getPlanner().getCriticalPath();
rootTask.updateCriticalPathProgress(criticalPath);
}
taskElementDAO.save(rootTask);
List<Task> criticalPath = planningState.getPlanner()
.getCriticalPath();
rootTask.updateCriticalPathProgress(criticalPath);
}
private void setAdvancePercentage(BigDecimal value) {

View file

@ -223,6 +223,8 @@ public abstract class PlanningState {
return new EmptyPlannigState(currentScenario);
}
public abstract boolean isEmpty();
public abstract Collection<? extends TaskElement> getTasksToSave();
public abstract List<TaskElement> getInitial();
@ -402,6 +404,11 @@ public abstract class PlanningState {
return planner;
}
@Override
public boolean isEmpty() {
return false;
}
}
private static class EmptyPlannigState extends PlanningState {
@ -453,5 +460,10 @@ public abstract class PlanningState {
return null;
}
@Override
public boolean isEmpty() {
return true;
}
}
}