<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.6 |
+ | CiviCRM version 4.7 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
*
* @package CRM
* @copyright CiviCRM LLC (c) 2004-2015
- * $Id$
*/
class CRM_Contribute_BAO_Query {
$query->_select['contribution_campaign_title'] = "civicrm_campaign.title as contribution_campaign_title";
$query->_element['contribution_campaign_title'] = $query->_tables['civicrm_campaign'] = 1;
}
+
+ // Adding address_id in a way that is more easily extendable since the above is a bit ... wordy.
+ $supportedBasicReturnValues = array('address_id');
+ foreach ($supportedBasicReturnValues as $fieldName) {
+ if (!empty($query->_returnProperties[$fieldName])) {
+ $query->_select[$fieldName] = "civicrm_contribution.{$fieldName} as $fieldName";
+ $query->_element[$fieldName] = $query->_tables['civicrm_contribution'] = 1;
+ }
+ }
+
+ //CRM-16116: get financial_type_id
+ if (!empty($query->_returnProperties['financial_type_id'])) {
+ $query->_select['financial_type_id'] = "civicrm_contribution.financial_type_id as financial_type_id";
+ $query->_element['financial_type_id'] = $query->_tables['civicrm_contribution'] = 1;
+ }
// LCD 716 END
}
case 'contribution_contact_id':
case (strpos($name, '_amount') !== FALSE):
case (strpos($name, '_date') !== FALSE && $name != 'contribution_fulfilled_date'):
+ case 'contribution_campaign_id':
$qillName = $name;
$pseudoExtraParam = NULL;
// @todo including names using a switch statement & then using an 'if' to filter them out is ... odd!
'contribution_check_number',
'contribution_payment_instrument_id',
'contribution_contact_id',
+ 'contribution_campaign_id',
)
)
) {
$name = str_replace('contribution_', '', $name);
- if (!in_array($name, array('source', 'id', 'contact_id'))) {
+ if (!in_array($name, array('source', 'id', 'contact_id', 'campaign_id'))) {
$qillName = str_replace('contribution_', '', $qillName);
}
}
$query->_tables['civicrm_contribution_soft'] = $query->_whereTables['civicrm_contribution_soft'] = 1;
return;
- case 'contribution_campaign_id':
- $campParams = array(
- 'op' => $op,
- 'campaign' => $value,
- 'grouping' => $grouping,
- 'tableName' => 'civicrm_contribution',
- );
- CRM_Campaign_BAO_Query::componentSearchClause($campParams, $query);
- return;
-
case 'contribution_batch_id':
$batches = CRM_Contribute_PseudoConstant::batch();
$query->_where[$grouping][] = " civicrm_entity_batch.batch_id $op $value";
$query->_tables['contribution_batch'] = $query->_whereTables['contribution_batch'] = 1;
return;
+ case 'contribution_product_id':
+ // CRM-16713 - contribution search by premiums on 'Find Contribution' form.
+ $qillName = $name;
+ list($operator, $productValue) = CRM_Contact_BAO_Query::buildQillForFieldValue('CRM_Contribute_DAO_Product', $name, $value, $op);
+ $query->_qill[$grouping][] = ts('%1 %2 %3', array(1 => $fields[$qillName]['title'], 2 => $operator, 3 => $productValue));
+ $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_product.id", $op, $value);
+ $query->_tables['civicrm_product'] = $query->_whereTables['civicrm_product'] = 1;
+ return;
+
default:
//all other elements are handle in this case
$fldName = substr($name, 13);
'contribution_batch' => 1,
'contribution_campaign_title' => 1,
'contribution_campaign_id' => 1,
+ 'contribution_product_id' => 1,
);
if (self::isSoftCreditOptionEnabled()) {
$properties = array_merge($properties, self::softCreditReturnProperties());
/**
* Add all the elements shared between contribute search and advnaced search.
*
- *
* @param CRM_Core_Form $form
- *
- * @return void
*/
public static function buildSearchForm(&$form) {
$form->add('select', 'contribution_page_id',
ts('Contribution Page'),
- array(
- '' => ts('- any -'),
- ) +
CRM_Contribute_PseudoConstant::contributionPage(),
- FALSE, array('class' => 'crm-select2')
+ FALSE, array('class' => 'crm-select2', 'multiple' => 'multiple', 'placeholder' => ts('- any -'))
);
$form->addSelect('payment_instrument_id',
- array('entity' => 'contribution', 'label' => ts('Payment Method'), 'option_url' => NULL, 'placeholder' => ts('- any -'))
+ array('entity' => 'contribution', 'multiple' => 'multiple', 'label' => ts('Payment Method'), 'option_url' => NULL, 'placeholder' => ts('- any -'))
);
// Fixme: Not a true entityRef field. Relies on PCP.js.tpl
// stores the label
$form->add('hidden', 'pcp_made_through');
- $statusValues = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status');
+ $statusValues = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id');
// Remove status values that are only used for recurring contributions or pledges (In Progress, Overdue).
unset($statusValues['5'], $statusValues['6']);
-
- $form->addSelect('contribution_status_id',
- array('entity' => 'contribution', 'multiple' => 'multiple', 'label' => ts('Contribution Status(s)'), 'option_url' => NULL, 'placeholder' => ts('- any -'))
+ $form->add('select', 'contribution_status_id',
+ ts('Contribution Status'), $statusValues,
+ FALSE, array('class' => 'crm-select2', 'multiple' => 'multiple')
);
// Add fields for thank you and receipt
)
);
+ // CRM-16713 - contribution search by premiums on 'Find Contribution' form.
+ $form->add('select', 'contribution_product_id',
+ ts('Premium'),
+ CRM_Contribute_PseudoConstant::products(),
+ FALSE, array('class' => 'crm-select2', 'multiple' => 'multiple', 'placeholder' => ts('- any -'))
+ );
+
// Add all the custom searchable fields
$contribution = array('Contribution');
$groupDetails = CRM_Core_BAO_CustomGroup::getGroupDetail(NULL, TRUE, $contribution);