From 5b43eb5acef4b0eb093eb73b4d98b7f8330700c8 Mon Sep 17 00:00:00 2001 From: eileen Date: Sat, 20 Mar 2021 09:55:47 +1300 Subject: [PATCH] Fix export contribution to share tasktrait --- CRM/Contribute/Export/Form/Select.php | 4 ++ CRM/Contribute/Form/Task.php | 56 +------------------ CRM/Contribute/Form/Task/TaskTrait.php | 77 ++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 54 deletions(-) create mode 100644 CRM/Contribute/Form/Task/TaskTrait.php diff --git a/CRM/Contribute/Export/Form/Select.php b/CRM/Contribute/Export/Form/Select.php index 9ad30badd6..4e57be122f 100644 --- a/CRM/Contribute/Export/Form/Select.php +++ b/CRM/Contribute/Export/Form/Select.php @@ -20,8 +20,12 @@ */ class CRM_Contribute_Export_Form_Select extends CRM_Export_Form_Select { + use CRM_Contribute_Form_Task_TaskTrait; + /** * Call the pre-processing function. + * + * @throws \CRM_Core_Exception */ protected function callPreProcessing(): void { CRM_Contribute_Form_Task::preProcessCommon($this); diff --git a/CRM/Contribute/Form/Task.php b/CRM/Contribute/Form/Task.php index 79fea13c6c..1cef21bc6c 100644 --- a/CRM/Contribute/Form/Task.php +++ b/CRM/Contribute/Form/Task.php @@ -21,6 +21,8 @@ */ class CRM_Contribute_Form_Task extends CRM_Core_Form_Task { + use CRM_Contribute_Form_Task_TaskTrait; + /** * The array that holds all the contribution ids. * @@ -42,60 +44,6 @@ class CRM_Contribute_Form_Task extends CRM_Core_Form_Task { */ public $_includesSoftCredits = FALSE; - /** - * Get the results from the BAO_Query object based search. - * - * @return CRM_Core_DAO - * - * @throws \CRM_Core_Exception - */ - public function getSearchQueryResults(): CRM_Core_DAO { - $form = $this; - $queryParams = $form->get('queryParams'); - $isTest = FALSE; - if (is_array($queryParams)) { - foreach ($queryParams as $fields) { - if ($fields[0] === 'contribution_test') { - $isTest = TRUE; - break; - } - } - } - if (!$isTest) { - $queryParams[] = [ - 'contribution_test', - '=', - 0, - 0, - 0, - ]; - } - $returnProperties = ['contribution_id' => 1]; - $sortOrder = $sortCol = NULL; - if ($form->get(CRM_Utils_Sort::SORT_ORDER)) { - $sortOrder = $form->get(CRM_Utils_Sort::SORT_ORDER); - //Include sort column in select clause. - $sortCol = trim(str_replace(['`', 'asc', 'desc'], '', $sortOrder)); - $returnProperties[$sortCol] = 1; - } - - $form->_includesSoftCredits = CRM_Contribute_BAO_Query::isSoftCreditOptionEnabled($queryParams); - $query = new CRM_Contact_BAO_Query($queryParams, $returnProperties, NULL, FALSE, FALSE, - CRM_Contact_BAO_Query::MODE_CONTRIBUTE - ); - // @todo the function CRM_Contribute_BAO_Query::isSoftCreditOptionEnabled should handle this - // can we remove? if not why not? - if ($form->_includesSoftCredits) { - $query->_rowCountClause = " count(civicrm_contribution.id)"; - $query->_groupByComponentClause = " GROUP BY contribution_search_scredit_combined.id, contribution_search_scredit_combined.contact_id, contribution_search_scredit_combined.scredit_id "; - } - else { - $query->_distinctComponentClause = ' civicrm_contribution.id'; - $query->_groupByComponentClause = ' GROUP BY civicrm_contribution.id '; - } - return $query->searchQuery(0, 0, $sortOrder); - } - /** * Build all the data structures needed to build the form. */ diff --git a/CRM/Contribute/Form/Task/TaskTrait.php b/CRM/Contribute/Form/Task/TaskTrait.php new file mode 100644 index 0000000000..552d46d847 --- /dev/null +++ b/CRM/Contribute/Form/Task/TaskTrait.php @@ -0,0 +1,77 @@ +get('queryParams'); + $isTest = FALSE; + if (is_array($queryParams)) { + foreach ($queryParams as $fields) { + if ($fields[0] === 'contribution_test') { + $isTest = TRUE; + break; + } + } + } + if (!$isTest) { + $queryParams[] = [ + 'contribution_test', + '=', + 0, + 0, + 0, + ]; + } + $returnProperties = ['contribution_id' => 1]; + $sortOrder = $sortCol = NULL; + if ($form->get(CRM_Utils_Sort::SORT_ORDER)) { + $sortOrder = $form->get(CRM_Utils_Sort::SORT_ORDER); + //Include sort column in select clause. + $sortCol = trim(str_replace(['`', 'asc', 'desc'], '', $sortOrder)); + $returnProperties[$sortCol] = 1; + } + + $form->_includesSoftCredits = CRM_Contribute_BAO_Query::isSoftCreditOptionEnabled($queryParams); + $query = new CRM_Contact_BAO_Query($queryParams, $returnProperties, NULL, FALSE, FALSE, + CRM_Contact_BAO_Query::MODE_CONTRIBUTE + ); + // @todo the function CRM_Contribute_BAO_Query::isSoftCreditOptionEnabled should handle this + // can we remove? if not why not? + if ($form->_includesSoftCredits) { + $query->_rowCountClause = " count(civicrm_contribution.id)"; + $query->_groupByComponentClause = " GROUP BY contribution_search_scredit_combined.id, contribution_search_scredit_combined.contact_id, contribution_search_scredit_combined.scredit_id "; + } + else { + $query->_distinctComponentClause = ' civicrm_contribution.id'; + $query->_groupByComponentClause = ' GROUP BY civicrm_contribution.id '; + } + return $query->searchQuery(0, 0, $sortOrder); + } + +} -- 2.25.1