- case 'contribution_soft_credit_type_id':
- $names = array();
- $softCreditTypes = CRM_Core_OptionGroup::values("soft_credit_type");
- if (is_array($value)) {
- $val = array();
- foreach ($value as $k => $v) {
- if ($v) {
- $val[$k] = $v;
- $names[] = $softCreditTypes[$v];
- }
- }
- $scTypes = (count($val) > 0) ? implode(',', $val) : '';
- if ($scTypes) {
- $op = 'IN';
- $scTypes = "({$scTypes})";
- }
- }
- else {
- $scTypes = $value;
- $names[] = $softCreditTypes[$value];
- }
- $query->_qill[$grouping][] = ts('Soft Credit Type %1', array(1 => $op)) . " '" . implode("' " . ts('or') . " '", $names) . "'";
- $query->_where[$grouping][] =
- CRM_Contact_BAO_Query::buildClause(
- "civicrm_contribution_soft.soft_credit_type_id",
- $op,
- $scTypes,
- "Integer"
- );
- $query->_tables['civicrm_contribution_soft'] = $query->_whereTables['civicrm_contribution_soft'] = 1;
- return;
-
- case 'contribution_payment_instrument_id':
- case 'contribution_payment_instrument':
- $pi = array();
- $pis = CRM_Contribute_PseudoConstant::paymentInstrument();
- if (is_array($value)) {
- foreach ($value as $k => $v) {
- if ($v) {
- $op = 'IN';
- $pi[] = $pis[$v];
- }
- }
- }
- else {
- if (!empty($value)) {
- $pi[] = $pis[$value];
- }
- }
-
- $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_contribution.payment_instrument_id",
- $op, $value, "Integer"
- );
-
- $query->_qill[$grouping][] = ts('Paid By - %1', array(1 => $op)) . " '" . implode("' " . ts('or') . " '", $pi) . "'";
- $query->_tables['civicrm_contribution'] = $query->_whereTables['civicrm_contribution'] = 1;
- return;
-
- case 'contribution_status':
- case 'contribution_status_id':
- if (is_array($value)) {
- foreach ($value as $k => $v) {
- if ($v) {
- $val[$k] = $k;
- }
- }
-
- $status = implode(',', $val);
-
- if (count($val) > 0) {
- $op = 'IN';
- $status = "({$status})";
- }
- }
- else {
- $status = $value;
- }
-
- $statusValues = CRM_Core_OptionGroup::values("contribution_status");
-
- $names = array();
- if (isset($val) &&
- is_array($val)
- ) {
- foreach ($val as $id => $dontCare) {
- $names[] = $statusValues[$id];
- }
- }
- else {
- if (!empty($value)) {
- $names[] = $statusValues[$value];
- }
- }
-
- $query->_qill[$grouping][] = ts('Contribution Status %1', array(1 => $op)) . ' ' . implode(' ' . ts('or') . ' ', $names);
- $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_contribution.contribution_status_id",
- $op,
- $status,
- "Integer"
- );
- $query->_tables['civicrm_contribution'] = $query->_whereTables['civicrm_contribution'] = 1;
- return;
-
- case 'contribution_source':
- $value = $strtolower(CRM_Core_DAO::escapeString($value));
- if ($wildcard) {
- $value = "%$value%";
- $op = 'LIKE';
- }
- $wc = ($op != 'LIKE') ? "LOWER(civicrm_contribution.source)" : "civicrm_contribution.source";
- $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($wc, $op, $value, "String");
- $query->_qill[$grouping][] = ts('Contribution Source %1 %2', array(1 => $op, 2 => $quoteValue));
- $query->_tables['civicrm_contribution'] = $query->_whereTables['civicrm_contribution'] = 1;
- return;
-
- case 'contribution_trxn_id':
- case 'contribution_transaction_id':
- $wc = ($op != 'LIKE') ? "LOWER(civicrm_contribution.trxn_id)" : "civicrm_contribution.trxn_id";
- $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($wc, $op, $value, "String");
- $query->_qill[$grouping][] = ts('Transaction ID %1 %2', array(1 => $op, 2 => $quoteValue));
- $query->_tables['civicrm_contribution'] = $query->_whereTables['civicrm_contribution'] = 1;
- return;
-
- case 'contribution_check_number':
- $wc = ($op != 'LIKE') ? "LOWER(civicrm_contribution.check_number)" : "civicrm_contribution.check_number";
- $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($wc, $op, $value, "String");
- $query->_qill[$grouping][] = ts('Check Number %1 %2', array(1 => $op, 2 => $quoteValue));
- $query->_tables['civicrm_contribution'] = $query->_whereTables['civicrm_contribution'] = 1;
- return;
-