// Get recipients selected in prior mailings
if (!empty($priorMailingIDs['Include'])) {
CRM_Utils_SQL_Select::from('civicrm_mailing_recipients')
- ->select("contact_id, $entityColumn")
+ ->select("DISTINCT civicrm_mailing_recipients.contact_id, $entityColumn")
+ ->join('temp', " LEFT JOIN $excludeTempTablename temp ON civicrm_mailing_recipients.contact_id = temp.contact_id ")
->where('mailing_id IN (#mailings)')
+ ->where('temp.contact_id IS NULL')
->param('#mailings', $priorMailingIDs['Include'])
->insertIgnoreInto($includedTempTablename, array('contact_id', $entityColumn))
->execute();
->select("$contact.id as contact_id, $entityTable.id as $entityColumn")
->join($entityTable, " INNER JOIN $entityTable ON $entityTable.contact_id = $contact.id ")
->join('gc', " INNER JOIN civicrm_group_contact_cache gc ON $contact.id = gc.contact_id ")
+ ->join('gcr', " LEFT JOIN civicrm_group_contact gcr ON gc.group_id = gcr.group_id AND gc.contact_id = gcr.contact_id")
->join('mg', " INNER JOIN civicrm_mailing_group mg ON gc.group_id = mg.entity_id AND mg.search_id IS NULL ")
->join('temp', " LEFT JOIN $excludeTempTablename temp ON $contact.id = temp.contact_id ")
->where('gc.group_id IN (#groups)')
+ ->where('gcr.status IS NULL OR gcr.status != "Removed"')
->merge($criteria)
->replaceInto($includedTempTablename, array('contact_id', $entityColumn))
->param('#groups', $includeSmartGroupIDs)
*/
private function getHeaderFooter() {
if (!$this->header and $this->header_id) {
- $this->header = new CRM_Mailing_BAO_Component();
+ $this->header = new CRM_Mailing_BAO_MailingComponent();
$this->header->id = $this->header_id;
$this->header->find(TRUE);
$this->header->free();
}
if (!$this->footer and $this->footer_id) {
- $this->footer = new CRM_Mailing_BAO_Component();
+ $this->footer = new CRM_Mailing_BAO_MailingComponent();
$this->footer->id = $this->footer_id;
$this->footer->find(TRUE);
$this->footer->free();
}
if (!Civi::settings()->get('disable_mandatory_tokens_check')) {
- $header = $mailing->header_id && $mailing->header_id != 'null' ? CRM_Mailing_BAO_Component::findById($mailing->header_id) : NULL;
- $footer = $mailing->footer_id && $mailing->footer_id != 'null' ? CRM_Mailing_BAO_Component::findById($mailing->footer_id) : NULL;
+ $header = $mailing->header_id && $mailing->header_id != 'null' ? CRM_Mailing_BAO_MailingComponent::findById($mailing->header_id) : NULL;
+ $footer = $mailing->footer_id && $mailing->footer_id != 'null' ? CRM_Mailing_BAO_MailingComponent::findById($mailing->footer_id) : NULL;
foreach (array('body_html', 'body_text') as $field) {
if (empty($mailing->{$field})) {
continue;
'forward' => CRM_Mailing_Event_BAO_Forward::getTableName(),
'url' => CRM_Mailing_BAO_TrackableURL::getTableName(),
'urlopen' => CRM_Mailing_Event_BAO_TrackableURLOpen::getTableName(),
- 'component' => CRM_Mailing_BAO_Component::getTableName(),
+ 'component' => CRM_Mailing_BAO_MailingComponent::getTableName(),
'spool' => CRM_Mailing_BAO_Spool::getTableName(),
);
if (!$isSMS) {
if ($report['mailing']['header_id']) {
- $header = new CRM_Mailing_BAO_Component();
+ $header = new CRM_Mailing_BAO_MailingComponent();
$header->id = $report['mailing']['header_id'];
$header->find(TRUE);
$htmlHeader = $header->body_html;
}
if ($report['mailing']['footer_id']) {
- $footer = new CRM_Mailing_BAO_Component();
+ $footer = new CRM_Mailing_BAO_MailingComponent();
$footer->id = $report['mailing']['footer_id'];
$footer->find(TRUE);
$htmlFooter = $footer->body_html;