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 5d6bfa888..81f2f1d93 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 @@ -321,6 +321,16 @@ public abstract class Resource extends IntegrationEntity { }); } + public Query exactly(final Criterion criterion) { + return withNewPredicate(new IPredicate() { + + @Override + public boolean accepts(CriterionSatisfaction satisfaction) { + return criterion.isEquivalent(satisfaction.getCriterion()); + } + }); + } + /** * Method called to retrieve the result. If no predicate was set, it * returns all satisfactions @@ -540,8 +550,8 @@ public abstract class Resource extends IntegrationEntity { public List finishEnforcedAt(Criterion criterion, LocalDate date) { ArrayList result = new ArrayList(); - for (CriterionSatisfaction criterionSatisfaction : query().from( - criterion).at(date).result()) { + for (CriterionSatisfaction criterionSatisfaction : query() + .exactly(criterion).at(date).result()) { criterionSatisfaction.finish(date); result.add(criterionSatisfaction); }