Commit ad449b0c authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files
parents 91ee9760 358fe247
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ return [

                // Niveaux de signature disponible
                'levels'      => [
                    \UnicaenSignature\Utils\SignatureConstants::VISA_HIDDEN => 'hidden',
                    \UnicaenSignature\Utils\SignatureConstants::VISA_HIDDEN => 'hiddenVisa',
                    \UnicaenSignature\Utils\SignatureConstants::VISA_VISUAL => 'visa',
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_VISUAL => 'pdfImageStamp',
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_CERTIF => 'certSign',
+1 −1
Original line number Diff line number Diff line
@@ -196,7 +196,7 @@ return [

                // Niveaux de signature disponible
                'levels'      => [
                    \UnicaenSignature\Utils\SignatureConstants::VISA_HIDDEN => 'hidden',
                    \UnicaenSignature\Utils\SignatureConstants::VISA_HIDDEN => 'hiddenVisa',
                    \UnicaenSignature\Utils\SignatureConstants::VISA_VISUAL => 'visa',
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_VISUAL => 'pdfImageStamp',
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_CERTIF => 'certSign',
+46 −0
Original line number Diff line number Diff line
@@ -267,6 +267,7 @@ class ProcessService
                $process->setCurrentStep(1);
                $processStep = $process->getStep();
                $process->setStatus(Signature::STATUS_SIGNATURE_WAIT);
                $process->setLastUpdate(new \DateTime());
                $this->getObjectManager()->flush();
                $this->getObjectManager()->refresh($process);
                $this->getObjectManager()->refresh($processStep);
@@ -296,6 +297,7 @@ class ProcessService

                if ($processStep->getStatus() == Signature::STATUS_SIGNATURE_REJECT) {
                    $process->setStatus(Signature::STATUS_SIGNATURE_REJECT);
                    $process->setLastUpdate(new \DateTime());
                    /** @var SignatureRecipient $recipient */
                    foreach ($processStep->getSignature()->getRecipients() as $recipient) {
                        if ($recipient->getStatus() != Signature::STATUS_SIGNATURE_REJECT) {
@@ -316,6 +318,7 @@ class ProcessService
                    if ($currentStep == $totalSteps) {
                        // FIN du PROCESSUS
                        $process->setStatus(Signature::STATUS_SIGNATURE_SIGNED);
                        $process->setLastUpdate(new \DateTime());
                        $this->getObjectManager()->flush();
                        $this->triggerProcessEvent($process, ProcessEvent::EVENT_TYPE_SIGNED);
                        return;
@@ -323,6 +326,7 @@ class ProcessService
                    else {
                        // PASSAGE à l'ETAPE SUIVANTE
                        $process->setCurrentStep($process->getCurrentStep() + 1);
                        $process->setLastUpdate(new \DateTime());
                        $this->getObjectManager()->flush();
                        $this->trigger($process);
                    }
@@ -345,6 +349,48 @@ class ProcessService
        }
    }

    /**
     * Méthode qui renvoie une synthèse des infos process de signature pour affichage
     *
     * @param Process $process
     * @return array
    */
    public function getInfosProcess(Process $process): array
    {
        $infosProcess = [];
        foreach ($process->getSteps() as $keyStep => $step) {
            if ($step->getStatus() == Signature::STATUS_SIGNATURE_SIGNED ||
                $step->getStatus() == Signature::STATUS_SIGNATURE_WAIT) {
                $infosProcess[$keyStep] = $step->toArray();

                if ($step->getStatus() == Signature::STATUS_SIGNATURE_SIGNED) {
                    $labelInfo     = 'signé par ';
                    $recipient     = current($infosProcess[$keyStep]['recipients']);
                    $dateSignature = new \DateTime($recipient['dateFinished']);
                    $labelInfo     .= $recipient['fullname'] . ' le ' . $dateSignature->format('d/m/Y');

                    $infosProcess[$keyStep]['labelInfos'] = $labelInfo;
                    $signature = $step->getSignature();
                    $recipients = $signature->getRecipients();
                    foreach($recipients as $recipient) {
                        $urlDocumentSigned = $recipient->getUrlDocument();
                        break;
                    }
                    $infosProcess[$keyStep]['urlDocumentSigned'] = $urlDocumentSigned;

                }
                if ($step->getStatus() == Signature::STATUS_SIGNATURE_WAIT) {
                    $labelInfo                                           = 'en attente de signature';
                    $infosProcess[$keyStep]['labelInfos'] = $labelInfo;
                }
            }

        }

        return $infosProcess;

    }

    /**
     * @param Process $process
     * @param string $eventType
+1 −0
Original line number Diff line number Diff line
@@ -310,6 +310,7 @@ class SignatureService
            }
            else {
                $optionsStep = $step->getOptions();
                $recipients = [];
                if(array_key_exists('recipients', $optionsStep))
                {
                    $recipients = $step->getOptions()['recipients'];