From 43767da25753c0fe2558efaf102ba2cb807f131c Mon Sep 17 00:00:00 2001 From: eileen Date: Thu, 11 Jul 2019 01:27:11 +1200 Subject: [PATCH] Move order by to query generator --- CRM/Export/BAO/Export.php | 16 ---------------- CRM/Export/BAO/ExportProcessor.php | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/CRM/Export/BAO/Export.php b/CRM/Export/BAO/Export.php index 0513b39162..fdeb0f09c0 100644 --- a/CRM/Export/BAO/Export.php +++ b/CRM/Export/BAO/Export.php @@ -158,22 +158,6 @@ INSERT INTO {$componentTable} SELECT distinct gc.contact_id FROM civicrm_group_c // This perhaps only needs calling when $mergeSameHousehold == 1 self::buildRelatedContactArray($selectAll, $ids, $processor, $componentTable); - if ($order) { - // always add contact_a.id to the ORDER clause - // so the order is deterministic - //CRM-15301 - if (strpos('contact_a.id', $order) === FALSE) { - $order .= ", contact_a.id"; - } - - list($field, $dir) = explode(' ', $order, 2); - $field = trim($field); - if (!empty($processor->getReturnProperties()[$field])) { - //CRM-15301 - $queryString .= " ORDER BY $order"; - } - } - $addPaymentHeader = FALSE; list($outputColumns, $metadata) = self::getExportStructureArrays($processor); diff --git a/CRM/Export/BAO/ExportProcessor.php b/CRM/Export/BAO/ExportProcessor.php index 9c81f1689c..92f83e87d8 100644 --- a/CRM/Export/BAO/ExportProcessor.php +++ b/CRM/Export/BAO/ExportProcessor.php @@ -743,7 +743,23 @@ class CRM_Export_BAO_ExportProcessor { } $groupBy = $this->getGroupBy($query); - return [$query, "$select $from $where $having $groupBy"]; + $queryString = "$select $from $where $having $groupBy"; + if ($order) { + // always add contact_a.id to the ORDER clause + // so the order is deterministic + //CRM-15301 + if (strpos('contact_a.id', $order) === FALSE) { + $order .= ", contact_a.id"; + } + + list($field, $dir) = explode(' ', $order, 2); + $field = trim($field); + if (!empty($this->getReturnProperties()[$field])) { + //CRM-15301 + $queryString .= " ORDER BY $order"; + } + } + return [$query, $queryString]; } /** @@ -1677,6 +1693,7 @@ class CRM_Export_BAO_ExportProcessor { } return $returnProperties; } + /** * @param object $query * CRM_Contact_BAO_Query -- 2.25.1