diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java index 3c76b424e..8b20ffc06 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java @@ -31,8 +31,8 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; +import java.util.Map.Entry; import org.apache.commons.lang.Validate; import org.hibernate.validator.AssertTrue; @@ -1362,4 +1362,17 @@ public abstract class OrderElement extends IntegrationEntity implements return getOrder() != null ? getOrder().isCodeAutogenerated() : false; } + @AssertTrue(message = "a quality form can not be assigned twice to the same order element") + public boolean checkConstraintUniqueQualityForm() { + Set qualityForms = new HashSet(); + for (TaskQualityForm each : taskQualityForms) { + QualityForm qualityForm = each.getQualityForm(); + if (qualityForms.contains(qualityForm)) { + return false; + } + qualityForms.add(qualityForm); + } + return true; + } + }