<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.4 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
* $Id$
*
*/
protected $_add2groupSupported = FALSE;
+ /**
+ *
+ */
+ /**
+ *
+ */
function __construct() {
$yearsInPast = 10;
$yearsInFuture = 1;
),
'contact_sub_type' =>
array(
- 'title' => ts('Contact SubType'),
+ 'title' => ts('Contact Subtype'),
),
),
'filters' =>
),
),
),
- 'civicrm_address' =>
- array(
- 'dao' => 'CRM_Core_DAO_Address',
- 'grouping' => 'contact-fields',
- 'fields' =>
- array(
- 'street_address' => array('default' => TRUE),
- 'city' => array('default' => TRUE),
- 'postal_code' => NULL,
- 'state_province_id' => array('title' => ts('State/Province')),
- 'country_id' => array('title' => ts('Country')),
- ),
- 'filters' =>
- array(
- 'country_id' =>
- array(
- 'title' => ts('Country'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'options' => CRM_Core_PseudoConstant::country(),
- ),
- 'state_province_id' =>
- array(
- 'title' => ts('State / Province'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'options' => CRM_Core_PseudoConstant::stateProvince(),
- ),
- ),
- ),
+ )
+ + $this->addAddressFields()
+ + array(
'civicrm_contribution' =>
array(
'dao' => 'CRM_Contribute_DAO_Contribution',
),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
// If we have a campaign, build out the relevant elements
);
}
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
if (array_key_exists('fields', $table)) {
foreach ($table['fields'] as $fieldName => $field) {
- if (CRM_Utils_Array::value('required', $field) ||
- CRM_Utils_Array::value($fieldName, $this->_params['fields'])
- ) {
+ if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName])) {
if ($fieldName == 'total_amount') {
$select[] = "SUM({$field['dbAlias']}) as {$tableName}_{$fieldName}";
$this->_columnHeaders["{$tableName}_{$fieldName}"]['type'] = CRM_Utils_Array::value('type', $field);
$this->_columnHeaders["{$tableName}_{$fieldName}"]['title'] = $field['title'];
}
- if (CRM_Utils_Array::value('no_display', $field)) {
+ if (!empty($field['no_display'])) {
$this->_columnHeaders["{$tableName}_{$fieldName}"]['no_display'] = TRUE;
}
}
function from() {
- $this->_from = "
+ $this->_from = "
FROM civicrm_contribution {$this->_aliases['civicrm_contribution']}
INNER JOIN civicrm_contact {$this->_aliases['civicrm_contact']}
ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_contribution']}.contact_id
ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_phone']}.contact_id AND
{$this->_aliases['civicrm_phone']}.is_primary = 1";
}
- if ($this->isTableSelected('civicrm_address')) {
- $this->_from .= "
- LEFT JOIN civicrm_address {$this->_aliases['civicrm_address']}
- ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_address']}.contact_id AND
- {$this->_aliases['civicrm_address']}.is_primary = 1";
- }
+ $this->addAddressFromClause();
}
function where() {
$this->_groupBy = "Group BY {$this->_aliases['civicrm_contribution']}.contact_id, " . self::fiscalYearOffset($this->_aliases['civicrm_contribution'] . '.receive_date') . " WITH ROLLUP ";
}
+ /**
+ * @param $rows
+ *
+ * @return array
+ */
function statistics(&$rows) {
$statistics = parent::statistics($rows);
$this->groupBy();
$rows = $contactIds = array();
- if (!CRM_Utils_Array::value('charts', $this->_params)) {
+ if (empty($this->_params['charts'])) {
$this->limit();
$getContacts = "SELECT SQL_CALC_FOUND_ROWS {$this->_aliases['civicrm_contact']}.id as cid {$this->_from} {$this->_where} GROUP BY {$this->_aliases['civicrm_contact']}.id {$this->_limit}";
$this->setPager();
}
- if (!empty($contactIds) || CRM_Utils_Array::value('charts', $this->_params)) {
- if (CRM_Utils_Array::value('charts', $this->_params)) {
+ if (!empty($contactIds) || !empty($this->_params['charts'])) {
+ if (!empty($this->_params['charts'])) {
$sql = "{$this->_select} {$this->_from} {$this->_where} {$this->_groupBy}";
}
else {
$this->endPostProcess($rows);
}
+ /**
+ * @param $rows
+ */
function buildChart(&$rows) {
$graphRows = array();
$count = 0;
}
}
+ /**
+ * @param $rows
+ */
function alterDisplay(&$rows) {
+ // custom code to alter rows
+ $entryFound = FALSE;
foreach ($rows as $rowNum => $row) {
//Convert Display name into link
);
$rows[$rowNum]['civicrm_contact_sort_name_link'] = $url;
$rows[$rowNum]['civicrm_contact_sort_name_hover'] = ts("View Contribution Details for this Contact.");
+ $entryFound = TRUE;
}
// convert campaign_id to campaign title
}
}
- if ($value = CRM_Utils_Array::value('civicrm_address_state_province_id', $row)) {
- $rows[$rowNum]['civicrm_address_state_province_id'] = CRM_Core_PseudoConstant::stateProvince($value, FALSE);
- $entryFound = TRUE;
- }
- if ($value = CRM_Utils_Array::value('civicrm_address_country_id', $row)) {
- $rows[$rowNum]['civicrm_address_country_id'] = CRM_Core_PseudoConstant::country($value, FALSE);
- $entryFound = TRUE;
+ $entryFound = $this->alterDisplayAddressFields($row, $rows, $rowNum, 'contribute/detail', 'List all contribution(s)') ? TRUE : $entryFound;
+
+ // skip looking further in rows, if first row itself doesn't
+ // have the column we need
+ if (!$entryFound) {
+ break;
}
}
}
// Override "This Year" $op options
+ /**
+ * @param string $type
+ * @param null $fieldName
+ *
+ * @return array
+ */
function getOperationPair($type = "string", $fieldName = NULL) {
if ($fieldName == 'yid') {
return array('calendar' => ts('Is Calendar Year'), 'fiscal' => ts('Fiscal Year Starting'));