public static final function sendCommunication(Communication $communication, $ignoreTime = false) { Log::debug("Considering to send CommunicationItem with ID: " . $communication->CommunicationID, "COMMS"); $currentDateTime = new RhubarbDateTime("now"); if (CommunicationsModule::isEmailSendingEnabled() && ($ignoreTime || $communication->shouldSendCommunication($currentDateTime))) { if (self::sendItems($communication)) { $communication->markSent(); } else { $communication->Status = Communication::STATUS_FAILED; } $communication->save(); return true; } else { return false; } }
protected function onModelCreated() { parent::onModelCreated(); $this->model->getContentForCommunicationItemEvent->attachHandler(function ($communicationItemId) { if (empty((int) $communicationItemId)) { throw new \InvalidArgumentException('CommunicationItemID is required'); } $communication = new CommunicationItem($communicationItemId); return $communication->Text; }); $this->model->setEmailSendingStatusEvent->attachHandler(function ($status) { if ($status) { CommunicationsModule::enableSendingEmails(); } else { CommunicationsModule::disableSendingEmails(); } }); $this->model->EnableSendingEmails = CommunicationsModule::isEmailSendingEnabled(); }