ItEr40S22CUProcuraOrganizacionsTraballoItEr32S10: Generated order elements code automatically.

This commit is contained in:
Manuel Rego Casasnovas 2009-12-24 07:56:47 +01:00 committed by Javier Moran Rua
parent 1394d8c23b
commit 84ff46e5da
3 changed files with 30 additions and 3 deletions

View file

@ -154,7 +154,7 @@ public class Order extends OrderLineGroup {
return dayAssignments;
}
private List<OrderElement> getAllOrderElements() {
public List<OrderElement> getAllOrderElements() {
List<OrderElement> result = new ArrayList<OrderElement>(
this
.getChildren());

View file

@ -99,8 +99,12 @@ public class OrderLine extends OrderElement {
// removed the direct criterion requirements
removeAllDirectCriterionRequirement();
this.setName(getName() + " (copy)");
this.setCode(getCode() + " (copy)");
if (getName() != null) {
this.setName(getName() + " (copy)");
}
if (getCode() != null) {
this.setCode(getCode() + " (copy)");
}
result.add(this);
return result;

View file

@ -41,6 +41,7 @@ import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.common.daos.IConfigurationDAO;
import org.navalplanner.business.common.daos.IOrderSequenceDAO;
import org.navalplanner.business.common.entities.Configuration;
import org.navalplanner.business.common.entities.OrderSequence;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.labels.daos.ILabelDAO;
@ -311,12 +312,34 @@ public class OrderModel implements IOrderModel {
public void save() throws ValidationException {
reattachCriterions();
reattachTasksForTasksSources();
if (order.isCodeAutogenerated()) {
generateOrderElementCodes();
}
this.orderDAO.save(order);
reattachCurrentTaskSources();
deleteOrderElementWithoutParent();
synchronizeWithSchedule(order);
}
private void generateOrderElementCodes() {
OrderSequence orderSequence = orderSequenceDAO.getActiveOrderSequence();
int numberOfDigits = orderSequence.getNumberOfDigits();
for (OrderElement orderElement : order.getAllOrderElements()) {
if ((orderElement.getCode() == null)
|| (orderElement.getCode().isEmpty())) {
order.incrementLastOrderElementSequenceCode();
String orderElementCode = OrderSequence
.formatValue(numberOfDigits, order
.getLastOrderElementSequenceCode());
orderElement.setCode(order.getCode()
+ OrderSequence.CODE_SEPARATOR + orderElementCode);
}
}
}
private void reattachCurrentTaskSources() {
for (TaskSource each : order.getTaskSourcesFromBottomToTop()) {
taskSourceDAO.reattach(each);