<?php // add in some reminder recipients for every task reminder that is missing recipients $q = "SELECT reminder.reminderID\n ,reminder.reminderSubject\n ,COUNT(reminderRecipient.reminderRecipientID)\n FROM reminder\n LEFT JOIN reminderRecipient ON reminder.reminderID = reminderRecipient.reminderID\n WHERE reminder.reminderActive = 1\n AND reminder.reminderSubject like '%reopen%'\n GROUP BY reminder.reminderID\n HAVING COUNT(reminderRecipient.reminderRecipientID) = 0"; $db = new db_alloc(); $db->query($q); while ($row = $db->row()) { $reminderRecipient = new reminderRecipient(); $reminderRecipient->set_value("reminderID", $row["reminderID"]); $reminderRecipient->set_value("metaPersonID", -2); $reminderRecipient->save(); $reminderRecipient = new reminderRecipient(); $reminderRecipient->set_value("reminderID", $row["reminderID"]); $reminderRecipient->set_value("metaPersonID", -3); $reminderRecipient->save(); }
function add_notification($tokenActionID, $maxUsed, $name, $desc, $recipients, $datetime = false) { $current_user =& singleton("current_user"); $token = new token(); $token->set_value("tokenEntity", "task"); $token->set_value("tokenEntityID", $this->get_id()); $token->set_value("tokenActionID", $tokenActionID); $token->set_value("tokenActive", 1); $token->set_value("tokenMaxUsed", $maxUsed); $token->set_value("tokenCreatedBy", $current_user->get_id()); $token->set_value("tokenCreatedDate", date("Y-m-d H:i:s")); $hash = $token->generate_hash(); $token->set_value("tokenHash", $hash); $token->save(); if ($token->get_id()) { $reminder = new reminder(); $reminder->set_value("reminderType", "task"); $reminder->set_value("reminderLinkID", $this->get_id()); $reminder->set_value("reminderHash", $hash); $reminder->set_value("reminderSubject", $name); $reminder->set_value("reminderContent", $desc); if ($datetime) { $reminder->set_value("reminderTime", $datetime); } $reminder->save(); if ($reminder->get_id()) { foreach ($recipients as $row) { $reminderRecipient = new reminderRecipient(); $reminderRecipient->set_value("reminderID", $reminder->get_id()); $reminderRecipient->set_value($row["field"], $row["who"]); $reminderRecipient->save(); } } } }
function update_recipients($recipients) { $db = new db_alloc(); $query = "DELETE FROM reminderRecipient WHERE reminderID = %d"; $db->query($query, $this->get_id()); foreach ((array) $recipients as $r) { $recipient = new reminderRecipient(); $recipient->set_value('reminderID', $this->get_id()); if ($r < 0) { $recipient->set_value('metaPersonID', $r); $recipient->set_value('personID', null); } else { $recipient->set_value('personID', $r); } $recipient->save(); } return; }