Loading config/module.config.php +2 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,8 @@ return [ 'stdout' => false ], 'recall_days' => 4, 'vite_mode' => 'prod', 'documents_path' => '/tmp', Loading src/Command/SignatureUpdateAllSimpleSignatureCommand.php +10 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace UnicaenSignature\Command; use Laminas\ServiceManager\ServiceManager; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use UnicaenSignature\Entity\Db\Signature; Loading @@ -14,6 +15,7 @@ class SignatureUpdateAllSimpleSignatureCommand extends SignatureCommandAbstract protected function configure() { $this ->addOption('dateref', 'd', InputOption::VALUE_OPTIONAL, 'Date de référence') ->setDescription("Actualise l'état des signatures"); } Loading Loading @@ -46,10 +48,18 @@ class SignatureUpdateAllSimpleSignatureCommand extends SignatureCommandAbstract $row[] = $msg; $rows[] = $row; } $dateRef = $input->getOption('dateref'); $date = new \DateTime(); if( $dateRef ){ $date = new \DateTime($dateRef); } if( $rows ){ $io->table($headers, $rows); } $this->getSignatureService()->recallSignatures($date); return self::SUCCESS; } Loading src/Entity/Db/Signature.php +19 −1 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ class Signature /** * @var string|null * @ORM\Column(type="string", nullable=true) * @ORM\Column(type="text", nullable=true) */ private ?string $description; Loading Loading @@ -148,6 +148,14 @@ class Signature */ private ?DateTime $dateUpdate; /** * Date du dernier rappel * * @var ?DateTime * @ORM\Column(type="datetime", nullable=true) */ private ?DateTime $dateRecall; /** * @var string * @ORM\Column (type="string", nullable=false) Loading Loading @@ -781,4 +789,14 @@ class Signature { return implode(', ', $this->getValidatedBy()); } public function getDateRecall(): ?DateTime { return $this->dateRecall; } public function setDateRecall(?DateTime $dateRecall): void { $this->dateRecall = $dateRecall; } } No newline at end of file src/Service/SignatureConfigurationService.php +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ class SignatureConfigurationService return $this->configuration->getConfiguration('unicaen-signature.documents_mimes'); } public function getRecallDays() :int { return $this->configuration->getConfiguration('unicaen-signature.recall_days'); } public function getLoggerConfiguration(): array { return $this->configuration->getConfiguration('unicaen-signature.logger'); Loading src/Service/SignatureService.php +31 −0 Original line number Diff line number Diff line Loading @@ -734,6 +734,37 @@ class SignatureService return false; } public function recallSignatures(\DateTime $dateRef = new \DateTime()) :void { $days_beetween_recalls = $this->getSignatureConfigurationService()->getRecallDays(); if( $days_beetween_recalls <= 0 ){ return; } $signatures = $this->getSignatureRepository()->getSignaturesUpdatable(); /** @var Signature $signature */ foreach ($signatures as $signature) { $from = $signature->getDateRecall() ? $signature->getDateRecall() : $signature->getDateCreated(); $daysSinceLastRecall = $dateRef->diff($from)->days; if( $daysSinceLastRecall >= $days_beetween_recalls ){ $this->recallSignature($signature); } } } public function recallSignature(Signature $signature) :void { echo " #### $signature \n"; foreach ($signature->getRecipients() as $recipient) { if( !$recipient->isDone() ){ $this->notificationRecipientSend($recipient); } } $signature->setDateRecall(new \DateTime()); $this->getObjectManager()->persist($signature); $this->getObjectManager()->flush(); } public function observersNotifications(array $events): void { } Loading Loading
config/module.config.php +2 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,8 @@ return [ 'stdout' => false ], 'recall_days' => 4, 'vite_mode' => 'prod', 'documents_path' => '/tmp', Loading
src/Command/SignatureUpdateAllSimpleSignatureCommand.php +10 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace UnicaenSignature\Command; use Laminas\ServiceManager\ServiceManager; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use UnicaenSignature\Entity\Db\Signature; Loading @@ -14,6 +15,7 @@ class SignatureUpdateAllSimpleSignatureCommand extends SignatureCommandAbstract protected function configure() { $this ->addOption('dateref', 'd', InputOption::VALUE_OPTIONAL, 'Date de référence') ->setDescription("Actualise l'état des signatures"); } Loading Loading @@ -46,10 +48,18 @@ class SignatureUpdateAllSimpleSignatureCommand extends SignatureCommandAbstract $row[] = $msg; $rows[] = $row; } $dateRef = $input->getOption('dateref'); $date = new \DateTime(); if( $dateRef ){ $date = new \DateTime($dateRef); } if( $rows ){ $io->table($headers, $rows); } $this->getSignatureService()->recallSignatures($date); return self::SUCCESS; } Loading
src/Entity/Db/Signature.php +19 −1 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ class Signature /** * @var string|null * @ORM\Column(type="string", nullable=true) * @ORM\Column(type="text", nullable=true) */ private ?string $description; Loading Loading @@ -148,6 +148,14 @@ class Signature */ private ?DateTime $dateUpdate; /** * Date du dernier rappel * * @var ?DateTime * @ORM\Column(type="datetime", nullable=true) */ private ?DateTime $dateRecall; /** * @var string * @ORM\Column (type="string", nullable=false) Loading Loading @@ -781,4 +789,14 @@ class Signature { return implode(', ', $this->getValidatedBy()); } public function getDateRecall(): ?DateTime { return $this->dateRecall; } public function setDateRecall(?DateTime $dateRecall): void { $this->dateRecall = $dateRecall; } } No newline at end of file
src/Service/SignatureConfigurationService.php +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ class SignatureConfigurationService return $this->configuration->getConfiguration('unicaen-signature.documents_mimes'); } public function getRecallDays() :int { return $this->configuration->getConfiguration('unicaen-signature.recall_days'); } public function getLoggerConfiguration(): array { return $this->configuration->getConfiguration('unicaen-signature.logger'); Loading
src/Service/SignatureService.php +31 −0 Original line number Diff line number Diff line Loading @@ -734,6 +734,37 @@ class SignatureService return false; } public function recallSignatures(\DateTime $dateRef = new \DateTime()) :void { $days_beetween_recalls = $this->getSignatureConfigurationService()->getRecallDays(); if( $days_beetween_recalls <= 0 ){ return; } $signatures = $this->getSignatureRepository()->getSignaturesUpdatable(); /** @var Signature $signature */ foreach ($signatures as $signature) { $from = $signature->getDateRecall() ? $signature->getDateRecall() : $signature->getDateCreated(); $daysSinceLastRecall = $dateRef->diff($from)->days; if( $daysSinceLastRecall >= $days_beetween_recalls ){ $this->recallSignature($signature); } } } public function recallSignature(Signature $signature) :void { echo " #### $signature \n"; foreach ($signature->getRecipients() as $recipient) { if( !$recipient->isDone() ){ $this->notificationRecipientSend($recipient); } } $signature->setDateRecall(new \DateTime()); $this->getObjectManager()->persist($signature); $this->getObjectManager()->flush(); } public function observersNotifications(array $events): void { } Loading