From 18f511e2f95ee7241e728aa41b88da4ff6178c96 Mon Sep 17 00:00:00 2001 From: yashodha Date: Thu, 18 Jan 2018 16:11:16 +0530 Subject: [PATCH] CRM-21677 - Report improvements CRM-21677 - fix DB error and more clean up CRM-21677 - generalised function minor fix CRM-21677 - keep the naming consistent style fix --- CRM/Report/Form.php | 9 +++++++++ CRM/Report/Form/Contribute/Lybunt.php | 17 ++++------------- CRM/Report/Form/Contribute/RecurSummary.php | 7 +------ CRM/Report/Form/Contribute/Summary.php | 18 ++++-------------- CRM/Report/Form/Contribute/Sybunt.php | 17 ++++------------- CRM/Report/Form/Contribute/TopDonor.php | 11 ++++------- 6 files changed, 26 insertions(+), 53 deletions(-) diff --git a/CRM/Report/Form.php b/CRM/Report/Form.php index 60401f4085..cf81b45fa0 100644 --- a/CRM/Report/Form.php +++ b/CRM/Report/Form.php @@ -4305,8 +4305,12 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a /** * 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 @@ -4323,8 +4327,13 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a /** * 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/Contribute/Lybunt.php b/CRM/Report/Form/Contribute/Lybunt.php index d0ac75a6ae..9b040c3b50 100644 --- a/CRM/Report/Form/Contribute/Lybunt.php +++ b/CRM/Report/Form/Contribute/Lybunt.php @@ -345,19 +345,10 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form { 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/RecurSummary.php b/CRM/Report/Form/Contribute/RecurSummary.php index 4e31df8d8a..d6641be7cb 100644 --- a/CRM/Report/Form/Contribute/RecurSummary.php +++ b/CRM/Report/Form/Contribute/RecurSummary.php @@ -94,14 +94,12 @@ class CRM_Report_Form_Contribute_RecurSummary extends CRM_Report_Form { } 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 @@ class CRM_Report_Form_Contribute_RecurSummary extends CRM_Report_Form { 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 1f95dc45da..4cc74ef432 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 @@ class CRM_Report_Form_Contribute_Summary extends CRM_Report_Form { 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 @@ class CRM_Report_Form_Contribute_Summary extends CRM_Report_Form { 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 @@ class CRM_Report_Form_Contribute_Summary extends CRM_Report_Form { {$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 918965a81d..f5c3073464 100644 --- a/CRM/Report/Form/Contribute/Sybunt.php +++ b/CRM/Report/Form/Contribute/Sybunt.php @@ -352,22 +352,13 @@ class CRM_Report_Form_Contribute_Sybunt extends CRM_Report_Form { 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 ce0bb788f6..c7ebf9d90b 100644 --- a/CRM/Report/Form/Contribute/TopDonor.php +++ b/CRM/Report/Form/Contribute/TopDonor.php @@ -253,17 +253,14 @@ class CRM_Report_Form_Contribute_TopDonor extends CRM_Report_Form { 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() { -- 2.25.1