From 3853a4f1b0ac6304d901784aa51c4f3e42a21671 Mon Sep 17 00:00:00 2001 From: Edsel Date: Mon, 11 May 2015 19:23:25 +0530 Subject: [PATCH] ICM-13 Modified LYBUNT report to use temp table instead of modifiication to query --- CRM/Report/Form/Contribute/Lybunt.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/CRM/Report/Form/Contribute/Lybunt.php b/CRM/Report/Form/Contribute/Lybunt.php index 7976103ef2..ecc162e99b 100644 --- a/CRM/Report/Form/Contribute/Lybunt.php +++ b/CRM/Report/Form/Contribute/Lybunt.php @@ -383,19 +383,6 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form { if ($this->_aclWhere) { $this->_where .= " AND {$this->_aclWhere} "; } - CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes); - - $sql = "CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT {$this->_aliases['civicrm_contribution']}.id {$this->_from} - LEFT JOIN civicrm_line_item {$this->_aliases['civicrm_line_item']} - ON {$this->_aliases['civicrm_contribution']}.id = {$this->_aliases['civicrm_line_item']}.contribution_id AND - {$this->_aliases['civicrm_line_item']}.entity_table = 'civicrm_contribution' - {$this->_where} - AND {$this->_aliases['civicrm_contribution']}.financial_type_id IN (" . implode(',' , array_keys($financialTypes)) . ") - AND {$this->_aliases['civicrm_line_item']}.financial_type_id IN (" . implode(',' , array_keys($financialTypes)) . ") - GROUP BY {$this->_aliases['civicrm_contribution']}.id"; - CRM_Core_DAO::executeQuery($sql); - $this->_from .= " - INNER JOIN civicrm_contribution_temp temp ON {$this->_aliases['civicrm_contribution']}.id = temp.id "; } public function groupBy() { @@ -442,6 +429,19 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form { $this->from(); $this->where(); $this->groupBy(); + CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes); + + $sql = "CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT {$this->_aliases['civicrm_contribution']}.id {$this->_from} + INNER JOIN civicrm_line_item {$this->_aliases['civicrm_line_item']} + ON {$this->_aliases['civicrm_contribution']}.id = {$this->_aliases['civicrm_line_item']}.contribution_id AND + {$this->_aliases['civicrm_line_item']}.entity_table = 'civicrm_contribution' + {$this->_where} + AND {$this->_aliases['civicrm_contribution']}.financial_type_id IN (" . implode(',' , array_keys($financialTypes)) . ") + AND {$this->_aliases['civicrm_line_item']}.financial_type_id IN (" . implode(',' , array_keys($financialTypes)) . ") + {$this->_groupBy}"; + CRM_Core_DAO::executeQuery($sql); + $this->_from .= " + INNER JOIN civicrm_contribution_temp temp ON {$this->_aliases['civicrm_contribution']}.id = temp.id "; $rows = $this->_contactIds = array(); $this->limit(); -- 2.25.1