Fix bug validation 'OrderElement code must be unique' must be done for all OrderElements and not only for OrderLineGroups
FEA: ItEr61S07PerformanceOrderEdition
This commit is contained in:
parent
5b0e11fb41
commit
681c3fdc18
6 changed files with 27 additions and 32 deletions
|
|
@ -153,6 +153,6 @@ public interface IOrderElementDAO extends IIntegrationEntityDAO<OrderElement> {
|
|||
* @param order
|
||||
* @return
|
||||
*/
|
||||
OrderElement findRepeatedOrderCodeInDB(OrderLineGroup order);
|
||||
OrderElement findRepeatedOrderCodeInDB(OrderElement order);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -604,7 +604,7 @@ public class OrderElementDAO extends IntegrationEntityDAO<OrderElement>
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly= true, propagation = Propagation.REQUIRES_NEW)
|
||||
public OrderElement findRepeatedOrderCodeInDB(OrderLineGroup order) {
|
||||
public OrderElement findRepeatedOrderCodeInDB(OrderElement order) {
|
||||
final Map<String, OrderElement> orderElements = createMapByCode(getOrderAndAllChildren(order));
|
||||
final Map<String, OrderElement> orderElementsInDB = createMapByCode(getAll());
|
||||
|
||||
|
|
@ -622,7 +622,7 @@ public class OrderElementDAO extends IntegrationEntityDAO<OrderElement>
|
|||
return null;
|
||||
}
|
||||
|
||||
private List<OrderElement> getOrderAndAllChildren(OrderLineGroup order) {
|
||||
private List<OrderElement> getOrderAndAllChildren(OrderElement order) {
|
||||
List<OrderElement> result = new ArrayList<OrderElement>();
|
||||
result.add(order);
|
||||
result.addAll(order.getAllChildren());
|
||||
|
|
|
|||
|
|
@ -499,31 +499,4 @@ public class Order extends OrderLineGroup {
|
|||
return false;
|
||||
}
|
||||
|
||||
public static void checkConstraintOrderUniqueCode(OrderElement orderElement) {
|
||||
if (orderElement instanceof OrderLineGroup) {
|
||||
checkConstraintOrderUniqueCode((OrderLineGroup) orderElement);
|
||||
}
|
||||
}
|
||||
|
||||
public static void checkConstraintOrderUniqueCode(OrderLineGroup order) {
|
||||
OrderElement repeatedOrder;
|
||||
|
||||
// Check no code is repeated in this order
|
||||
repeatedOrder = order.findRepeatedOrderCode();
|
||||
if (repeatedOrder != null) {
|
||||
throw new ValidationException(_(
|
||||
"Repeated Order code {0} in Order {1}",
|
||||
repeatedOrder.getCode(), repeatedOrder.getName()));
|
||||
}
|
||||
|
||||
// Check no code is repeated within the DB
|
||||
repeatedOrder = Registry.getOrderElementDAO()
|
||||
.findRepeatedOrderCodeInDB(order);
|
||||
if (repeatedOrder != null) {
|
||||
throw new ValidationException(_(
|
||||
"Repeated Order code {0} in Order {1}",
|
||||
repeatedOrder.getCode(), repeatedOrder.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1276,4 +1276,27 @@ public abstract class OrderElement extends IntegrationEntity implements
|
|||
}
|
||||
}
|
||||
|
||||
public static void checkConstraintOrderUniqueCode(OrderElement order) {
|
||||
OrderElement repeatedOrder;
|
||||
|
||||
// Check no code is repeated in this order
|
||||
if (order instanceof OrderLineGroup) {
|
||||
repeatedOrder = ((OrderLineGroup) order).findRepeatedOrderCode();
|
||||
if (repeatedOrder != null) {
|
||||
throw new ValidationException(_(
|
||||
"Repeated Order code {0} in Order {1}",
|
||||
repeatedOrder.getCode(), repeatedOrder.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
// Check no code is repeated within the DB
|
||||
repeatedOrder = Registry.getOrderElementDAO()
|
||||
.findRepeatedOrderCodeInDB(order);
|
||||
if (repeatedOrder != null) {
|
||||
throw new ValidationException(_(
|
||||
"Repeated Order code {0} in Order {1}",
|
||||
repeatedOrder.getCode(), repeatedOrder.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1046,7 +1046,6 @@ public class OrderLineGroup extends OrderElement implements
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
public List<OrderElement> getAllOrderElements() {
|
||||
List<OrderElement> result = new ArrayList<OrderElement>(
|
||||
this.getChildren());
|
||||
|
|
|
|||
|
|
@ -443,7 +443,7 @@ public final class OrderElementConverter {
|
|||
addAdvanceMeasurements(orderElement, orderElementDTO);
|
||||
}
|
||||
|
||||
// Validate code must be unique
|
||||
// Validate OrderElement.code and HoursGroup.code must be unique
|
||||
Order.checkConstraintOrderUniqueCode(orderElement);
|
||||
HoursGroup.checkConstraintHoursGroupUniqueCode(orderElement);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue