Loading src/Controller/SignatureController.php +3 −2 Original line number Diff line number Diff line Loading @@ -53,13 +53,14 @@ class SignatureController extends AbstractActionController public function myDocumentsAction(): ViewModel { try { return new ViewModel([ $datas = [ 'signatureRecipients' => $this->getSignatureService() ->getSignaturesRecipientsByEmail( $this->getSignatureService()->getSignatureConfigurationService( )->getCurrentUserMail() ), ]); ]; return new ViewModel($datas); } catch (Exception $e) { $this->flash()->addErrorMessage($e->getMessage()); return new ViewModel(['signatures' => []]); Loading src/Entity/Repository/SignatureRecipientRepository.php +35 −11 Original line number Diff line number Diff line Loading @@ -12,16 +12,40 @@ class SignatureRecipientRepository extends EntityRepository */ public function getForEmail(string $email) :array { $status = [Signature::STATUS_SIGNATURE_WAIT,Signature::STATUS_SIGNATURE_SIGNED,Signature::STATUS_SIGNATURE_REJECT]; return $this->createQueryBuilder('sr') ->leftJoin( 'sr.signature', 's') ->where('sr.status IN(:status) AND sr.email = :email') ->setParameters([ 'status' => $status, 'email' => $email, ]) ->getQuery() ->getResult(); return $this->getRecipientSignatures( $email, [Signature::STATUS_SIGNATURE_WAIT,Signature::STATUS_SIGNATURE_SIGNED,Signature::STATUS_SIGNATURE_REJECT] ); } /** * @return Signature[] */ public function getRecipientSignatures(string|null $email = null, array|null $status = null, string|null $letterfile = null ) :array { $params = []; $qb = $this->createQueryBuilder('sr') ->leftJoin( 'sr.signature', 's'); if( $email ){ $qb->andWhere('sr.email = :email'); $params['email'] = $email; } if( $status ){ $qb->andWhere('sr.status IN (:status)'); $params['status'] = $status; } if( $letterfile ){ $qb->andWhere('s.letterfile_key = :letterfile'); $params['letterfile'] = $letterfile; } if( $params ){ $qb->setParameters($params); } return $qb->getQuery()->getResult(); } } No newline at end of file src/Entity/Repository/SignatureRepository.php +30 −0 Original line number Diff line number Diff line Loading @@ -37,4 +37,34 @@ class SignatureRepository extends EntityRepository ->getQuery() ->getResult(); } public function getSignatures(string|null $recipient_mail = null, string|null $letterfile = null, array|null $status = []) { $params = []; $qb = $this->createQueryBuilder('s') ->leftJoin('s.recipients', 'r'); if( $recipient_mail ){ $qb->where('r.email = :recipient_mail'); $params['recipient_mail'] = $recipient_mail; } if( $letterfile ){ $qb->where('s.letterfile_key = :letterfile_key'); $params['letterfile_key'] = $letterfile; } if( $status ){ $qb->where('s.status IN (status)'); $params['status'] = $status; } if( $params ){ $qb->setParameters($params); } $qb->orderBy('s.dateUpdate', 'DESC') ->getQuery(); return $qb->getResult(); } } No newline at end of file src/Service/InternalLetterfileService.php +16 −1 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace UnicaenSignature\Service; use DoctrineModule\Persistence\ProvidesObjectManager; use UnicaenSignature\Entity\Db\Signature; use UnicaenSignature\Entity\Db\SignatureRecipient; use UnicaenSignature\Entity\Repository\SignatureRepository; use UnicaenSignature\Utils\SignatureException; class InternalLetterfileService Loading @@ -16,19 +17,33 @@ class InternalLetterfileService SignatureConfigurationServiceAwareTrait, SignatureServiceAwareTrait; /** * @return SignatureRepository */ protected function getSignatureRepository() :SignatureRepository { return $this->getObjectManager()->getRepository(Signature::class); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * @return Signature[] */ public function getSignaturesInternal() :array public function getSignaturesInternal( string $userEmail ) :array { return []; } /** * Retourne les documents à viser dans le parapheur interne. * * @param string $user_mail * @return array */ public function getDocumentsUser(string $user_mail) :array { $email = $this->getSignatureConfigurationService()->getCurrentUserMail(); $signatures = $this->getSignatureRepository()->getSignaturesInternal($user_mail, 'internal'); } /** Loading src/Service/SignatureService.php +47 −3 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ use UnicaenSignature\Entity\Db\SignatureFlowStep; use UnicaenSignature\Entity\Db\SignatureRecipient; use UnicaenSignature\Entity\Repository\ProcessRepository; use UnicaenSignature\Entity\Repository\SignatureFlowRepository; use UnicaenSignature\Entity\Repository\SignatureRecipientRepository; use UnicaenSignature\Entity\Repository\SignatureRepository; use UnicaenSignature\Event\SignatureEvent; use UnicaenSignature\Formatter\ObjectFormatter; Loading Loading @@ -49,6 +50,12 @@ class SignatureService return $this->getObjectManager()->getRepository(Process::class); } protected function getSignatureRecipientRepository(): SignatureRecipientRepository { return $this->getObjectManager() ->getRepository(SignatureRecipient::class); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// LISTES Loading Loading @@ -123,9 +130,33 @@ class SignatureService public function getSignaturesRecipientsByEmail(?string $email): array { if ($email) { return $this->getObjectManager() ->getRepository(SignatureRecipient::class) ->getForEmail($email); return $this->getSignatureRecipientRepository()->getRecipientSignatures( $email, [ Signature::STATUS_SIGNATURE_WAIT, Signature::STATUS_SIGNATURE_SIGNED, Signature::STATUS_SIGNATURE_REJECT ] ); } throw new SignatureException("Impossible de charger vos documents"); } /** * @param string|null $email * @return SignatureRecipient[] */ public function getSignaturesRecipientsByEmailWaiting(?string $email, string|null $letterfile = null): array { if ($email) { $this->getLoggerService()->debug("Get with letterfile '$letterfile'"); return $this->getSignatureRecipientRepository()->getRecipientSignatures( $email, [ Signature::STATUS_SIGNATURE_WAIT ], $letterfile ); } throw new SignatureException("Impossible de charger vos documents"); } Loading Loading @@ -211,10 +242,13 @@ class SignatureService 'id' => $signatureFlow->getId(), 'label' => $signatureFlow->getLabel(), 'description' => $signatureFlow->getDescription(), //'missing_recipients' => false, 'doc_url' => $urlDocPreview, 'steps' => [] ]; $missing_recipients = false; $letterfiles = $this->getSignatureConfigurationService()->getLetterFiles(); Loading @@ -237,6 +271,7 @@ class SignatureService $currentStep['level_in_letterfile'] = $levels[$step->getLevel()]['key_in_letterfile']; $currentStep['allSignToComplete'] = true; $currentStep['editable'] = false; $currentStep['missing_recipients'] = false; $currentStep['dynamicRecipients'] = is_callable($method['getRecipients']); $currentStep['recipients'] = []; Loading @@ -249,8 +284,17 @@ class SignatureService $currentStep['recipients'] = $step->getOptions()['recipients']; } if (count($currentStep['recipients']) == 0) { $missing_recipients = true; $currentStep['missing_recipients'] = true; } $out['signatureflow']['steps'][] = $currentStep; } $out['signatureflow']['missing_recipients'] = $missing_recipients; return $out; } Loading Loading
src/Controller/SignatureController.php +3 −2 Original line number Diff line number Diff line Loading @@ -53,13 +53,14 @@ class SignatureController extends AbstractActionController public function myDocumentsAction(): ViewModel { try { return new ViewModel([ $datas = [ 'signatureRecipients' => $this->getSignatureService() ->getSignaturesRecipientsByEmail( $this->getSignatureService()->getSignatureConfigurationService( )->getCurrentUserMail() ), ]); ]; return new ViewModel($datas); } catch (Exception $e) { $this->flash()->addErrorMessage($e->getMessage()); return new ViewModel(['signatures' => []]); Loading
src/Entity/Repository/SignatureRecipientRepository.php +35 −11 Original line number Diff line number Diff line Loading @@ -12,16 +12,40 @@ class SignatureRecipientRepository extends EntityRepository */ public function getForEmail(string $email) :array { $status = [Signature::STATUS_SIGNATURE_WAIT,Signature::STATUS_SIGNATURE_SIGNED,Signature::STATUS_SIGNATURE_REJECT]; return $this->createQueryBuilder('sr') ->leftJoin( 'sr.signature', 's') ->where('sr.status IN(:status) AND sr.email = :email') ->setParameters([ 'status' => $status, 'email' => $email, ]) ->getQuery() ->getResult(); return $this->getRecipientSignatures( $email, [Signature::STATUS_SIGNATURE_WAIT,Signature::STATUS_SIGNATURE_SIGNED,Signature::STATUS_SIGNATURE_REJECT] ); } /** * @return Signature[] */ public function getRecipientSignatures(string|null $email = null, array|null $status = null, string|null $letterfile = null ) :array { $params = []; $qb = $this->createQueryBuilder('sr') ->leftJoin( 'sr.signature', 's'); if( $email ){ $qb->andWhere('sr.email = :email'); $params['email'] = $email; } if( $status ){ $qb->andWhere('sr.status IN (:status)'); $params['status'] = $status; } if( $letterfile ){ $qb->andWhere('s.letterfile_key = :letterfile'); $params['letterfile'] = $letterfile; } if( $params ){ $qb->setParameters($params); } return $qb->getQuery()->getResult(); } } No newline at end of file
src/Entity/Repository/SignatureRepository.php +30 −0 Original line number Diff line number Diff line Loading @@ -37,4 +37,34 @@ class SignatureRepository extends EntityRepository ->getQuery() ->getResult(); } public function getSignatures(string|null $recipient_mail = null, string|null $letterfile = null, array|null $status = []) { $params = []; $qb = $this->createQueryBuilder('s') ->leftJoin('s.recipients', 'r'); if( $recipient_mail ){ $qb->where('r.email = :recipient_mail'); $params['recipient_mail'] = $recipient_mail; } if( $letterfile ){ $qb->where('s.letterfile_key = :letterfile_key'); $params['letterfile_key'] = $letterfile; } if( $status ){ $qb->where('s.status IN (status)'); $params['status'] = $status; } if( $params ){ $qb->setParameters($params); } $qb->orderBy('s.dateUpdate', 'DESC') ->getQuery(); return $qb->getResult(); } } No newline at end of file
src/Service/InternalLetterfileService.php +16 −1 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace UnicaenSignature\Service; use DoctrineModule\Persistence\ProvidesObjectManager; use UnicaenSignature\Entity\Db\Signature; use UnicaenSignature\Entity\Db\SignatureRecipient; use UnicaenSignature\Entity\Repository\SignatureRepository; use UnicaenSignature\Utils\SignatureException; class InternalLetterfileService Loading @@ -16,19 +17,33 @@ class InternalLetterfileService SignatureConfigurationServiceAwareTrait, SignatureServiceAwareTrait; /** * @return SignatureRepository */ protected function getSignatureRepository() :SignatureRepository { return $this->getObjectManager()->getRepository(Signature::class); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * @return Signature[] */ public function getSignaturesInternal() :array public function getSignaturesInternal( string $userEmail ) :array { return []; } /** * Retourne les documents à viser dans le parapheur interne. * * @param string $user_mail * @return array */ public function getDocumentsUser(string $user_mail) :array { $email = $this->getSignatureConfigurationService()->getCurrentUserMail(); $signatures = $this->getSignatureRepository()->getSignaturesInternal($user_mail, 'internal'); } /** Loading
src/Service/SignatureService.php +47 −3 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ use UnicaenSignature\Entity\Db\SignatureFlowStep; use UnicaenSignature\Entity\Db\SignatureRecipient; use UnicaenSignature\Entity\Repository\ProcessRepository; use UnicaenSignature\Entity\Repository\SignatureFlowRepository; use UnicaenSignature\Entity\Repository\SignatureRecipientRepository; use UnicaenSignature\Entity\Repository\SignatureRepository; use UnicaenSignature\Event\SignatureEvent; use UnicaenSignature\Formatter\ObjectFormatter; Loading Loading @@ -49,6 +50,12 @@ class SignatureService return $this->getObjectManager()->getRepository(Process::class); } protected function getSignatureRecipientRepository(): SignatureRecipientRepository { return $this->getObjectManager() ->getRepository(SignatureRecipient::class); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// LISTES Loading Loading @@ -123,9 +130,33 @@ class SignatureService public function getSignaturesRecipientsByEmail(?string $email): array { if ($email) { return $this->getObjectManager() ->getRepository(SignatureRecipient::class) ->getForEmail($email); return $this->getSignatureRecipientRepository()->getRecipientSignatures( $email, [ Signature::STATUS_SIGNATURE_WAIT, Signature::STATUS_SIGNATURE_SIGNED, Signature::STATUS_SIGNATURE_REJECT ] ); } throw new SignatureException("Impossible de charger vos documents"); } /** * @param string|null $email * @return SignatureRecipient[] */ public function getSignaturesRecipientsByEmailWaiting(?string $email, string|null $letterfile = null): array { if ($email) { $this->getLoggerService()->debug("Get with letterfile '$letterfile'"); return $this->getSignatureRecipientRepository()->getRecipientSignatures( $email, [ Signature::STATUS_SIGNATURE_WAIT ], $letterfile ); } throw new SignatureException("Impossible de charger vos documents"); } Loading Loading @@ -211,10 +242,13 @@ class SignatureService 'id' => $signatureFlow->getId(), 'label' => $signatureFlow->getLabel(), 'description' => $signatureFlow->getDescription(), //'missing_recipients' => false, 'doc_url' => $urlDocPreview, 'steps' => [] ]; $missing_recipients = false; $letterfiles = $this->getSignatureConfigurationService()->getLetterFiles(); Loading @@ -237,6 +271,7 @@ class SignatureService $currentStep['level_in_letterfile'] = $levels[$step->getLevel()]['key_in_letterfile']; $currentStep['allSignToComplete'] = true; $currentStep['editable'] = false; $currentStep['missing_recipients'] = false; $currentStep['dynamicRecipients'] = is_callable($method['getRecipients']); $currentStep['recipients'] = []; Loading @@ -249,8 +284,17 @@ class SignatureService $currentStep['recipients'] = $step->getOptions()['recipients']; } if (count($currentStep['recipients']) == 0) { $missing_recipients = true; $currentStep['missing_recipients'] = true; } $out['signatureflow']['steps'][] = $currentStep; } $out['signatureflow']['missing_recipients'] = $missing_recipients; return $out; } Loading