CRM-12219
authoryashodha <yashodha.chaku@webaccess.co.in>
Tue, 2 Apr 2013 13:42:48 +0000 (19:12 +0530)
committeryashodha <yashodha.chaku@webaccess.co.in>
Tue, 2 Apr 2013 13:43:19 +0000 (19:13 +0530)
CRM/Core/BAO/ActionSchedule.php

index 7c20e8ff6e1f19624086d4d0d923acfb871d9c82..55a4eac0e1e7818d57cae078ad7cf2a7fe486a05 100755 (executable)
@@ -750,7 +750,7 @@ WHERE reminder.action_schedule_id = %1 AND reminder.action_date_time IS NULL
       $from = "{$mapping->entity} e";
 
       if ($mapping->entity == 'civicrm_activity') {
-        switch ($recipientOptions[$actionSchedule->recipient]) {
+        switch (CRM_Utils_Array::value($actionSchedule->recipient, $recipientOptions)) {
           case 'Activity Assignees':
             $contactField = 'r.assignee_contact_id';
             $join[] = 'INNER JOIN civicrm_activity_assignment r ON  r.activity_id = e.id';
@@ -841,8 +841,14 @@ WHERE reminder.action_schedule_id = %1 AND reminder.action_date_time IS NULL
           $where[] = "e.membership_type_id IS NULL";
         }
 
+        $where[] = "e.is_override IS NULL OR e.is_override = 0";
         $dateField = str_replace('membership_', 'e.', $actionSchedule->start_action_date);
         $notINClause = self::permissionedRelationships($contactField);
+        
+        $memershipStatus = CRM_Member_PseudoConstant::membershipStatus(NULL, "is_current_member = 1", 'id');
+        $mStatus = implode (',', $memershipStatus);
+        $where[] = "e.status_id IN ({$mStatus})";
+
       }
 
       if ($actionSchedule->group_id) {
@@ -863,8 +869,7 @@ reminder.entity_id          = e.id AND
 reminder.entity_table       = '{$mapping->entity}' AND
 reminder.action_schedule_id = %1";
 
-      $join[] = "INNER JOIN civicrm_contact c ON c.id = {$contactField}";
-      $where[] = 'c.is_deleted = 0';
+      $join[] = "INNER JOIN civicrm_contact c ON c.id = {$contactField} AND c.is_deleted = 0 AND c.is_deceased = 0 ";
 
       if ($actionSchedule->start_action_date) {
         $startDateClause   = array();