From 30f8901b0b10740e3fe7ce8723b3d955c702f90b Mon Sep 17 00:00:00 2001 From: Pradeep Nayak Date: Tue, 14 Jul 2015 20:26:06 +0530 Subject: [PATCH] --ICM-10, added condition to check FT-ACL for Repeat Contribution report --- CRM/Report/Form.php | 12 +++++++----- CRM/Report/Form/Contribute/Repeat.php | 24 +++++++++++++++++++++--- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/CRM/Report/Form.php b/CRM/Report/Form.php index dcf0c343b8..d8e6fed394 100644 --- a/CRM/Report/Form.php +++ b/CRM/Report/Form.php @@ -4494,7 +4494,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a } - public function getPermissionedFTQuery(&$query, $alias = NULL) { + public function getPermissionedFTQuery(&$query, $alias = NULL, $return = FALSE) { if (!CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus()) { return FALSE; } @@ -4507,7 +4507,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a $contFTs = $liFTs = implode(',', array_keys($financialTypes)); } if ($alias) { - $temp = $query->_aliases['civicrm_line_item']; + $temp = CRM_Utils_Array::value('civicrm_line_item', $query->_aliases); $query->_aliases['civicrm_line_item'] = $alias; } if (empty($query->_where)) { @@ -4524,11 +4524,13 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a AND {$query->_aliases['civicrm_line_item']}.id IS NULL GROUP BY {$query->_aliases['civicrm_contribution']}.id"; CRM_Core_DAO::executeQuery($sql); - $query->_from .= " - INNER JOIN civicrm_contribution_temp temp ON {$query->_aliases['civicrm_contribution']}.id = temp.id "; if (isset($temp)) { $query->_aliases['civicrm_line_item'] = $temp; } + $from = " INNER JOIN civicrm_contribution_temp temp ON {$query->_aliases['civicrm_contribution']}.id = temp.id "; + if ($return) { + return $from; + } + $query->_from .= $from; } - } diff --git a/CRM/Report/Form/Contribute/Repeat.php b/CRM/Report/Form/Contribute/Repeat.php index 4cfb68c75e..a1fc32c310 100644 --- a/CRM/Report/Form/Contribute/Repeat.php +++ b/CRM/Report/Form/Contribute/Repeat.php @@ -356,7 +356,23 @@ LEFT JOIN civicrm_temp_civireport_repeat1 {$this->_aliases['civicrm_contribution LEFT JOIN civicrm_temp_civireport_repeat2 {$this->_aliases['civicrm_contribution']}2 ON $fromAlias.$fromCol = {$this->_aliases['civicrm_contribution']}2.$contriCol"; } - + + /** + * @param string $replaceAliasWith + * + * @return mixed|string + */ + public function fromContribution($replaceAliasWith = 'contribution1') { + $from = " FROM civicrm_contribution {$replaceAliasWith} "; + $temp = $this->_aliases['civicrm_contribution']; + $this->_aliases['civicrm_contribution'] = $replaceAliasWith; + $this->_from = $from; + $from .= (string) $this->getPermissionedFTQuery($this, 'civicrm_line_item_report', TRUE); + $this->_aliases['civicrm_contribution'] = $temp; + $this->_where = ''; + return $from; + } + /** * @param string $replaceAliasWith * @@ -802,21 +818,23 @@ GROUP BY currency } $subWhere = $this->whereContribution(); + $from = $this->fromContribution(); $subContributionQuery1 = " SELECT {$subSelect1} contribution1.{$contriCol}, sum( contribution1.total_amount ) AS total_amount_sum, count( * ) AS total_amount_count -FROM civicrm_contribution contribution1 +{$from} {$subWhere} GROUP BY contribution1.{$contriCol}"; $subWhere = $this->whereContribution('contribution2'); + $from = $this->fromContribution('contribution2'); $subContributionQuery2 = " SELECT {$subSelect2} contribution2.{$contriCol}, sum( contribution2.total_amount ) AS total_amount_sum, count( * ) AS total_amount_count, currency -FROM civicrm_contribution contribution2 +{$from} {$subWhere} GROUP BY contribution2.{$contriCol}"; -- 2.25.1