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