Skip to content

Commit

Permalink
Merge pull request #11476 from eileenmcnaughton/report
Browse files Browse the repository at this point in the history
CRM-21616 ensure sql metadata is available from api
  • Loading branch information
monishdeb authored Feb 6, 2018
2 parents 0396305 + 15d9e60 commit d3e0119
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion CRM/Report/Form.php
Original file line number Diff line number Diff line change
Expand Up @@ -1313,7 +1313,7 @@ protected function assignTabs() {
*
* @param string $sql
*/
protected function addToDeveloperTab($sql) {
public function addToDeveloperTab($sql) {
if (!CRM_Core_Permission::check('view report sql')) {
return;
}
Expand Down
1 change: 1 addition & 0 deletions api/v3/ReportTemplate.php
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ function _civicrm_api3_report_template_getrows($params) {
$reportInstance->setOffsetValue($options['offset']);
$reportInstance->beginPostProcessCommon();
$sql = $reportInstance->buildQuery();
$reportInstance->addToDeveloperTab($sql);
$rows = $metadata = $requiredMetadata = array();
$reportInstance->buildRows($sql, $rows);
$reportInstance->formatDisplay($rows);
Expand Down
9 changes: 9 additions & 0 deletions tests/phpunit/api/v3/ReportTemplateTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,15 @@ public function testLybuntReportWithFYData() {
));

$this->assertEquals(2, $rows['count'], "Report failed - the sql used to generate the results was " . print_r($rows['metadata']['sql'], TRUE));

$this->assertContains('DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
SELECT SQL_CALC_FOUND_ROWS contact_civireport.id as cid FROM civicrm_contact contact_civireport INNER JOIN civicrm_contribution contribution_civireport USE index (received_date) ON contribution_civireport.contact_id = contact_civireport.id
AND contribution_civireport.is_test = 0
AND contribution_civireport.receive_date BETWEEN \'20140701000000\' AND \'20150630235959\'
LEFT JOIN civicrm_contribution cont_exclude ON cont_exclude.contact_id = contact_civireport.id
AND cont_exclude.receive_date BETWEEN \'2015-7-1\' AND \'20160630235959\' WHERE cont_exclude.id IS NULL AND 1 AND ( contribution_civireport.contribution_status_id IN (1) )
GROUP BY contact_civireport.id', $rows['metadata']['sql'][0]);
}

/**
Expand Down

0 comments on commit d3e0119

Please sign in to comment.