From daffb46421268c2b2c6f4daab67fd527b94f6300 Mon Sep 17 00:00:00 2001
From: Franky Van Liedekerke
Date: Mon, 24 Oct 2016 23:56:18 +0200
Subject: [PATCH] Allow to search on just being an active member
---
CRM/Member/BAO/Query.php | 15 +++++++++++++++
templates/CRM/Member/Form/Search/Common.tpl | 4 ++++
2 files changed, 19 insertions(+)
diff --git a/CRM/Member/BAO/Query.php b/CRM/Member/BAO/Query.php
index 6a7ebb5cd1..58dd377070 100644
--- a/CRM/Member/BAO/Query.php
+++ b/CRM/Member/BAO/Query.php
@@ -86,6 +86,13 @@ class CRM_Member_BAO_Query {
$query->_whereTables['civicrm_membership_status'] = 1;
}
+ if (!empty($query->_returnProperties['membership_is_current_member'])) {
+ $query->_select['is_current_member'] = "civicrm_membership_status.is_current_member as is_current_member";
+ $query->_element['is_current_member'] = 1;
+ $query->_tables['civicrm_membership_status'] = 1;
+ $query->_whereTables['civicrm_membership_status'] = 1;
+ }
+
if (!empty($query->_returnProperties['membership_status_id'])) {
$query->_select['status_id'] = "civicrm_membership_status.id as status_id";
$query->_element['status_id'] = 1;
@@ -251,6 +258,13 @@ class CRM_Member_BAO_Query {
$query->_tables['civicrm_membership'] = $query->_whereTables['civicrm_membership'] = 1;
return;
+ case 'membership_is_current_member':
+ // We don't want to include all tests for sql OR CRM-7827
+ $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_membership_status.is_current_member", $op, $value, "Boolean");
+ $query->_qill[$grouping][] = ts('Active Member');
+ $query->_tables['civicrm_membership_status'] = $query->_whereTables['civicrm_membership_status'] = 1;
+ return;
+
case 'member_test':
// We don't want to include all tests for sql OR CRM-7827
if (!$value || $query->getOperator() != 'OR') {
@@ -486,6 +500,7 @@ class CRM_Member_BAO_Query {
$form->addFormRule(array('CRM_Member_BAO_Query', 'formRule'), $form);
+ $form->addYesNo('membership_is_current_member', ts('Active Member?'), TRUE);
$form->addYesNo('member_is_primary', ts('Primary Member?'), TRUE);
$form->addYesNo('member_pay_later', ts('Pay Later?'), TRUE);
diff --git a/templates/CRM/Member/Form/Search/Common.tpl b/templates/CRM/Member/Form/Search/Common.tpl
index 02b586d9b6..e21f2dd502 100644
--- a/templates/CRM/Member/Form/Search/Common.tpl
+++ b/templates/CRM/Member/Form/Search/Common.tpl
@@ -41,6 +41,10 @@
+
+ {$form.membership_is_current_member.label}
+ {$form.membership_is_current_member.html}
+
{$form.member_is_primary.label}
{help id="id-member_is_primary" file="CRM/Member/Form/Search.hlp"}
--
2.25.1
|