public function findWorkflow($firm_id, $status_id)
{
$subspecialty_id = null;
if ($firm = \Firm::model()->findByPk($firm_id)) {
$subspecialty_id = $firm->serviceSubspecialtyAssignment ? $firm->serviceSubspecialtyAssignment->subspecialty_id : null;
}
if ($rule = self::model()->find('subspecialty_id=? and firm_id=? and episode_status_id=?', array($subspecialty_id, $firm_id, $status_id))) {
return $rule->workflow;
}
if ($rule = self::model()->find('subspecialty_id=? and episode_status_id=?', array($subspecialty_id, $status_id))) {
return $rule->workflow;
}
if ($rule = self::model()->find('subspecialty_id=?', array($subspecialty_id))) {
return $rule->workflow;
}
if ($rule = self::model()->find('subspecialty_id is null and episode_status_id is null')) {
return $rule->workflow;
}
throw new \CException('Cannot find default workflow rule');
}