diff --git a/src/main/java/com/netgrif/application/engine/workflow/domain/eventoutcomes/taskoutcomes/FinishTaskEventOutcome.java b/src/main/java/com/netgrif/application/engine/workflow/domain/eventoutcomes/taskoutcomes/FinishTaskEventOutcome.java index 9fd45065606..92319a67373 100644 --- a/src/main/java/com/netgrif/application/engine/workflow/domain/eventoutcomes/taskoutcomes/FinishTaskEventOutcome.java +++ b/src/main/java/com/netgrif/application/engine/workflow/domain/eventoutcomes/taskoutcomes/FinishTaskEventOutcome.java @@ -10,16 +10,27 @@ @Data public class FinishTaskEventOutcome extends TaskEventOutcome { + /** + * Outcome flag, which is true if the task is still executable after the finish task event + */ + protected boolean isTaskStillExecutable; + public FinishTaskEventOutcome() { super(); } public FinishTaskEventOutcome(Case useCase, Task task) { super(useCase, task); + this.isTaskStillExecutable = isTaskStillExecutable(useCase, task); } public FinishTaskEventOutcome(Case useCase, Task task, List outcomes) { this(useCase, task); this.setOutcomes(outcomes); } + + protected boolean isTaskStillExecutable(Case useCase, Task task) { + return useCase.getTasks().stream() + .anyMatch(taskPair -> taskPair.getTask().equals(task.getStringId())); + } } diff --git a/src/main/java/com/netgrif/application/engine/workflow/web/responsebodies/eventoutcomes/LocalisedFinishTaskEventOutcome.java b/src/main/java/com/netgrif/application/engine/workflow/web/responsebodies/eventoutcomes/LocalisedFinishTaskEventOutcome.java index efc93a61998..01128551584 100644 --- a/src/main/java/com/netgrif/application/engine/workflow/web/responsebodies/eventoutcomes/LocalisedFinishTaskEventOutcome.java +++ b/src/main/java/com/netgrif/application/engine/workflow/web/responsebodies/eventoutcomes/LocalisedFinishTaskEventOutcome.java @@ -2,12 +2,19 @@ import com.netgrif.application.engine.workflow.domain.eventoutcomes.taskoutcomes.FinishTaskEventOutcome; import com.netgrif.application.engine.workflow.web.responsebodies.eventoutcomes.base.LocalisedTaskEventOutcome; +import lombok.Getter; import java.util.Locale; public class LocalisedFinishTaskEventOutcome extends LocalisedTaskEventOutcome { + @Getter + protected Boolean isTaskStillExecutable; + public LocalisedFinishTaskEventOutcome(FinishTaskEventOutcome outcome, Locale locale) { super(outcome, locale); + if (outcome != null) { + this.isTaskStillExecutable = outcome.isTaskStillExecutable() ; + } } }