/** * Create new account owner signature object * * @param DocumentSignature $documentSignature * @param AccountOwnerInterface $owner * @param string $status * @return DocumentOwnerSignature */ public function createOwnerSignature(DocumentSignature $documentSignature, AccountOwnerInterface $owner, $status = DocumentOwnerSignature::STATUS_CREATED) { $signature = new DocumentOwnerSignature(); $signature->setDocumentSignature($documentSignature); $signature->setStatus($status); $ownerObject = $owner->getObjectToSave(); if ($ownerObject instanceof User && $ownerObject->hasRole('ROLE_CLIENT')) { $signature->setClientOwner($ownerObject); } elseif ($ownerObject instanceof ClientAdditionalContact) { $signature->setContactOwner($ownerObject); } return $signature; }