From fe42be711d810d53b04a5f13699e44cb0aaea8cd Mon Sep 17 00:00:00 2001 From: mark burdett Date: Thu, 14 Mar 2019 16:42:46 -0700 Subject: [PATCH] Use TempTable methods. --- CRM/Report/Form/Contribute/Detail.php | 23 ++++++++----------- .../phpunit/CRM/Report/Form/ActivityTest.php | 3 --- .../CRM/Report/Form/Contribute/DetailTest.php | 7 ------ .../phpunit/CRM/Report/Form/TestCaseTest.php | 7 ------ 4 files changed, 10 insertions(+), 30 deletions(-) diff --git a/CRM/Report/Form/Contribute/Detail.php b/CRM/Report/Form/Contribute/Detail.php index eccb17c26b..9796c52599 100644 --- a/CRM/Report/Form/Contribute/Detail.php +++ b/CRM/Report/Form/Contribute/Detail.php @@ -491,7 +491,7 @@ GROUP BY {$this->_aliases['civicrm_contribution']}.currency"; public function buildQuery($applyLimit = FALSE) { if ($this->isTempTableBuilt) { $this->limit(); - return "SELECT SQL_CALC_FOUND_ROWS * FROM civireport_contribution_detail_temp3 $this->_orderBy $this->_limit"; + return "SELECT SQL_CALC_FOUND_ROWS * FROM {$this->temporaryTables['civireport_contribution_detail_temp3']['name']} $this->_orderBy $this->_limit"; } return parent::buildQuery($applyLimit); } @@ -544,9 +544,7 @@ GROUP BY {$this->_aliases['civicrm_contribution']}.currency"; // we inner join with temp1 to restrict soft contributions to those in temp1 table. // no group by here as we want to display as many soft credit rows as actually exist. $sql = "{$select} {$this->_from} {$this->_where} $this->_groupBy"; - $tempQuery = "CREATE TEMPORARY TABLE civireport_contribution_detail_temp2 {$this->_databaseAttributes} AS {$sql}"; - $this->executeReportQuery($tempQuery); - $this->temporaryTables['civireport_contribution_detail_temp2'] = ['name' => 'civireport_contribution_detail_temp2', 'temporary' => TRUE]; + $this->createTemporaryTable('civireport_contribution_detail_temp2', $sql); if (CRM_Utils_Array::value('contribution_or_soft_value', $this->_params) == 'soft_credits_only' @@ -568,24 +566,23 @@ GROUP BY {$this->_aliases['civicrm_contribution']}.currency"; // 3. Decide where to populate temp3 table from if ($this->isContributionBaseMode ) { - $this->executeReportQuery( - "CREATE TEMPORARY TABLE civireport_contribution_detail_temp3 {$this->_databaseAttributes} AS (SELECT * FROM {$this->temporaryTables['civireport_contribution_detail_temp1']['name']})" + $this->createTemporaryTable('civireport_contribution_detail_temp3', + "(SELECT * FROM {$this->temporaryTables['civireport_contribution_detail_temp1']['name']})" ); } elseif (CRM_Utils_Array::value('contribution_or_soft_value', $this->_params) == 'soft_credits_only' ) { - $this->executeReportQuery( - "CREATE TEMPORARY TABLE civireport_contribution_detail_temp3 {$this->_databaseAttributes} AS (SELECT * FROM civireport_contribution_detail_temp2)" + $this->createTemporaryTable('civireport_contribution_detail_temp3', + "(SELECT * FROM {$this->temporaryTables['civireport_contribution_detail_temp2']['name']})" ); } else { - $this->executeReportQuery("CREATE TEMPORARY TABLE civireport_contribution_detail_temp3 {$this->_databaseAttributes} + $this->createTemporaryTable('civireport_contribution_detail_temp3', " (SELECT * FROM {$this->temporaryTables['civireport_contribution_detail_temp1']['name']}) UNION ALL -(SELECT * FROM civireport_contribution_detail_temp2)"); +(SELECT * FROM {$this->temporaryTables['civireport_contribution_detail_temp2']['name']})"); } - $this->temporaryTables['civireport_contribution_detail_temp3'] = ['name' => 'civireport_contribution_detail_temp3', 'temporary' => TRUE]; $this->isTempTableBuilt = TRUE; } @@ -730,7 +727,7 @@ UNION ALL ) { $query = " SELECT civicrm_contact_id, civicrm_contact_sort_name, civicrm_contribution_total_amount_sum, civicrm_contribution_currency -FROM civireport_contribution_detail_temp2 +FROM {$this->temporaryTables['civireport_contribution_detail_temp2']['name']} WHERE civicrm_contribution_contribution_id={$row['civicrm_contribution_contribution_id']}"; $dao = CRM_Core_DAO::executeQuery($query); $string = ''; @@ -834,7 +831,7 @@ WHERE civicrm_contribution_contribution_id={$row['civicrm_contribution_contribu } $query = $this->_select . - "$addtotals, count(*) as ct from civireport_contribution_detail_temp3 group by " . + "$addtotals, count(*) as ct from {$this->temporaryTables['civireport_contribution_detail_temp3']['name']} group by " . implode(", ", $sectionAliases); // initialize array of total counts $sumcontribs = $totals = array(); diff --git a/tests/phpunit/CRM/Report/Form/ActivityTest.php b/tests/phpunit/CRM/Report/Form/ActivityTest.php index 582dd6a4ce..d7001ea91a 100644 --- a/tests/phpunit/CRM/Report/Form/ActivityTest.php +++ b/tests/phpunit/CRM/Report/Form/ActivityTest.php @@ -46,9 +46,6 @@ class CRM_Report_Form_ActivityTest extends CiviReportTestCase { public function tearDown() { parent::tearDown(); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp1'); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp2'); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp3'); CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_activity_temp_target'); } diff --git a/tests/phpunit/CRM/Report/Form/Contribute/DetailTest.php b/tests/phpunit/CRM/Report/Form/Contribute/DetailTest.php index af89473113..835f37462d 100644 --- a/tests/phpunit/CRM/Report/Form/Contribute/DetailTest.php +++ b/tests/phpunit/CRM/Report/Form/Contribute/DetailTest.php @@ -70,13 +70,6 @@ class CRM_Report_Form_Contribute_DetailTest extends CiviReportTestCase { $this->quickCleanup($this->_tablesToTruncate); } - public function tearDown() { - parent::tearDown(); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp1'); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp2'); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp3'); - } - /** * @dataProvider dataProvider * @param $reportClass diff --git a/tests/phpunit/CRM/Report/Form/TestCaseTest.php b/tests/phpunit/CRM/Report/Form/TestCaseTest.php index 7d144fb7c6..0f1471084b 100644 --- a/tests/phpunit/CRM/Report/Form/TestCaseTest.php +++ b/tests/phpunit/CRM/Report/Form/TestCaseTest.php @@ -134,13 +134,6 @@ class CRM_Report_Form_TestCaseTest extends CiviReportTestCase { $this->quickCleanup($this->_tablesToTruncate); } - public function tearDown() { - parent::tearDown(); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp1'); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp2'); - CRM_Core_DAO::executeQuery('DROP TEMPORARY TABLE IF EXISTS civireport_contribution_detail_temp3'); - } - /** * @dataProvider dataProvider * @param $reportClass -- 2.25.1