diff --git a/CRM/Core/BAO/ActionSchedule.php b/CRM/Core/BAO/ActionSchedule.php index 7c20e8ff6e1f19624086d4d0d923acfb871d9c82..55a4eac0e1e7818d57cae078ad7cf2a7fe486a05 100755 --- a/CRM/Core/BAO/ActionSchedule.php +++ b/CRM/Core/BAO/ActionSchedule.php @@ -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();