Craft\Workflow_SubmissionsService::save PHP Method

save() public method

public save ( Workflow_SubmissionModel $model )
$model Workflow_SubmissionModel
    public function save(Workflow_SubmissionModel $model)
    {
        $settings = craft()->workflow->getSettings();
        $isNewSubmission = !$model->id;
        if ($model->id) {
            $record = Workflow_SubmissionRecord::model()->findById($model->id);
        } else {
            $record = new Workflow_SubmissionRecord();
        }
        $record->setAttributes($model->getAttributes(), false);
        $record->validate();
        $model->addErrors($record->getErrors());
        if ($model->hasErrors()) {
            WorkflowPlugin::log(print_r($model->getAllErrors(), true), LogLevel::Error, true);
            return false;
        }
        // Fire an 'onBeforeSaveSubmission' event
        $event = new Event($this, array('submission' => $model));
        $this->onBeforeSaveSubmission($event);
        // Allow event to cancel submission saving
        if (!$event->performAction) {
            return false;
        }
        if (!craft()->elements->saveElement($model)) {
            return false;
        }
        if ($isNewSubmission) {
            $record->id = $model->id;
        }
        $record->save(false);
        if ($isNewSubmission) {
            $model->id = $record->id;
        }
        // Fire an 'onSaveSubmission' event
        $this->onSaveSubmission(new Event($this, array('submission' => $model)));
        if ($isNewSubmission) {
            // Trigger notification to publisher
            if ($settings->publisherNotifications) {
                $this->_sendPublisherNotificationEmail($model);
            }
        }
        return true;
    }