Example #1
0
 /**
  * Class constructor.
  *
  * @param array $queryParams
  *   Array of parameters for query.
  * @param \const|int $action - action of search basic or advanced.
  * @param string $contributionClause
  *   If the caller wants to further restrict the search (used in contributions).
  * @param bool $single
  *   Are we dealing only with one contact?.
  * @param int $limit
  *   How many contributions do we want returned.
  *
  * @param string $context
  * @param null $compContext
  *
  * @return \CRM_Contribute_Selector_Search
  */
 public function __construct(&$queryParams, $action = CRM_Core_Action::NONE, $contributionClause = NULL, $single = FALSE, $limit = NULL, $context = 'search', $compContext = NULL)
 {
     // submitted form values
     $this->_queryParams =& $queryParams;
     $this->_single = $single;
     $this->_limit = $limit;
     $this->_context = $context;
     $this->_compContext = $compContext;
     $this->_contributionClause = $contributionClause;
     // type of selector
     $this->_action = $action;
     $this->_includeSoftCredits = CRM_Contribute_BAO_Query::isSoftCreditOptionEnabled($this->_queryParams);
     $this->_query = new CRM_Contact_BAO_Query($this->_queryParams, CRM_Contribute_BAO_Query::selectorReturnProperties(), NULL, FALSE, FALSE, CRM_Contact_BAO_Query::MODE_CONTRIBUTE);
     // @todo the function CRM_Contribute_BAO_Query::isSoftCreditOptionEnabled should handle this
     // can we remove? if not why not?
     if ($this->_includeSoftCredits) {
         $this->_query->_rowCountClause = " count(civicrm_contribution.id)";
         $this->_query->_groupByComponentClause = " GROUP BY contribution_search_scredit_combined.id, contribution_search_scredit_combined.contact_id, contribution_search_scredit_combined.scredit_id ";
     } else {
         $this->_query->_distinctComponentClause = " civicrm_contribution.id";
         $this->_query->_groupByComponentClause = " GROUP BY civicrm_contribution.id ";
     }
 }