bundles/Insign/FormDataBundle/Event/WorkflowUpdateEvents.php line 37

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright insign gmbh. All rights reserved.
  4.  * See COPYING.txt for license details.
  5.  */
  6. declare(strict_types=1);
  7. namespace Insign\FormDataBundle\Event;
  8. use Pimcore\Model\Asset;
  9. use Pimcore\Model\DataObject;
  10. use Pimcore\Model\DataObject\Krankheitsmeldung;
  11. use Pimcore\Tool\Admin;
  12. class WorkflowUpdateEvents extends FormDataSavedListener
  13. {
  14.     const WORKFLOW_LOG_FOLDER 'workflowLog';
  15.     /**
  16.      * This event trigger email sending when Certfificate going to expire in x dayss
  17.      * @param $event
  18.      * @return void
  19.      */
  20.     public function onReminderMedicalCertfificateGoingToExpire($event)
  21.     {
  22.         $data $event->getData();
  23.         $template '@InsignFormData/email/workflow/reminder_medical_certificate_going_expire.html.twig';
  24.         $this->sendReminderEmails($data$template);
  25.     }
  26.     /**
  27.      * This email is triggered when certificate is already expired.
  28.      * Template: reminder_medical_certificate_expire.html.twig
  29.      * @param $event
  30.      * @return void
  31.      */
  32.     public function onReminderMedicalCertfificateExpired($event)
  33.     {
  34.         $data $event->getData();
  35.         $template '@InsignFormData/email/workflow/reminder_medical_certificate_expired.html.twig';
  36.         $this->sendReminderEmails($data$template);
  37.     }
  38.     private function sendReminderEmails(array $datastring $template)
  39.     {
  40.         $uuid $data ['uuid'] ?? '';
  41.         $validUntil $data ['validUntil'] ?? '';
  42.         $updateUntil $data ['updateUntil'] ?? '';
  43.         /** @var Krankheitsmeldung $sickness */
  44.         $sickness $data ['sickness'];
  45.         $name $sickness->getNachname_erkrankte_Person().' '$sickness->getVorname_erkrankte_Person();
  46.         $email $sickness->getE_Mail_zustaendige_Person();
  47.         $url sprintf("%s%s%s"$this->encryption->getReactFormUrl(), 'auth/'$uuid);
  48.         $parameters = [
  49.             'uuid'=>$uuid,
  50.             'name'=>$name,
  51.             'validUntil' => $validUntil,
  52.             'updateUntil' => $updateUntil,
  53.             'update_url' => $url
  54.         ];
  55.         $subject $name// it might be change
  56.         $emailBody $this->mailer->getBody($template$parameters);
  57.         $mailer $this->mailer->getEmailObject();
  58.         $mailer->from($this->mailer->getFromEmailWorkflow())
  59.             ->subject($subject)
  60.             ->to($email)
  61.             ->html($emailBody);
  62.         try {
  63.             $mailer->send();
  64.         } catch (\Exception $e) {
  65.             $this->logger->error($e->getMessage());
  66.         }
  67.     }
  68. }