diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Criterion.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Criterion.java index 282e3bb0c..99ad76b1e 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Criterion.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Criterion.java @@ -355,6 +355,18 @@ public class Criterion extends IntegrationEntity implements ICriterion { return false; } + public boolean includes(Criterion other) { + if (isEquivalent(other)) { + return true; + } + for (Criterion each : this.getChildren()) { + if (each.includes(other)) { + return true; + } + } + return false; + } + @AssertTrue(message="a disabled resource has enabled subresources") public boolean checkConstraintActive() { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java index 48615c7e4..6a9cbe567 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java @@ -314,8 +314,7 @@ public abstract class Resource extends IntegrationEntity { @Override public boolean accepts(CriterionSatisfaction satisfaction) { - return satisfaction.getCriterion() - .isEquivalentOrIncludedIn(criterion); + return criterion.includes(satisfaction.getCriterion()); } }); }