/** * Returns the status string of the next valid status from the list of transitions * * @param BaseActiveRecord|SimpleWorkflowBehavior $model * @return string */ public static function getNextStatus($model) { $currentStatus = $model->getAttribute('status'); $statusList = $model->getWorkflowSource()->getAllStatuses($model->getWorkflow()->getId()); $transitions = array_keys(WorkflowHelper::getNextStatusListData($this->owner)); $started = false; foreach ($statusList as $status) { $status_id = $status->getId(); if ($started) { if (in_array($status_id, $transitions) && static::isValidNextStatus($model, $status_id)) { return $status_id; } } if ($status_id == $currentStatus) { $started = true; } } return $currentStatus; }