ItEr59S24AdaptacionsFinaisEscenarios: Creating order subcontracted in master and all derived scenarios.

This commit is contained in:
Manuel Rego Casasnovas 2010-06-09 18:05:08 +02:00
parent 1a5ba8dc88
commit 8b50f60f51

View file

@ -45,6 +45,7 @@ import org.navalplanner.business.orders.daos.IOrderElementDAO;
import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.orders.entities.OrderElement;
import org.navalplanner.business.orders.entities.OrderStatusEnum;
import org.navalplanner.business.scenarios.daos.IScenarioDAO;
import org.navalplanner.business.scenarios.entities.OrderVersion;
import org.navalplanner.business.scenarios.entities.Scenario;
import org.navalplanner.ws.common.api.InstanceConstraintViolationsDTO;
@ -82,6 +83,9 @@ public class SubcontractServiceREST implements ISubcontractService {
@Autowired
private IOrderSequenceDAO orderSequenceDAO;
@Autowired
private IScenarioDAO scenarioDAO;
@Override
@POST
@Consumes("application/xml")
@ -129,10 +133,14 @@ public class SubcontractServiceREST implements ISubcontractService {
Order order;
if (orderElement instanceof Order) {
order = (Order) orderElement;
order.setVersionForScenario(current, version);
order.useSchedulingDataFor(version);
} else {
order = wrapInOrder(current, version, orderElement);
}
addOrderToDerivedScenarios(current, version, order);
order.moveCodeToExternalCode();
order.setCodeAutogenerated(true);
String code = orderSequenceDAO.getNextOrderCode();
@ -172,6 +180,15 @@ public class SubcontractServiceREST implements ISubcontractService {
instanceConstraintViolationsList);
}
private void addOrderToDerivedScenarios(Scenario currentScenario,
OrderVersion orderVersion, Order order) {
List<Scenario> derivedScenarios = scenarioDAO
.getDerivedScenarios(currentScenario);
for (Scenario scenario : derivedScenarios) {
scenario.addOrder(order, orderVersion);
}
}
private void generateCodes(Order order) {
OrderSequence orderSequence = orderSequenceDAO.getActiveOrderSequence();
int numberOfDigits = orderSequence.getNumberOfDigits();