Skip to content

Commit

Permalink
Add field in "Advanced Search" to search for contacts with specific r…
Browse files Browse the repository at this point in the history
…ecurring contribution status(es).

CRM_Contribute_BAO_ContributionRecur: add multi-select dropdown field to select recurring contribution status.

CRM_Contribute_BAO_Query: add case to construct where clause for recurring contribution status.

templates/CRM/Contribute/Form/Search/ContributionRecur.tpl: add recurring contribution status field in template.
  • Loading branch information
Victor Huang committed Oct 6, 2017
1 parent 8d45518 commit 1aaac01
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
7 changes: 7 additions & 0 deletions CRM/Contribute/BAO/ContributionRecur.php
Original file line number Diff line number Diff line change
Expand Up @@ -777,6 +777,13 @@ public static function recurringContribution(&$form) {
CRM_Core_Form_Date::buildDateRange($form, 'contribution_recur_next_sched_contribution_date', 1, '_low', '_high', ts('From'), FALSE, FALSE, 'birth');
CRM_Core_Form_Date::buildDateRange($form, 'contribution_recur_failure_retry_date', 1, '_low', '_high', ts('From'), FALSE, FALSE, 'birth');
CRM_Core_Form_Date::buildDateRange($form, 'contribution_recur_cancel_date', 1, '_low', '_high', ts('From'), FALSE, FALSE, 'birth');

// Add field for contribution status
$contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus();
$form->addSelect('contribution_recur_contribution_status_id',
array('entity' => 'contribution', 'multiple' => 'multiple', 'context' => 'search', 'options' => $contributionStatus)
);

$form->addElement('text', 'contribution_recur_processor_id', ts('Processor ID'), CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionRecur', 'processor_id'));
$form->addElement('text', 'contribution_recur_trxn_id', ts('Transaction ID'), CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionRecur', 'trxn_id'));

Expand Down
7 changes: 7 additions & 0 deletions CRM/Contribute/BAO/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,13 @@ public static function whereClauseSingle(&$values, &$query) {
$query->_tables['civicrm_contribution_recur'] = $query->_whereTables['civicrm_contribution_recur'] = 1;
return;

case 'contribution_recur_contribution_status_id':
$query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_contribution_recur.contribution_status_id", $op, $value, 'String');
list($op, $value) = CRM_Contact_BAO_Query::buildQillForFieldValue('CRM_Contribute_DAO_ContributionRecur', 'contribution_status_id', $value, $op, $pseudoExtraParam);
$query->_qill[$grouping][] = ts('%1 %2 %3', array(1 => 'Recurring Contribution Status', 2 => $op, 3 => $value));
$query->_tables['civicrm_contribution_recur'] = $query->_whereTables['civicrm_contribution_recur'] = 1;
return;

case 'contribution_note':
$value = $strtolower(CRM_Core_DAO::escapeString($value));
if ($wildcard) {
Expand Down
7 changes: 7 additions & 0 deletions templates/CRM/Contribute/Form/Search/ContributionRecur.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,13 @@
{include file="CRM/Core/DateRange.tpl" fieldName="contribution_recur_cancel_date" from='_low' to='_high'}
</td>
</tr>
<tr>
<td>{ts}Recurring Contribution Status{/ts}</td>
<td></td>
<td col='span2'>
{$form.contribution_recur_contribution_status_id.html|crmAddClass:twenty}
</td>
</tr>
{if $contributionRecurGroupTree}
<tr>
<td colspan="4">
Expand Down

0 comments on commit 1aaac01

Please sign in to comment.