X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FReport%2FForm.php;h=2e70b5ac93310771c70b58d07ecc48f8d6afbeb9;hb=57550a570f4f538d3cc40939b678d9122156973c;hp=ad47a690a95a2adbeb973ce5ebbc04622906aa1c;hpb=bada0f6668a8f2b1dd3210b7ecfa81db50e9f76d;p=civicrm-core.git diff --git a/CRM/Report/Form.php b/CRM/Report/Form.php index ad47a690a9..2e70b5ac93 100644 --- a/CRM/Report/Form.php +++ b/CRM/Report/Form.php @@ -967,6 +967,14 @@ class CRM_Report_Form extends CRM_Core_Form { } } } + + $stateCountryMap[] = array( + 'country' => 'country_id_value', + 'state_province' => 'state_province_id_value', + 'county' => 'county_id_value' + ); + CRM_Core_BAO_Address::addStateCountryMap($stateCountryMap); + $this->assign('filters', $filters); } @@ -1100,13 +1108,13 @@ class CRM_Report_Form extends CRM_Core_Form { if (CRM_Core_Permission::check('administer Reports') && $this->_add2groupSupported) { $this->addElement('select', 'groups', ts('Group'), - array('' => ts('- select group -')) + CRM_Core_PseudoConstant::staticGroup() + array('' => ts('Add Contacts to Group')) + CRM_Core_PseudoConstant::nestedGroup(), + array('class' => 'crm-select2 crm-action-menu action-icon-plus huge') ); $this->assign('group', TRUE); } - $label = ts('Add These Contacts to Group'); - $this->addElement('submit', $this->_groupButtonName, $label, array('onclick' => 'return checkGroup();')); + $this->addElement('submit', $this->_groupButtonName, '', array('style' => 'display: none;')); $this->addChartOptions(); $this->addButtons(array( @@ -1495,7 +1503,12 @@ class CRM_Report_Form extends CRM_Core_Form { // entries. $clause = $this->whereTagClause($field, $value, $op); } - + elseif (!empty($field['membership_org']) && $clause) { + $clause = $this->whereMembershipOrgClause($field, $value, $op); + } + elseif (!empty($field['membership_type']) && $clause) { + $clause = $this->whereMembershipTypeClause($field, $value, $op); + } return $clause; } @@ -2982,6 +2995,42 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND WHERE entity_table = 'civicrm_contact' AND {$clause} ) "; } + function whereMembershipOrgClause($field, $value, $op) { + $sqlOp = $this->getSQLOperator($op); + if (!is_array($value)) { + $value = array($value); + } + + $tmp_membership_org_sql_list = implode(', ', $value); + return " {$this->_aliases['civicrm_contact']}.id {$sqlOp} ( + SELECT DISTINCT mem.contact_id + FROM civicrm_membership mem + LEFT JOIN civicrm_membership_status mem_status ON mem.status_id = mem_status.id + LEFT JOIN civicrm_membership_type mt ON mem.membership_type_id = mt.id + WHERE mt.member_of_contact_id IN (".$tmp_membership_org_sql_list.") + AND mt.is_active = '1' + AND mem_status.is_current_member = '1' + AND mem_status.is_active = '1' ) "; + } + + function whereMembershipTypeClause($field, $value, $op) { + $sqlOp = $this->getSQLOperator($op); + if (!is_array($value)) { + $value = array($value); + } + + $tmp_membership_sql_list = implode(', ', $value); + return " {$this->_aliases['civicrm_contact']}.id {$sqlOp} ( + SELECT DISTINCT mem.contact_id + FROM civicrm_membership mem + LEFT JOIN civicrm_membership_status mem_status ON mem.status_id = mem_status.id + LEFT JOIN civicrm_membership_type mt ON mem.membership_type_id = mt.id + WHERE mem.membership_type_id IN (".$tmp_membership_sql_list.") + AND mt.is_active = '1' + AND mem_status.is_current_member = '1' + AND mem_status.is_active = '1' ) "; + } + /** * @param string $tableAlias */