Merge pull request #4700 from monishdeb/CRM-15709
[civicrm-core.git] / CRM / Mailing / BAO / MailingJob.php
index 22524f715262a89ae3c728064e7c7d7b7287a563..0cc08404c3cc56389c0315a4de0a2ccf7c334c6c 100644 (file)
@@ -42,14 +42,14 @@ class CRM_Mailing_BAO_MailingJob extends CRM_Mailing_DAO_MailingJob {
   CONST MAX_CONTACTS_TO_PROCESS = 1000;
 
   /**
-   * class constructor
+   * Class constructor
    */
   function __construct() {
     parent::__construct();
   }
 
   /**
-   * @param $params
+   * @param array $params
    *
    * @return CRM_Mailing_BAO_MailingJob
    */
@@ -68,7 +68,7 @@ class CRM_Mailing_BAO_MailingJob extends CRM_Mailing_DAO_MailingJob {
   /**
    * Initiate all pending/ready jobs
    *
-   * @param null $testParams
+   * @param array $testParams
    * @param null $mode
    *
    * @return void
@@ -421,7 +421,7 @@ VALUES (%1, %2, %3, %4, %5, %6, %7)
   }
 
   /**
-   * @param null $testParams
+   * @param array $testParams
    */
   public function queue($testParams = NULL) {
     $mailing = new CRM_Mailing_BAO_Mailing();
@@ -473,7 +473,7 @@ VALUES (%1, %2, %3, %4, %5, %6, %7)
    *
    * @param object $mailer A Mail object to send the messages
    *
-   * @param null $testParams
+   * @param array $testParams
    *
    * @return void
    * @access public
@@ -626,6 +626,15 @@ VALUES (%1, %2, %3, %4, %5, %6, %7)
     $returnProperties = $mailing->getReturnProperties();
     $params           = $targetParams = $deliveredParams = array();
     $count            = 0;
+    
+    /**
+     * CRM-15702: Sending bulk sms to contacts without e-mail addres fails.
+     * Solution is to skip checking for on hold
+     */
+    $skipOnHold = true; //do include a statement to check wether e-mail address is on hold
+    if ($mailing->sms_provider_id) {
+      $skipOnHold = false; //do not include a statement to check wether e-mail address is on hold
+    }
 
     foreach ($fields as $key => $field) {
       $params[] = $field['contact_id'];
@@ -634,7 +643,7 @@ VALUES (%1, %2, %3, %4, %5, %6, %7)
     $details = CRM_Utils_Token::getTokenDetails(
       $params,
       $returnProperties,
-      TRUE, TRUE, NULL,
+      $skipOnHold, TRUE, NULL,
       $mailing->getFlattenedTokens(),
       get_class($this),
       $this->id
@@ -800,7 +809,7 @@ VALUES (%1, %2, %3, %4, %5, %6, %7)
   }
 
   /**
-   * cancel a mailing
+   * Cancel a mailing
    *
    * @param int $mailingId  the id of the mailing to be canceled
    * @static
@@ -893,8 +902,8 @@ AND    status IN ( 'Scheduled', 'Running', 'Paused' )
   }
 
   /**
-   * @param $deliveredParams
-   * @param $targetParams
+   * @param array $deliveredParams
+   * @param array $targetParams
    * @param $mailing
    * @param $job_date
    *