예제 #1
0
<?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();
}
예제 #2
0
 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();
             }
         }
     }
 }
예제 #3
0
 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;
 }