/**
  * Update document and document owner signatures
  *
  * @param string $envelopeId
  * @param DocumentSignature[] $signatures
  * @return DocumentSignature
  */
 public function updateDocumentSignaturesStatusByEnvelopeId($envelopeId, array $signatures)
 {
     $status = $this->docusignApi->getEnvelopeStatus($envelopeId);
     $recipientsStatuses = $this->docusignApi->getEnvelopeRecipientsStatuses($envelopeId);
     foreach ($signatures as $signature) {
         $signatureEnvelopeId = $signature->getDocusignEnvelopeId();
         if (!$signatureEnvelopeId || $signatureEnvelopeId != $envelopeId) {
             continue;
         }
         $signature->setStatus($status);
         foreach ($recipientsStatuses as $recipientEmail => $recipientStatus) {
             $ownerSignature = $this->signatureManager->findOneOwnerSignatureByDocumentSignatureIdAndOwnerEmail($signature->getId(), $recipientEmail);
             if ($ownerSignature) {
                 $ownerSignature->setStatus($recipientStatus);
                 $this->signatureManager->persist($ownerSignature);
             }
         }
         $this->signatureManager->persist($signature);
         $this->signatureManager->flush();
     }
     return $status;
 }