Skip to content

Commit

Permalink
Merge pull request #13607 from eileenmcnaughton/cont_summary_extract
Browse files Browse the repository at this point in the history
dev/core#720 [REF] refactor out components of contributionSummary function
  • Loading branch information
colemanw authored Feb 18, 2019
2 parents 2995cd1 + 261b72c commit 2d97ba3
Showing 1 changed file with 13 additions and 15 deletions.
28 changes: 13 additions & 15 deletions CRM/Contact/BAO/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -5109,16 +5109,6 @@ public function summaryContribution($context = NULL) {

$summary['total']['currencyCount'] = count($summary['total']['median']);

if (!empty($summary['total']['amount'])) {
$summary['total']['amount'] = implode(', ', $summary['total']['amount']);
$summary['total']['avg'] = implode(', ', $summary['total']['avg']);
$summary['total']['mode'] = implode(', ', $summary['total']['mode']);
$summary['total']['median'] = implode(', ', $summary['total']['median']);
}
else {
$summary['total']['amount'] = $summary['total']['avg'] = $summary['total']['median'] = 0;
}

$this->addBasicCancelStatsToSummary($summary, $where, $from);

return $summary;
Expand Down Expand Up @@ -6544,7 +6534,8 @@ public function getSelect() {
* @return array
*/
protected function addBasicStatsToSummary(&$summary, $where, $from) {
$summary['total']['count'] = $summary['total']['amount'] = $summary['total']['avg'] = "n/a";
$summary['total']['count'] = 0;
$summary['total']['amount'] = $summary['total']['avg'] = [];

$query = "
SELECT COUNT( conts.total_amount ) as total_count,
Expand All @@ -6562,13 +6553,18 @@ protected function addBasicStatsToSummary(&$summary, $where, $from) {

$dao = CRM_Core_DAO::executeQuery($query);

$summary['total']['count'] = 0;
$summary['total']['amount'] = $summary['total']['avg'] = [];
while ($dao->fetch()) {
$summary['total']['count'] += $dao->total_count;
$summary['total']['amount'][] = CRM_Utils_Money::format($dao->total_amount, $dao->currency);
$summary['total']['avg'][] = CRM_Utils_Money::format($dao->total_avg, $dao->currency);
}
if (!empty($summary['total']['amount'])) {
$summary['total']['amount'] = implode(', ', $summary['total']['amount']);
$summary['total']['avg'] = implode(', ', $summary['total']['avg']);
}
else {
$summary['total']['amount'] = $summary['total']['avg'] = $summary['total']['median'] = 0;
}
return $summary;
}

Expand Down Expand Up @@ -6603,7 +6599,8 @@ protected function addModeToStats(&$summary, $from, $where) {
) as conts
GROUP BY currency";

$summary['total']['mode'] = CRM_Contribute_BAO_Contribution::computeStats('mode', $modeSQL);
$mode = CRM_Contribute_BAO_Contribution::computeStats('mode', $modeSQL);
$summary['total']['mode'] = implode(', ', (array) $mode);
}

/**
Expand All @@ -6621,7 +6618,8 @@ protected function addModeToStats(&$summary, $from, $where) {
*/
protected function addMedianToStats(&$summary, $where, $from) {
$medianSQL = "{$from} {$where} AND civicrm_contribution.contribution_status_id = 1 ";
$summary['total']['median'] = CRM_Contribute_BAO_Contribution::computeStats('median', $medianSQL, 'civicrm_contribution');
$median = CRM_Contribute_BAO_Contribution::computeStats('median', $medianSQL, 'civicrm_contribution');
$summary['total']['median'] = implode(', ', (array) $median);
}

/**
Expand Down

0 comments on commit 2d97ba3

Please sign in to comment.