Ejemplo n.º 1
0
 /**
  * @param array $testParams
  */
 public function queue($testParams = NULL)
 {
     $mailing = new CRM_Mailing_BAO_Mailing();
     $mailing->id = $this->mailing_id;
     if (!empty($testParams)) {
         $mailing->getTestRecipients($testParams);
     } else {
         // We are still getting all the recipients from the parent job
         // so we don't mess with the include/exclude logic.
         $recipients = CRM_Mailing_BAO_Recipients::mailingQuery($this->mailing_id, $this->job_offset, $this->job_limit);
         // FIXME: this is not very smart, we should move this to one DB call
         // INSERT INTO ... SELECT FROM ..
         // the thing we need to figure out is how to generate the hash automatically
         $now = time();
         $params = array();
         $count = 0;
         while ($recipients->fetch()) {
             if ($recipients->phone_id) {
                 $recipients->email_id = "null";
             } else {
                 $recipients->phone_id = "null";
             }
             $params[] = array($this->id, $recipients->email_id, $recipients->contact_id, $recipients->phone_id);
             $count++;
             if ($count % CRM_Core_DAO::BULK_MAIL_INSERT_COUNT == 0) {
                 CRM_Mailing_Event_BAO_Queue::bulkCreate($params, $now);
                 $count = 0;
                 $params = array();
             }
         }
         if (!empty($params)) {
             CRM_Mailing_Event_BAO_Queue::bulkCreate($params, $now);
         }
     }
 }
Ejemplo n.º 2
0
 public function queue($testParams = null)
 {
     require_once 'CRM/Mailing/BAO/Mailing.php';
     $mailing = new CRM_Mailing_BAO_Mailing();
     $mailing->id = $this->mailing_id;
     if (!empty($testParams)) {
         $mailing->getTestRecipients($testParams);
     } else {
         // We are still getting all the recipients from the parent job
         // (The original so we don't mess with the include/exclude) logic
         $recipients = $mailing->getRecipientsObject($this->parent_id, false, $this->job_offset, $this->job_limit);
         // Here we will use the parent jobid to fetch the receipents, except
         // We will introduce the limit and offset from the child job DAO object
         // To only pick up segment of the receipents instead of the whole
         while ($recipients->fetch()) {
             $params = array('job_id' => $this->id, 'email_id' => $recipients->email_id, 'contact_id' => $recipients->contact_id);
             CRM_Mailing_Event_BAO_Queue::create($params);
         }
     }
 }