diff --git a/CRM/Report/Form.php b/CRM/Report/Form.php index 98b0ed3e0e65..73d829d2fe49 100644 --- a/CRM/Report/Form.php +++ b/CRM/Report/Form.php @@ -4304,8 +4304,12 @@ public function fiscalYearOffset($fieldName) { /** * Add Address into From Table if required. + * + * @deprecated use joinAddressFromContact + * (left here in case extensions use it). */ public function addAddressFromClause() { + Civi::log()->warning('Deprecated function addAddressFromClause. Use joinAddressFromContact.', array('civi.tag' => 'deprecated')); // include address field if address column is to be included if ((isset($this->_addressField) && $this->_addressField @@ -4322,8 +4326,13 @@ public function addAddressFromClause() { /** * Add Phone into From Table if required. + * + * @deprecated use joinPhoneFromContact + * (left here in case extensions use it). */ public function addPhoneFromClause() { + + Civi::log()->warning('Deprecated function addPhoneFromClause. Use joinPhoneFromContact.', array('civi.tag' => 'deprecated')); // include address field if address column is to be included if ($this->isTableSelected('civicrm_phone')) { $this->_from .= " diff --git a/CRM/Report/Form/Campaign/SurveyDetails.php b/CRM/Report/Form/Campaign/SurveyDetails.php index 42a70c3906e4..1f43b85dd304 100644 --- a/CRM/Report/Form/Campaign/SurveyDetails.php +++ b/CRM/Report/Form/Campaign/SurveyDetails.php @@ -291,19 +291,9 @@ public function from() { $this->_from .= " INNER JOIN civicrm_activity_contact activity_contact_civireport ON ( {$this->_aliases['civicrm_activity']}.id = activity_contact_civireport.activity_id AND activity_contact_civireport.record_type_id = {$assigneeID} )\n"; - //get the address table. - $this->_from .= " LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} ON - {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id AND {$this->_aliases['civicrm_address']}.is_primary = 1\n"; - - if ($this->_emailField) { - $this->_from .= "LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} ON - {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND {$this->_aliases['civicrm_email']}.is_primary = 1\n"; - } - - if ($this->_phoneField) { - $this->_from .= "LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} ON - {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND {$this->_aliases['civicrm_phone']}.is_primary = 1\n"; - } + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); if ($this->_locationBasedPhoneField) { foreach ($this->_surveyResponseFields as $key => $value) { diff --git a/CRM/Report/Form/Case/Demographics.php b/CRM/Report/Form/Case/Demographics.php index e4c838f0c79a..b015af1e1392 100644 --- a/CRM/Report/Form/Case/Demographics.php +++ b/CRM/Report/Form/Case/Demographics.php @@ -313,19 +313,9 @@ public function from() { } } - if ($this->_emailField) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1) "; - } + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); - if ($this->_phoneField) { - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1 "; - } } public function where() { diff --git a/CRM/Report/Form/Case/Detail.php b/CRM/Report/Form/Case/Detail.php index 50d3f72c07c1..8b8461316394 100644 --- a/CRM/Report/Form/Case/Detail.php +++ b/CRM/Report/Form/Case/Detail.php @@ -36,13 +36,7 @@ class CRM_Report_Form_Case_Detail extends CRM_Report_Form { protected $_relField = FALSE; - protected $_addressField = FALSE; - - protected $_emailField = FALSE; - - protected $_phoneField = FALSE; - - protected $_worldRegionField = FALSE; + protected $_addressField = TRUE; protected $_activityLast = FALSE; @@ -344,19 +338,10 @@ public function select() { foreach ($this->_columns as $tableName => $table) { if (array_key_exists('fields', $table)) { foreach ($table['fields'] as $fieldName => $field) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName]) ) { - if ($tableName == 'civicrm_email') { - $this->_emailField = TRUE; - } - elseif ($tableName == 'civicrm_phone') { - $this->_phoneField = TRUE; - } - elseif ($tableName == 'civicrm_relationship') { + if ($tableName == 'civicrm_relationship') { $this->_relField = TRUE; } if ($fieldName == 'sort_name') { @@ -414,25 +399,11 @@ public function from() { "; } - if ($this->_addressField) { - $this->_from .= " - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} - ON {$conact}.id = {$this->_aliases['civicrm_address']}.contact_id AND - {$this->_aliases['civicrm_address']}.is_primary = 1 "; - } - if ($this->_emailField) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON {$conact}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1 "; - } - if ($this->_phoneField) { - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON ( {$conact}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1) "; - } - if ($this->_worldRegionField) { + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); + + if ($this->isTableSelected('civicrm_worldregion')) { $this->_from .= " LEFT JOIN civicrm_country {$this->_aliases['civicrm_country']} ON {$this->_aliases['civicrm_country']}.id ={$this->_aliases['civicrm_address']}.country_id @@ -601,13 +572,6 @@ public function postProcess() { } public function checkEnabledFields() { - if (isset($this->_params['worldregion_id_value']) && - !empty($this->_params['worldregion_id_value']) - ) { - $this->_addressField = TRUE; - $this->_worldRegionField = TRUE; - } - if (isset($this->_params['case_role_value']) && !empty($this->_params['case_role_value']) ) { diff --git a/CRM/Report/Form/Contact/CurrentEmployer.php b/CRM/Report/Form/Contact/CurrentEmployer.php index 050745a50e9a..ab75475c3db6 100644 --- a/CRM/Report/Form/Contact/CurrentEmployer.php +++ b/CRM/Report/Form/Contact/CurrentEmployer.php @@ -252,17 +252,11 @@ public function from() { LEFT JOIN civicrm_relationship {$this->_aliases['civicrm_relationship']} ON ( {$this->_aliases['civicrm_relationship']}.contact_id_a={$this->_aliases['civicrm_contact']}.id AND {$this->_aliases['civicrm_relationship']}.contact_id_b={$this->_aliases['civicrm_contact']}.employer_id - AND {$this->_aliases['civicrm_relationship']}.relationship_type_id={$relType}) - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id - AND {$this->_aliases['civicrm_address']}.is_primary = 1 ) - - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id - AND {$this->_aliases['civicrm_phone']}.is_primary = 1) - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id - AND {$this->_aliases['civicrm_email']}.is_primary = 1) "; + AND {$this->_aliases['civicrm_relationship']}.relationship_type_id={$relType}) "; + + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); } public function where() { diff --git a/CRM/Report/Form/Contribute/Bookkeeping.php b/CRM/Report/Form/Contribute/Bookkeeping.php index 05da2d5908e8..0280a6ee0c9e 100644 --- a/CRM/Report/Form/Contribute/Bookkeeping.php +++ b/CRM/Report/Form/Contribute/Bookkeeping.php @@ -31,9 +31,6 @@ * @copyright CiviCRM LLC (c) 2004-2018 */ class CRM_Report_Form_Contribute_Bookkeeping extends CRM_Report_Form { - protected $_addressField = FALSE; - - protected $_emailField = FALSE; protected $_summary = NULL; diff --git a/CRM/Report/Form/Contribute/Detail.php b/CRM/Report/Form/Contribute/Detail.php index 84b1ce6b3e02..4d55888db9ad 100644 --- a/CRM/Report/Form/Contribute/Detail.php +++ b/CRM/Report/Form/Contribute/Detail.php @@ -31,9 +31,6 @@ * @copyright CiviCRM LLC (c) 2004-2018 */ class CRM_Report_Form_Contribute_Detail extends CRM_Report_Form { - protected $_addressField = FALSE; - - protected $_emailField = FALSE; protected $_summary = NULL; @@ -941,16 +938,10 @@ public function appendAdditionalFromJoins() { INNER JOIN (SELECT c.id, IF(COUNT(oc.id) = 0, 0, 1) AS ordinality FROM civicrm_contribution c LEFT JOIN civicrm_contribution oc ON c.contact_id = oc.contact_id AND oc.receive_date < c.receive_date GROUP BY c.id) {$this->_aliases['civicrm_contribution_ordinality']} ON {$this->_aliases['civicrm_contribution_ordinality']}.id = {$this->_aliases['civicrm_contribution']}.id"; } - $this->addPhoneFromClause(); - - $this->addAddressFromClause(); + $this->joinPhoneFromContact(); + $this->joinAddressFromContact(); + $this->joinEmailFromContact(); - if ($this->_emailField) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1\n"; - } // include contribution note if (!empty($this->_params['fields']['contribution_note']) || !empty($this->_params['note_value']) diff --git a/CRM/Report/Form/Contribute/History.php b/CRM/Report/Form/Contribute/History.php index f9fbf895d376..9764c84bd019 100644 --- a/CRM/Report/Form/Contribute/History.php +++ b/CRM/Report/Form/Contribute/History.php @@ -29,15 +29,10 @@ * * @package CRM * @copyright CiviCRM LLC (c) 2004-2018 - * $Id$ - * */ class CRM_Report_Form_Contribute_History extends CRM_Report_Form { // Primary Contacts count limitCONSTROW_COUNT_LIMIT = 10; - protected $_addressField = FALSE; - protected $_emailField = FALSE; - protected $_phoneField = FALSE; protected $_relationshipColumns = array(); protected $_customGroupExtends = array( @@ -327,6 +322,7 @@ public function preProcess() { public function select() { $select = array(); + // @todo remove this & use parent (with maybe some override in this or better yet selectWhere fn) $this->_columnHeaders = array(); foreach ($this->_columns as $tableName => $table) { @@ -336,15 +332,6 @@ public function select() { if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName]) ) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } - if ($tableName == 'civicrm_email') { - $this->_emailField = TRUE; - } - if ($tableName == 'civicrm_phone') { - $this->_phoneField = TRUE; - } if ($tableName == 'civicrm_relationship') { $this->_relationshipColumns["{$tableName}_{$fieldName}"] = "{$field['dbAlias']} as {$tableName}_{$fieldName}"; $this->_columnHeaders["{$tableName}_{$fieldName}"]['type'] = CRM_Utils_Array::value('type', $field); @@ -398,23 +385,13 @@ public function from() { ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_contribution']}.contact_id AND {$this->_aliases['civicrm_contribution']}.is_test = 0 "; - if ($this->_emailField) { - $this->_from .= " LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1) "; - } - - if ($this->_phoneField) { - $this->_from .= " LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1) "; - } - $relContacAlias = 'contact_relationship'; $this->_relationshipFrom = " INNER JOIN civicrm_relationship {$this->_aliases['civicrm_relationship']} ON (({$this->_aliases['civicrm_relationship']}.contact_id_a = {$relContacAlias}.id OR {$this->_aliases['civicrm_relationship']}.contact_id_b = {$relContacAlias}.id ) AND {$this->_aliases['civicrm_relationship']}.is_active = 1) "; - $this->addAddressFromClause(); + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); // for credit card type $this->addFinancialTrxnFromClause(); diff --git a/CRM/Report/Form/Contribute/HouseholdSummary.php b/CRM/Report/Form/Contribute/HouseholdSummary.php index b6f8afac55df..cb0225bf5d9a 100644 --- a/CRM/Report/Form/Contribute/HouseholdSummary.php +++ b/CRM/Report/Form/Contribute/HouseholdSummary.php @@ -29,15 +29,9 @@ * * @package CRM * @copyright CiviCRM LLC (c) 2004-2018 - * $Id$ - * */ class CRM_Report_Form_Contribute_HouseholdSummary extends CRM_Report_Form { - protected $_addressField = FALSE; - - protected $_emailField = FALSE; - public $_drilldownReport = array('contribute/detail' => 'Link to Detail Report'); protected $_summary = NULL; @@ -232,11 +226,8 @@ public function __construct() { parent::__construct(); } - public function preProcess() { - parent::preProcess(); - } - public function select() { + // @todo remove this & use parent select. $this->_columnHeaders = $select = array(); foreach ($this->_columns as $tableName => $table) { if (array_key_exists('fields', $table)) { @@ -244,12 +235,6 @@ public function select() { if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName]) ) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } - elseif ($tableName == 'civicrm_email') { - $this->_emailField = TRUE; - } if (!empty($field['statistics'])) { foreach ($field['statistics'] as $stat => $label) { @@ -274,8 +259,6 @@ public function select() { } public function from() { - - $this->_from = NULL; $this->_from = " FROM civicrm_relationship {$this->_aliases['civicrm_relationship']} LEFT JOIN civicrm_contact {$this->_aliases['civicrm_contact_household']} ON @@ -286,18 +269,8 @@ public function from() { INNER JOIN civicrm_contribution {$this->_aliases['civicrm_contribution']} ON ({$this->_aliases['civicrm_contribution']}.contact_id = {$this->_aliases['civicrm_relationship']}.$this->otherContact ) AND {$this->_aliases['civicrm_contribution']}.is_test = 0 "; - if ($this->_addressField) { - $this->_from .= " - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} ON - {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id AND - {$this->_aliases['civicrm_address']}.is_primary = 1\n "; - } - if ($this->_emailField) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} ON - {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1\n "; - } + $this->joinAddressFromContact(); + $this->joinEmailFromContact(); // for credit card type $this->addFinancialTrxnFromClause(); diff --git a/CRM/Report/Form/Contribute/Lybunt.php b/CRM/Report/Form/Contribute/Lybunt.php index d0ac75a6aee9..9b040c3b50af 100644 --- a/CRM/Report/Form/Contribute/Lybunt.php +++ b/CRM/Report/Form/Contribute/Lybunt.php @@ -345,19 +345,10 @@ public function from() { AND {$this->_aliases['civicrm_contribution']}.is_test = 0 INNER JOIN civicrm_contact {$this->_aliases['civicrm_contact']} ON restricted_contacts.cid = {$this->_aliases['civicrm_contact']}.id"; - if ($this->isTableSelected('civicrm_email')) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id - AND {$this->_aliases['civicrm_email']}.is_primary = 1"; - } - if ($this->isTableSelected('civicrm_phone')) { - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id - AND {$this->_aliases['civicrm_phone']}.is_primary = 1"; - } - $this->addAddressFromClause(); + + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); } else { $this->setFromBase('civicrm_contact'); diff --git a/CRM/Report/Form/Contribute/OrganizationSummary.php b/CRM/Report/Form/Contribute/OrganizationSummary.php index a44d5e63df9c..e3565a80cb53 100644 --- a/CRM/Report/Form/Contribute/OrganizationSummary.php +++ b/CRM/Report/Form/Contribute/OrganizationSummary.php @@ -32,10 +32,6 @@ */ class CRM_Report_Form_Contribute_OrganizationSummary extends CRM_Report_Form { - protected $_addressField = FALSE; - - protected $_emailField = FALSE; - public $_drilldownReport = array('contribute/detail' => 'Link to Detail Report'); protected $_summary = NULL; @@ -238,17 +234,12 @@ public function preProcess() { } public function select() { + // @todo remove this in favour of using parent function $this->_columnHeaders = $select = array(); foreach ($this->_columns as $tableName => $table) { if (array_key_exists('fields', $table)) { foreach ($table['fields'] as $fieldName => $field) { if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName])) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } - elseif ($tableName == 'civicrm_email') { - $this->_emailField = TRUE; - } if (!empty($field['statistics'])) { foreach ($field['statistics'] as $stat => $label) { @@ -285,18 +276,8 @@ public function from() { INNER JOIN civicrm_contribution {$this->_aliases['civicrm_contribution']} ON ({$this->_aliases['civicrm_contribution']}.contact_id = {$this->_aliases['civicrm_relationship']}.$this->otherContact ) AND {$this->_aliases['civicrm_contribution']}.is_test = 0 "; - if ($this->_addressField) { - $this->_from .= " - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} ON - {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id AND - {$this->_aliases['civicrm_address']}.is_primary = 1\n "; - } - if ($this->_emailField) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} ON - {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1\n "; - } + $this->joinAddressFromContact(); + $this->joinEmailFromContact(); // for credit card type $this->addFinancialTrxnFromClause(); diff --git a/CRM/Report/Form/Contribute/Recur.php b/CRM/Report/Form/Contribute/Recur.php index d2cf531ef61e..fd44c88bb87c 100644 --- a/CRM/Report/Form/Contribute/Recur.php +++ b/CRM/Report/Form/Contribute/Recur.php @@ -273,14 +273,9 @@ public function from() { $this->_from .= " LEFT JOIN civicrm_contribution {$this->_aliases['civicrm_contribution']} ON {$this->_aliases['civicrm_contribution_recur']}.id = {$this->_aliases['civicrm_contribution']}.contribution_recur_id"; - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1)"; - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1)"; + + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); // for credit card type $this->addFinancialTrxnFromClause(); diff --git a/CRM/Report/Form/Contribute/RecurSummary.php b/CRM/Report/Form/Contribute/RecurSummary.php index 4e31df8d8a64..d6641be7cb87 100644 --- a/CRM/Report/Form/Contribute/RecurSummary.php +++ b/CRM/Report/Form/Contribute/RecurSummary.php @@ -94,14 +94,12 @@ public function setDefaultValues($freeze = TRUE) { } public function select() { + // @todo remove & only adjust parent with selectWhere fn (if needed) $select = array(); $this->_columnHeaders = array(); foreach ($this->_columns as $tableName => $table) { if (array_key_exists('group_bys', $table)) { foreach ($table['group_bys'] as $fieldName => $field) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } if (!empty($this->_params['group_bys'][$fieldName])) { switch (CRM_Utils_Array::value($fieldName, $this->_params['group_bys_freq'])) { case 'YEARWEEK': @@ -150,9 +148,6 @@ public function select() { if (array_key_exists('fields', $table)) { foreach ($table['fields'] as $fieldName => $field) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName]) ) { diff --git a/CRM/Report/Form/Contribute/Summary.php b/CRM/Report/Form/Contribute/Summary.php index 1f95dc45dadd..4cc74ef432da 100644 --- a/CRM/Report/Form/Contribute/Summary.php +++ b/CRM/Report/Form/Contribute/Summary.php @@ -31,7 +31,6 @@ * @copyright CiviCRM LLC (c) 2004-2018 */ class CRM_Report_Form_Contribute_Summary extends CRM_Report_Form { - protected $_addressField = FALSE; protected $_charts = array( '' => 'Tabular', @@ -344,9 +343,6 @@ public function select() { foreach ($this->_columns as $tableName => $table) { if (array_key_exists('group_bys', $table)) { foreach ($table['group_bys'] as $fieldName => $field) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } if (!empty($this->_params['group_bys'][$fieldName])) { switch (CRM_Utils_Array::value($fieldName, $this->_params['group_bys_freq'])) { case 'YEARWEEK': @@ -411,9 +407,6 @@ public function select() { if (array_key_exists('fields', $table)) { foreach ($table['fields'] as $fieldName => $field) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName]) ) { @@ -515,15 +508,12 @@ public function from($entity = NULL) { {$softCreditJoin} LEFT JOIN civicrm_financial_type {$this->_aliases['civicrm_financial_type']} ON {$this->_aliases['civicrm_contribution']}.financial_type_id ={$this->_aliases['civicrm_financial_type']}.id - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1) + "; - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1)"; + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); - $this->addAddressFromClause(); //for contribution batches if ($this->isTableSelected('civicrm_batch')) { $this->_from .= " diff --git a/CRM/Report/Form/Contribute/Sybunt.php b/CRM/Report/Form/Contribute/Sybunt.php index 918965a81db3..f5c307346497 100644 --- a/CRM/Report/Form/Contribute/Sybunt.php +++ b/CRM/Report/Form/Contribute/Sybunt.php @@ -352,22 +352,13 @@ public function from() { ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_contribution']}.contact_id {$this->_aclFrom}"; - if ($this->isTableSelected('civicrm_email')) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id - AND {$this->_aliases['civicrm_email']}.is_primary = 1"; - } - if ($this->isTableSelected('civicrm_phone')) { - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1"; - } + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); + // for credit card type $this->addFinancialTrxnFromClause(); - $this->addAddressFromClause(); + $this->joinAddressFromContact(); } public function where() { diff --git a/CRM/Report/Form/Contribute/TopDonor.php b/CRM/Report/Form/Contribute/TopDonor.php index ce0bb788f672..c7ebf9d90bdf 100644 --- a/CRM/Report/Form/Contribute/TopDonor.php +++ b/CRM/Report/Form/Contribute/TopDonor.php @@ -253,17 +253,14 @@ public function from() { FROM civicrm_contact {$this->_aliases['civicrm_contact']} {$this->_aclFrom} INNER JOIN civicrm_contribution {$this->_aliases['civicrm_contribution']} ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_contribution']}.contact_id AND {$this->_aliases['civicrm_contribution']}.is_test = 0 - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id - AND {$this->_aliases['civicrm_email']}.is_primary = 1 - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1"; + "; // for credit card type $this->addFinancialTrxnFromClause(); - $this->addAddressFromClause(); + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); } public function where() { diff --git a/CRM/Report/Form/Event/ParticipantListCount.php b/CRM/Report/Form/Event/ParticipantListCount.php index 07fcb817f066..bc15afc4996c 100644 --- a/CRM/Report/Form/Event/ParticipantListCount.php +++ b/CRM/Report/Form/Event/ParticipantListCount.php @@ -462,17 +462,12 @@ public function from() { {$this->_aclFrom} LEFT JOIN civicrm_contact {$this->_aliases['civicrm_employer']} ON ({$this->_aliases['civicrm_employer']}.id = {$this->_aliases['civicrm_contact']}.employer_id ) - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id AND - {$this->_aliases['civicrm_address']}.is_primary = 1 - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1) - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1 LEFT JOIN civicrm_line_item {$this->_aliases['civicrm_line_item']} ON {$this->_aliases['civicrm_line_item']}.entity_table = 'civicrm_participant' AND {$this->_aliases['civicrm_participant']}.id ={$this->_aliases['civicrm_line_item']}.entity_id"; + + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); } public function storeWhereHavingClauseArray() { diff --git a/CRM/Report/Form/Event/ParticipantListing.php b/CRM/Report/Form/Event/ParticipantListing.php index 11e07bdf50ca..a5269d8807a6 100644 --- a/CRM/Report/Form/Event/ParticipantListing.php +++ b/CRM/Report/Form/Event/ParticipantListing.php @@ -513,16 +513,12 @@ public function from() { LEFT JOIN civicrm_contact {$this->_aliases['civicrm_contact']} ON ({$this->_aliases['civicrm_participant']}.contact_id = {$this->_aliases['civicrm_contact']}.id ) {$this->_aclFrom} - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id AND - {$this->_aliases['civicrm_address']}.is_primary = 1 - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND - {$this->_aliases['civicrm_email']}.is_primary = 1) - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1 "; + + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); + if ($this->_contribField) { $this->_from .= " LEFT JOIN civicrm_participant_payment pp diff --git a/CRM/Report/Form/Grant/Detail.php b/CRM/Report/Form/Grant/Detail.php index 4078bb33fc95..cf1563bef6d5 100644 --- a/CRM/Report/Form/Grant/Detail.php +++ b/CRM/Report/Form/Grant/Detail.php @@ -32,8 +32,6 @@ */ class CRM_Report_Form_Grant_Detail extends CRM_Report_Form { - protected $_addressField = FALSE; - protected $_customGroupExtends = array( 'Grant', ); @@ -212,13 +210,11 @@ public function __construct() { } public function select() { + // @todo remove this override - seems to do nothing parent doesn't. $select = array(); $this->_columnHeaders = array(); foreach ($this->_columns as $tableName => $table) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } if (array_key_exists('fields', $table)) { foreach ($table['fields'] as $fieldName => $field) { if (!empty($field['required']) || @@ -242,16 +238,11 @@ public function from() { FROM civicrm_grant {$this->_aliases['civicrm_grant']} LEFT JOIN civicrm_contact {$this->_aliases['civicrm_contact']} ON ({$this->_aliases['civicrm_grant']}.contact_id = {$this->_aliases['civicrm_contact']}.id ) "; - if ($this->_addressField) { - $this->_from .= " - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} - ON {$this->_aliases['civicrm_contact']}.id = - {$this->_aliases['civicrm_address']}.contact_id AND - {$this->_aliases['civicrm_address']}.is_primary = 1\n"; - } + $this->joinAddressFromContact(); } public function where() { + // @todo this function appears to do nothing more than parent, test & remove $clauses = array(); $this->_where = ''; foreach ($this->_columns as $tableName => $table) { @@ -291,6 +282,7 @@ public function where() { } public function groupBy() { + // @todo this function appears to do nothing more than parent, test & remove $this->_groupBy = ""; if (!empty($this->_params['group_bys']) && is_array($this->_params['group_bys']) && diff --git a/CRM/Report/Form/Grant/Statistics.php b/CRM/Report/Form/Grant/Statistics.php index 47d03c5f2209..9ebd3a23d6ae 100644 --- a/CRM/Report/Form/Grant/Statistics.php +++ b/CRM/Report/Form/Grant/Statistics.php @@ -32,8 +32,6 @@ */ class CRM_Report_Form_Grant_Statistics extends CRM_Report_Form { - protected $_addressField = FALSE; - protected $_customGroupExtends = array('Grant'); protected $_add2groupSupported = FALSE; @@ -163,7 +161,7 @@ public function __construct() { ), 'grouping' => 'contact-fields', ), - 'civicrm_world_region' => array( + 'civicrm_worldregion' => array( 'dao' => 'CRM_Core_DAO_Worldregion', 'fields' => array( 'id' => array( @@ -210,13 +208,6 @@ public function select() { $this->_columnHeaders = array(); foreach ($this->_columns as $tableName => $table) { - if (in_array($tableName, array( - 'civicrm_address', - 'civicrm_world_region', - ))) { - $this->_addressField = TRUE; - } - if (array_key_exists('fields', $table)) { foreach ($table['fields'] as $fieldName => $field) { if (!empty($field['required']) || @@ -241,18 +232,14 @@ public function from() { FROM civicrm_grant {$this->_aliases['civicrm_grant']} LEFT JOIN civicrm_contact {$this->_aliases['civicrm_contact']} ON ({$this->_aliases['civicrm_grant']}.contact_id = {$this->_aliases['civicrm_contact']}.id ) "; - if ($this->_addressField) { + + $this->joinAddressFromContact(); + $this->joinCountryFromAddress(); + if ($this->isTableSelected('civicrm_worldregion')) { $this->_from .= " - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} - ON {$this->_aliases['civicrm_contact']}.id = - {$this->_aliases['civicrm_address']}.contact_id AND - {$this->_aliases['civicrm_address']}.is_primary = 1\n - LEFT JOIN civicrm_country country - ON {$this->_aliases['civicrm_address']}.country_id = - country.id - LEFT JOIN civicrm_worldregion {$this->_aliases['civicrm_world_region']} + LEFT JOIN civicrm_worldregion {$this->_aliases['civicrm_worldregion']} ON country.region_id = - {$this->_aliases['civicrm_world_region']}.id"; + {$this->_aliases['civicrm_worldregion']}.id"; } } @@ -416,11 +403,11 @@ public function alterDisplay(&$rows) { ); } - if (array_key_exists('civicrm_world_region_name', $values)) { - $region = CRM_Utils_Array::value('civicrm_world_region_name', $values); + if (array_key_exists('civicrm_worldregion_name', $values)) { + $region = CRM_Utils_Array::value('civicrm_worldregion_name', $values); $region = ($region) ? $region : 'Unassigned'; - $grantStatistics['civicrm_world_region_name']['title'] = ts('By Region'); - self::getStatistics($grantStatistics['civicrm_world_region_name'], $region, $values, + $grantStatistics['civicrm_worldregion_name']['title'] = ts('By Region'); + self::getStatistics($grantStatistics['civicrm_worldregion_name'], $region, $values, $awardedGrants, $awardedGrantsAmount ); } diff --git a/CRM/Report/Form/Mailing/Bounce.php b/CRM/Report/Form/Mailing/Bounce.php index 574d1659f9c8..9d438b72a281 100644 --- a/CRM/Report/Form/Mailing/Bounce.php +++ b/CRM/Report/Form/Mailing/Bounce.php @@ -337,13 +337,7 @@ public function from() { INNER JOIN civicrm_mailing {$this->_aliases['civicrm_mailing']} ON civicrm_mailing_job.mailing_id = {$this->_aliases['civicrm_mailing']}.id "; - - if ($this->_phoneField) { - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1 "; - } + $this->joinPhoneFromContact(); } public function where() { diff --git a/CRM/Report/Form/Mailing/Clicks.php b/CRM/Report/Form/Mailing/Clicks.php index 31e642922636..4bfa795ac8da 100644 --- a/CRM/Report/Form/Mailing/Clicks.php +++ b/CRM/Report/Form/Mailing/Clicks.php @@ -293,14 +293,7 @@ public function from() { ON civicrm_mailing_job.mailing_id = {$this->_aliases['civicrm_mailing']}.id AND civicrm_mailing_job.is_test = 0 "; - - if ($this->_phoneField) { - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id - AND {$this->_aliases['civicrm_phone']}.is_primary = 1 - "; - } + $this->joinPhoneFromContact(); } public function where() { diff --git a/CRM/Report/Form/Mailing/Detail.php b/CRM/Report/Form/Mailing/Detail.php index f028d236bac7..7a55a5c034ff 100644 --- a/CRM/Report/Form/Mailing/Detail.php +++ b/CRM/Report/Form/Mailing/Detail.php @@ -443,12 +443,7 @@ public function from() { ON civicrm_mailing_job.mailing_id = {$this->_aliases['civicrm_mailing']}.id AND civicrm_mailing_job.is_test = 0"; - if ($this->_phoneField) { - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND - {$this->_aliases['civicrm_phone']}.is_primary = 1 "; - } + $this->joinPhoneFromContact(); } public function where() { diff --git a/CRM/Report/Form/Mailing/Opened.php b/CRM/Report/Form/Mailing/Opened.php index 08ced58dbc7a..5a48f9e56fda 100644 --- a/CRM/Report/Form/Mailing/Opened.php +++ b/CRM/Report/Form/Mailing/Opened.php @@ -279,14 +279,7 @@ public function from() { ON civicrm_mailing_job.mailing_id = {$this->_aliases['civicrm_mailing']}.id AND civicrm_mailing_job.is_test = 0 "; - - if ($this->_phoneField) { - $this->_from .= " - LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} - ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id - AND {$this->_aliases['civicrm_phone']}.is_primary = 1 - "; - } + $this->joinPhoneFromContact(); } public function where() { diff --git a/CRM/Report/Form/Membership/Summary.php b/CRM/Report/Form/Membership/Summary.php index 5e8df23c906b..ba497f4ff7f9 100644 --- a/CRM/Report/Form/Membership/Summary.php +++ b/CRM/Report/Form/Membership/Summary.php @@ -148,6 +148,7 @@ public function preProcess() { * Generate select clause. */ public function select() { + // @todo remove this in favour of just using parent. $select = array(); $this->_columnHeaders = array(); foreach ($this->_columns as $tableName => $table) { @@ -156,14 +157,6 @@ public function select() { if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName]) ) { - // to include optional columns address and email, only if checked - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - $this->_emailField = TRUE; - } - elseif ($tableName == 'civicrm_email') { - $this->_emailField = TRUE; - } $select[] = "{$field['dbAlias']} as {$tableName}_{$fieldName}"; $this->_columnHeaders["{$tableName}_{$fieldName}"]['type'] = $field['type']; $this->_columnHeaders["{$tableName}_{$fieldName}"]['title'] = $field['title']; @@ -189,15 +182,8 @@ public function from() { LEFT JOIN civicrm_contribution {$this->_aliases['civicrm_contribution']} ON {$this->_aliases['civicrm_membership']}.contact_id = {$this->_aliases['civicrm_contribution']}.contact_id "; - // Include address table if address column is to be included. - if ($this->_addressField) { - $this->_from .= "LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id AND {$this->_aliases['civicrm_address']}.is_primary = 1\n"; - } - - // Include email table if email column is to be included. - if ($this->_emailField) { - $this->_from .= "LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND {$this->_aliases['civicrm_email']}.is_primary = 1\n"; - } + $this->joinAddressFromContact(); + $this->joinEmailFromContact(); } /** diff --git a/CRM/Report/Form/Pledge/Detail.php b/CRM/Report/Form/Pledge/Detail.php index 85a485caa551..7c2c1da2a56a 100644 --- a/CRM/Report/Form/Pledge/Detail.php +++ b/CRM/Report/Form/Pledge/Detail.php @@ -286,16 +286,9 @@ public function from() { "; } - $this->addPhoneFromClause(); - $this->addAddressFromClause(); - // include email field if email column is to be included - if ($this->_emailField) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = - {$this->_aliases['civicrm_email']}.contact_id) AND - {$this->_aliases['civicrm_email']}.is_primary = 1\n"; - } + $this->joinPhoneFromContact(); + $this->joinAddressFromContact(); + $this->joinEmailFromContact(); } /** diff --git a/CRM/Report/Form/Pledge/Pbnp.php b/CRM/Report/Form/Pledge/Pbnp.php index 596d91dd1b1d..01294d59c628 100644 --- a/CRM/Report/Form/Pledge/Pbnp.php +++ b/CRM/Report/Form/Pledge/Pbnp.php @@ -230,14 +230,6 @@ public function select() { if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName]) ) { - // to include optional columns address and email, only if checked - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - $this->_emailField = TRUE; - } - elseif ($tableName == 'civicrm_email') { - $this->_emailField = TRUE; - } $select[] = "{$field['dbAlias']} as {$tableName}_{$fieldName}"; $this->_columnHeaders["{$tableName}_{$fieldName}"]['type'] = CRM_Utils_Array::value('type', $field); $this->_columnHeaders["{$tableName}_{$fieldName}"]['title'] = CRM_Utils_Array::value('title', $field); @@ -279,23 +271,9 @@ public function from() { ON ({$this->_aliases['civicrm_pledge']}.id = {$this->_aliases['civicrm_pledge_payment']}.pledge_id AND {$this->_aliases['civicrm_pledge_payment']}.status_id = {$pendingStatus} ) "; - // include address field if address column is to be included - if ($this->_addressField) { - $this->_from .= " - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} - ON ({$this->_aliases['civicrm_contact']}.id = - {$this->_aliases['civicrm_address']}.contact_id) AND - {$this->_aliases['civicrm_address']}.is_primary = 1\n"; - } + $this->joinAddressFromContact(); + $this->joinEmailFromContact(); - // include email field if email column is to be included - if ($this->_emailField) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = - {$this->_aliases['civicrm_email']}.contact_id) AND - {$this->_aliases['civicrm_email']}.is_primary = 1\n"; - } } public function groupBy() { diff --git a/CRM/Report/Form/Pledge/Summary.php b/CRM/Report/Form/Pledge/Summary.php index 39749ef8048e..b5905c5c8dfe 100644 --- a/CRM/Report/Form/Pledge/Summary.php +++ b/CRM/Report/Form/Pledge/Summary.php @@ -38,8 +38,6 @@ class CRM_Report_Form_Pledge_Summary extends CRM_Report_Form { protected $_totalPaid = FALSE; protected $_customGroupExtends = array('Pledge', 'Individual'); protected $_customGroupGroupBy = TRUE; - protected $_addressField = FALSE; - protected $_emailField = FALSE; /** * This report has not been optimised for group filtering. @@ -216,23 +214,8 @@ public function from() { {$this->_aliases['civicrm_pledge']}.contact_id ) {$this->_aclFrom} "; - // include address field if address column is to be included - if ($this->_addressField) { - $this->_from .= " - LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} - ON ({$this->_aliases['civicrm_contact']}.id = - {$this->_aliases['civicrm_address']}.contact_id) AND - {$this->_aliases['civicrm_address']}.is_primary = 1\n"; - } - - // include email field if email column is to be included - if ($this->_emailField) { - $this->_from .= " - LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} - ON ({$this->_aliases['civicrm_contact']}.id = - {$this->_aliases['civicrm_email']}.contact_id) AND - {$this->_aliases['civicrm_email']}.is_primary = 1\n"; - } + $this->joinAddressFromContact(); + $this->joinEmailFromContact(); if (!empty($this->_params['fields']['total_paid'])) { $this->_from .= " diff --git a/CRM/Report/Form/Walklist/Walklist.php b/CRM/Report/Form/Walklist/Walklist.php index 98e51413fe41..25e92d7027bb 100644 --- a/CRM/Report/Form/Walklist/Walklist.php +++ b/CRM/Report/Form/Walklist/Walklist.php @@ -31,11 +31,6 @@ * @copyright CiviCRM LLC (c) 2004-2018 */ class CRM_Report_Form_Walklist_Walklist extends CRM_Report_Form { - protected $_addressField = FALSE; - - protected $_emailField = FALSE; - - protected $_phoneField = FALSE; protected $_summary = NULL; @@ -149,6 +144,7 @@ public function preProcess() { } public function select() { + // @todo remove this function & use parent. $select = array(); $this->_columnHeaders = array(); @@ -157,15 +153,6 @@ public function select() { if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName]) ) { - if ($tableName == 'civicrm_address') { - $this->_addressField = TRUE; - } - elseif ($tableName == 'civicrm_email') { - $this->_emailField = TRUE; - } - elseif ($tableName == 'civicrm_phone') { - $this->_phoneField = TRUE; - } $select[] = "{$field['dbAlias']} as {$tableName}_{$fieldName}"; $this->_columnHeaders["{$tableName}_{$fieldName}"]['title'] = $field['title']; @@ -183,17 +170,10 @@ public function from() { $this->_from = " FROM civicrm_contact {$this->_aliases['civicrm_contact']} {$this->_aclFrom} "; - if ($this->_addressField) { - $this->_from .= "LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']} ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id AND {$this->_aliases['civicrm_address']}.is_primary = 1\n"; - } - - if ($this->_emailField) { - $this->_from .= "LEFT JOIN civicrm_email {$this->_aliases['civicrm_email']} ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_email']}.contact_id AND {$this->_aliases['civicrm_email']}.is_primary = 1\n"; - } - if ($this->_phoneField) { - $this->_from .= "LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']} ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND {$this->_aliases['civicrm_phone']}.is_primary = 1\n"; - } + $this->joinAddressFromContact(); + $this->joinPhoneFromContact(); + $this->joinEmailFromContact(); } public function where() {