<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2013 |
+--------------------------------------------------------------------+
$query->_whereTables['civicrm_membership'] = 1;
//add membership type
- if (CRM_Utils_Array::value('membership_type', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['membership_type'])) {
$query->_select['membership_type'] = "civicrm_membership_type.name as membership_type";
$query->_element['membership_type'] = 1;
$query->_tables['civicrm_membership_type'] = 1;
}
//add join date
- if (CRM_Utils_Array::value('join_date', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['join_date'])) {
$query->_select['join_date'] = "civicrm_membership.join_date as join_date";
$query->_element['join_date'] = 1;
}
//add source
- if (CRM_Utils_Array::value('membership_source', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['membership_source'])) {
$query->_select['membership_source'] = "civicrm_membership.source as membership_source";
$query->_element['membership_source'] = 1;
}
//add status
- if (CRM_Utils_Array::value('membership_status', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['membership_status'])) {
$query->_select['membership_status'] = "civicrm_membership_status.label as membership_status";
$query->_element['membership_status'] = 1;
$query->_tables['civicrm_membership_status'] = 1;
$query->_whereTables['civicrm_membership_status'] = 1;
}
- if (CRM_Utils_Array::value('status_id', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['status_id'])) {
$query->_select['status_id'] = "civicrm_membership_status.id as status_id";
$query->_element['status_id'] = 1;
$query->_tables['civicrm_membership_status'] = 1;
}
//add start date / end date
- if (CRM_Utils_Array::value('membership_start_date', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['membership_start_date'])) {
$query->_select['membership_start_date'] = "civicrm_membership.start_date as membership_start_date";
$query->_element['membership_start_date'] = 1;
}
- if (CRM_Utils_Array::value('membership_end_date', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['membership_end_date'])) {
$query->_select['membership_end_date'] = "civicrm_membership.end_date as membership_end_date";
$query->_element['membership_end_date'] = 1;
}
//add owner_membership_id
- if (CRM_Utils_Array::value('owner_membership_id', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['owner_membership_id'])) {
$query->_select['owner_membership_id'] = "civicrm_membership.owner_membership_id as owner_membership_id";
$query->_element['owner_membership_id'] = 1;
}
//add max_related
- if (CRM_Utils_Array::value('max_related', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['max_related'])) {
$query->_select['max_related'] = "civicrm_membership.max_related as max_related";
$query->_element['max_related'] = 1;
}
//add recur id w/o taking contribution table in join.
- if (CRM_Utils_Array::value('membership_recur_id', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['membership_recur_id'])) {
$query->_select['membership_recur_id'] = "civicrm_membership.contribution_recur_id as membership_recur_id";
$query->_element['membership_recur_id'] = 1;
}
//add campaign id.
- if (CRM_Utils_Array::value('member_campaign_id', $query->_returnProperties)) {
+ if (!empty($query->_returnProperties['member_campaign_id'])) {
$query->_select['member_campaign_id'] = 'civicrm_membership.campaign_id as member_campaign_id';
$query->_element['member_campaign_id'] = 1;
}
}
static function where(&$query) {
- $grouping = $testCondition = NULL;
+ $grouping = NULL;
foreach (array_keys($query->_params) as $id) {
- if (!CRM_Utils_Array::value(0, $query->_params[$id])) {
+ if (empty($query->_params[$id][0])) {
continue;
}
- if (substr($query->_params[$id][0], 0, 7) == 'member_') {
+ if (substr($query->_params[$id][0], 0, 7) == 'member_' || substr($query->_params[$id][0], 0, 11) == 'membership_') {
if ($query->_mode == CRM_Contact_BAO_QUERY::MODE_CONTACTS) {
$query->_useDistinct = TRUE;
}
- if ($query->_params[$id][0] == 'member_test') {
- $testCondition = $id;
- continue;
- }
$grouping = $query->_params[$id][3];
self::whereClauseSingle($query->_params[$id], $query);
}
}
- // Only add test condition if other fields are selected
- if ($grouping !== NULL && $testCondition &&
- // we dont want to include all tests for sql OR CRM-7827
- $query->getOperator() != 'OR'
- ) {
- self::whereClauseSingle($query->_params[$testCondition], $query);
- }
}
static function whereClauseSingle(&$values, &$query) {
$query->_tables['civicrm_membership'] = $query->_whereTables['civicrm_membership'] = 1;
return;
+ case 'membership_status':
case 'member_status_id':
- $status = implode(',', array_keys($value));
-
- if (count($value) > 1) {
- $op = 'IN';
- $status = "({$status})";
+ if (!is_array($value)) {
+ $status = $value;
+ if (!empty($value)) {
+ $value = array_flip(explode(",", str_replace(array( '(', ')' ), '', $value)));
+ }
+ else {
+ $value = array();
+ }
+ }
+ else {
+ $status = implode(',', array_keys($value));
+ if (count($value) > 1) {
+ $op = 'IN';
+ $status = "({$status})";
+ }
}
$names = array();
return;
case 'member_test':
- $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_membership.is_test", $op, $value, "Boolean");
- if ($value) {
- $query->_qill[$grouping][] = ts('Membership is a Test');
+ // We dont want to include all tests for sql OR CRM-7827
+ if (!$value || $query->getOperator() != 'OR') {
+ $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_membership.is_test", $op, $value, "Boolean");
+ if ($value) {
+ $query->_qill[$grouping][] = ts('Membership is a Test');
+ }
}
return;
$query->_tables['civicrm_membership'] = $query->_whereTables['civicrm_membership'] = 1;
return;
+ case 'membership_type':
case 'member_membership_type_id':
- $mType = implode(',', array_keys($value));
- if (count($value) > 1) {
- $op = 'IN';
- $mType = "({$mType})";
+ if (!is_array($value)) {
+ $mType = $value;
+ if (!empty($value)) {
+ $value = array_flip(explode(",", str_replace(array( '(', ')' ), '', $value)));
+ }
+ else {
+ $value = array();
+ }
+ }
+ else {
+ $mType = implode(',', array_keys($value));
+ if (count($value) > 1) {
+ $op = 'IN';
+ $mType = "({$mType})";
+ }
}
$names = array();
CRM_Core_Form_Date::buildDateRange($form, 'member_end_date', 1, '_low', '_high', ts('From'), FALSE);
- $form->addYesNo('member_is_primary', ts('Primary Member?'));
- $form->addYesNo('member_pay_later', ts('Pay Later?'));
- $form->addYesNo('member_auto_renew', ts('Auto-Renew?'));
- $form->addYesNo('member_test', ts('Membership is a Test?'));
+ $form->addYesNo('member_is_primary', ts('Primary Member?'), TRUE);
+ $form->addYesNo('member_pay_later', ts('Pay Later?'), TRUE);
+ $form->addYesNo('member_auto_renew', ts('Auto-Renew?'), TRUE);
+ $form->addYesNo('member_test', ts('Membership is a Test?'), TRUE);
// add all the custom searchable fields
$extends = array('Membership');
static function searchAction(&$row, $id) {}
- static function addShowHide(&$showHide) {
- $showHide->addHide('memberForm');
- $showHide->addShow('memberForm_show');
- }
-
static function tableNames(&$tables) {
//add membership table
- if (CRM_Utils_Array::value('civicrm_membership_log', $tables) || CRM_Utils_Array::value('civicrm_membership_status', $tables) || CRM_Utils_Array::value('civicrm_membership_type', $tables)) {
+ if (!empty($tables['civicrm_membership_log']) || !empty($tables['civicrm_membership_status']) || CRM_Utils_Array::value('civicrm_membership_type', $tables)) {
$tables = array_merge(array('civicrm_membership' => 1), $tables);
}
}