/**
* 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;
}