[Bug #1192] Fix bug
Also fix some other problems that prevented to create an order from a template. FEA: ItEr75S04BugFixing
This commit is contained in:
parent
ed16e9b1ad
commit
47000bc477
4 changed files with 24 additions and 4 deletions
|
|
@ -1444,4 +1444,8 @@ public abstract class OrderElement extends IntegrationEntity implements
|
|||
}
|
||||
}
|
||||
|
||||
public List<OrderVersion> getOrderVersions() {
|
||||
return new ArrayList<OrderVersion>(schedulingDatasForVersion.keySet());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -398,7 +398,7 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel {
|
|||
loadNeededDataForConversation();
|
||||
Order order = createOrderFrom((OrderTemplate) templateDAO
|
||||
.findExistingEntity(template.getId()));
|
||||
planningStateCreator.createOn(desktop, order);
|
||||
planningState = planningStateCreator.createOn(desktop, order);
|
||||
forceLoadAdvanceAssignmentsAndMeasurements(planningState.getOrder());
|
||||
initializeOrder();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -169,6 +169,9 @@ public class PlanningStateCreator {
|
|||
}
|
||||
|
||||
void setupScenario(Order order) {
|
||||
if (!order.hasNoVersions()) {
|
||||
return;
|
||||
}
|
||||
Scenario currentScenario = scenarioManager.getCurrent();
|
||||
OrderVersion orderVersion = currentScenario.addOrder(order);
|
||||
order.setVersionForScenario(currentScenario, orderVersion);
|
||||
|
|
@ -428,8 +431,8 @@ public class PlanningStateCreator {
|
|||
|
||||
public void saveVersioningInfo() throws IllegalStateException {
|
||||
current.saveVersioningInfo();
|
||||
}
|
||||
|
||||
}
|
||||
public void afterCommit() {
|
||||
if (current instanceof ChangeScenarioInfoOnSave) {
|
||||
current = new UsingOwnerScenario(current.getCurrentScenario(),
|
||||
|
|
@ -466,12 +469,24 @@ public class PlanningStateCreator {
|
|||
public void saveVersioningInfo() {
|
||||
OrderVersion orderVersion = order.getCurrentVersionInfo()
|
||||
.getOrderVersion();
|
||||
if (order.isNewObject()) {
|
||||
scenarioDAO.updateDerivedScenariosWithNewVersion(null, order,
|
||||
currentScenario, orderVersion);
|
||||
}
|
||||
orderVersion.savingThroughOwner();
|
||||
synchronizeWithSchedule(order,
|
||||
TaskSource.persistTaskSources(taskSourceDAO));
|
||||
synchronizeWithSchedule(order, getPersistence());
|
||||
order.writeSchedulingDataChanges();
|
||||
}
|
||||
|
||||
IOptionalPersistence getPersistence() {
|
||||
if (order.isNewObject()) {
|
||||
return TaskSource
|
||||
.persistButDontRemoveTaskSources(taskSourceDAO);
|
||||
} else {
|
||||
return TaskSource.persistTaskSources(taskSourceDAO);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCommit() {
|
||||
// do nothing
|
||||
|
|
|
|||
|
|
@ -748,6 +748,7 @@ public class SaveCommandBuilder {
|
|||
|
||||
private void dontPoseAsTransientObjectAnymore(OrderElement orderElement) {
|
||||
orderElement.dontPoseAsTransientObjectAnymore();
|
||||
dontPoseAsTransientObjectAnymore(orderElement.getOrderVersions());
|
||||
dontPoseAsTransientObjectAnymore(orderElement
|
||||
.getTaskSourcesFromBottomToTop());
|
||||
dontPoseAsTransientObjectAnymore(orderElement
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue