X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FExport%2FBAO%2FExport.php;h=1541cb9e8eca698f46805ad3cf27aad6134fb435;hb=6b5dfd14377463ae9a2cce380113be72cdbd00e8;hp=58350c2431346e5eb0e6cda8e5b35e7d52ca1010;hpb=9c5ee946740d25e9e13d68eea6ef534657073d40;p=civicrm-core.git diff --git a/CRM/Export/BAO/Export.php b/CRM/Export/BAO/Export.php index 58350c2431..1541cb9e8e 100644 --- a/CRM/Export/BAO/Export.php +++ b/CRM/Export/BAO/Export.php @@ -70,9 +70,6 @@ class CRM_Export_BAO_Export { * @param array $exportParams * @param string $queryOperator * - * @return array|null - * An array can be requested from within a unit test. - * * @throws \CRM_Core_Exception */ public static function exportComponents( @@ -118,6 +115,7 @@ INSERT INTO {$componentTable} SELECT distinct gc.contact_id FROM civicrm_group_c } $processor->setComponentTable($componentTable); $processor->setComponentClause($componentClause); + $processor->setIds($ids); list($query, $queryString) = $processor->runQuery($params, $order); @@ -130,6 +128,9 @@ INSERT INTO {$componentTable} SELECT distinct gc.contact_id FROM civicrm_group_c if ($processor->isMergeSameAddress()) { foreach (array_keys($processor->getAdditionalFieldsForSameAddressMerge()) as $field) { + if ($field === 'id') { + $field = 'civicrm_primary_id'; + } $processor->setColumnAsCalculationOnly($field); } } @@ -205,15 +206,7 @@ INSERT INTO {$componentTable} SELECT distinct gc.contact_id FROM civicrm_group_c $processor->mergeSameAddress(); } - // In order to be able to write a unit test against this function we need to suppress - // the csv writing. In future hopefully the csv writing & the main processing will be in separate functions. - if (empty($exportParams['suppress_csv_for_testing'])) { - self::writeCSVFromTable($processor); - } - else { - // return tableName sqlColumns headerRows in test context - return [$processor->getTemporaryTable(), $sqlColumns, $processor->getHeaderRows(), $processor]; - } + $processor->writeCSVFromTable(); // delete the export temp table and component table $sql = "DROP TABLE IF EXISTS " . $processor->getTemporaryTable(); @@ -364,56 +357,6 @@ VALUES $sqlValueString CRM_Core_DAO::executeQuery($sql); } - /** - * @param \CRM_Export_BAO_ExportProcessor $processor - */ - public static function writeCSVFromTable($processor) { - // call export hook - $headerRows = $processor->getHeaderRows(); - $exportTempTable = $processor->getTemporaryTable(); - CRM_Utils_Hook::export($exportTempTable, $headerRows, $sqlColumns, $exportMode, $componentTable, $ids); - if ($exportTempTable !== $processor->getTemporaryTable()) { - CRM_Core_Error::deprecatedFunctionWarning('altering the export table in the hook is deprecated (in some flows the table itself will be)'); - $processor->setTemporaryTable($exportTempTable); - } - $exportTempTable = $processor->getTemporaryTable(); - $writeHeader = TRUE; - $offset = 0; - $limit = self::EXPORT_ROW_COUNT; - - $query = "SELECT * FROM $exportTempTable"; - - while (1) { - $limitQuery = $query . " -LIMIT $offset, $limit -"; - $dao = CRM_Core_DAO::executeQuery($limitQuery); - - if ($dao->N <= 0) { - break; - } - - $componentDetails = []; - while ($dao->fetch()) { - $row = []; - - foreach (array_keys($processor->getSQLColumns()) as $column) { - $row[$column] = $dao->$column; - } - $componentDetails[] = $row; - } - CRM_Core_Report_Excel::writeCSVFile($processor->getExportFileName(), - $headerRows, - $componentDetails, - NULL, - $writeHeader - ); - - $writeHeader = FALSE; - $offset += $limit; - } - } - /** * Get the ids that we want to get related contact details for. *