Bug #1403: Only regenerate codes if isCodeAutogenerated() is true

FEA: ItEr76S04BugFixing
This commit is contained in:
Manuel Rego Casasnovas 2012-03-26 18:30:33 +02:00
parent f50806e51e
commit 16e3d1860e
2 changed files with 29 additions and 28 deletions

View file

@ -421,32 +421,35 @@ public class Order extends OrderLineGroup implements Comparable {
} }
public void generateOrderElementCodes(int numberOfDigits) { public void generateOrderElementCodes(int numberOfDigits) {
for (OrderElement orderElement : this.getAllOrderElements()) { if (isCodeAutogenerated()) {
if ((orderElement.getCode() == null) for (OrderElement orderElement : this.getAllOrderElements()) {
|| (orderElement.getCode().isEmpty()) if ((orderElement.getCode() == null)
|| (!orderElement.getCode().startsWith(this.getCode()))) { || (orderElement.getCode().isEmpty())
this.incrementLastOrderElementSequenceCode(); || (!orderElement.getCode().startsWith(this.getCode()))) {
String orderElementCode = EntitySequence.formatValue( this.incrementLastOrderElementSequenceCode();
numberOfDigits, this.getLastOrderElementSequenceCode()); String orderElementCode = EntitySequence.formatValue(
orderElement.setCode(this.getCode() numberOfDigits,
+ EntitySequence.CODE_SEPARATOR_CHILDREN this.getLastOrderElementSequenceCode());
+ orderElementCode); orderElement.setCode(this.getCode()
} + EntitySequence.CODE_SEPARATOR_CHILDREN
+ orderElementCode);
}
if (orderElement instanceof OrderLine) { if (orderElement instanceof OrderLine) {
for (HoursGroup hoursGroup : orderElement.getHoursGroups()) { for (HoursGroup hoursGroup : orderElement.getHoursGroups()) {
if ((hoursGroup.getCode() == null) if ((hoursGroup.getCode() == null)
|| (hoursGroup.getCode().isEmpty()) || (hoursGroup.getCode().isEmpty())
|| (!hoursGroup.getCode().startsWith( || (!hoursGroup.getCode().startsWith(
orderElement.getCode()))) { orderElement.getCode()))) {
((OrderLine) orderElement) ((OrderLine) orderElement)
.incrementLastHoursGroupSequenceCode(); .incrementLastHoursGroupSequenceCode();
String hoursGroupCode = EntitySequence.formatValue( String hoursGroupCode = EntitySequence.formatValue(
numberOfDigits, ((OrderLine) orderElement) numberOfDigits, ((OrderLine) orderElement)
.getLastHoursGroupSequenceCode()); .getLastHoursGroupSequenceCode());
hoursGroup.setCode(orderElement.getCode() hoursGroup.setCode(orderElement.getCode()
+ EntitySequence.CODE_SEPARATOR_CHILDREN + EntitySequence.CODE_SEPARATOR_CHILDREN
+ hoursGroupCode); + hoursGroupCode);
}
} }
} }
} }

View file

@ -332,9 +332,7 @@ public class SaveCommandBuilder {
private void doTheSaving() { private void doTheSaving() {
Order order = state.getOrder(); Order order = state.getOrder();
if (order.isCodeAutogenerated()) { generateOrderElementCodes(order);
generateOrderElementCodes(order);
}
createAdvancePercentagesIfRequired(order); createAdvancePercentagesIfRequired(order);
calculateAndSetTotalHours(order); calculateAndSetTotalHours(order);
checkConstraintOrderUniqueCode(order); checkConstraintOrderUniqueCode(order);