/** * Given a RedBeanModel, process afterSave actions such as update related, create, and create related. * Also process any email messages. If the workflow is by-time, then we should process the ByTimeWorkflowInQueue * model. * @param Item $model * @param User $triggeredByUser * @throws NotSupportedException */ public static function resolveAfterSaveByModel(Item $model, User $triggeredByUser) { foreach ($model->getWorkflowsToProcessAfterSave() as $workflow) { if ($workflow->getType() == Workflow::TYPE_BY_TIME) { static::processToByTimeWorkflowInQueue($workflow, $model); } elseif ($workflow->getType() == Workflow::TYPE_ON_SAVE) { WorkflowActionsUtil::processAfterSave($workflow, $model, $triggeredByUser); WorkflowEmailMessagesUtil::processAfterSave($workflow, $model, $triggeredByUser); } else { throw new NotSupportedException(); } } }