<?php
-
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
protected $_summary = NULL;
/**
- *
+ * Organisation contact ie. 'contact_id_b' or 'contact_id_a'
+ * @var string
*/
+ protected $orgContact;
+
+ /**
+ * Related Contact ie. 'contact_id_b' or 'contact_id_a'
+ * @var string
+ */
+ protected $otherContact;
+
/**
- *
*/
- function __construct() {
+ /**
+ */
+ public function __construct() {
self::validRelationships();
$config = CRM_Core_Config::singleton();
$campaignEnabled = in_array('CiviCampaign', $config->enableComponents);
}
$this->_columns = array(
- 'civicrm_contact_organization' =>
- array(
+ 'civicrm_contact_organization' => array(
'dao' => 'CRM_Contact_DAO_Contact',
- 'fields' =>
- array(
- 'organization_name' =>
- array('title' => ts('Organization Name'),
+ 'fields' => array(
+ 'organization_name' => array(
+ 'title' => ts('Organization Name'),
'required' => TRUE,
'no_repeat' => TRUE,
),
- 'id' =>
- array(
+ 'id' => array(
'no_display' => TRUE,
'required' => TRUE,
),
- 'contact_type' =>
- array(
+ 'contact_type' => array(
'title' => ts('Contact Type'),
),
- 'contact_sub_type' =>
- array(
- 'title' => ts('Contact SubType'),
+ 'contact_sub_type' => array(
+ 'title' => ts('Contact Subtype'),
),
),
- 'filters' =>
- array(
- 'organization_name' =>
- array('title' => ts('Organization Name')),
+ 'filters' => array(
+ 'organization_name' => array('title' => ts('Organization Name')),
),
'grouping' => 'organization-fields',
),
- 'civicrm_relationship' =>
- array(
+ 'civicrm_relationship' => array(
'dao' => 'CRM_Contact_DAO_Relationship',
- 'fields' =>
- array(
- 'relationship_type_id' =>
- array('title' => ts('Relationship Type'),
+ 'fields' => array(
+ 'relationship_type_id' => array(
+ 'title' => ts('Relationship Type'),
),
),
- 'filters' =>
- array(
- 'relationship_type_id' =>
- array(
+ 'filters' => array(
+ 'relationship_type_id' => array(
'title' => ts('Relationship Type'),
'type' => CRM_Utils_Type::T_INT,
'operatorType' => CRM_Report_Form::OP_SELECT,
'options' => $this->relationTypes,
- 'default' => array(1),
+ 'default' => key($this->relationTypes),
),
),
'grouping' => 'organization-fields',
),
- 'civicrm_contact' =>
- array(
+ 'civicrm_contact' => array(
'dao' => 'CRM_Contact_DAO_Contact',
- 'fields' =>
- array(
- 'sort_name' =>
- array('title' => ts('Contact Name'),
+ 'fields' => array(
+ 'sort_name' => array(
+ 'title' => ts('Contact Name'),
'required' => TRUE,
),
- 'id' =>
- array(
+ 'id' => array(
'no_display' => TRUE,
'required' => TRUE,
),
),
'grouping' => 'contact-fields',
),
- 'civicrm_contribution' =>
- array(
+ 'civicrm_contribution' => array(
'dao' => 'CRM_Contribute_DAO_Contribution',
- 'fields' =>
- array('total_amount' => array('title' => ts('Amount'),
+ 'fields' => array(
+ 'total_amount' => array(
+ 'title' => ts('Amount'),
'required' => TRUE,
),
'id' => array(
'title' => 'Contribution Status',
'default' => TRUE,
),
- 'check_number' => array('title' => ts('Check Number'),
+ 'check_number' => array(
+ 'title' => ts('Check Number'),
),
'currency' => array(
'required' => TRUE,
'receive_date' => array('default' => TRUE),
'receipt_date' => NULL,
),
- 'filters' =>
- array(
- 'receive_date' =>
- array('operatorType' => CRM_Report_Form::OP_DATE),
- 'total_amount' =>
- array('title' => ts('Amount Between')),
- 'currency' =>
- array('title' => 'Currency',
+ 'filters' => array(
+ 'receive_date' => array('operatorType' => CRM_Report_Form::OP_DATE),
+ 'total_amount' => array('title' => ts('Amount Between')),
+ 'currency' => array(
+ 'title' => 'Currency',
'operatorType' => CRM_Report_Form::OP_MULTISELECT,
'options' => CRM_Core_OptionGroup::values('currencies_enabled'),
'default' => NULL,
'type' => CRM_Utils_Type::T_STRING,
),
- 'contribution_status_id' =>
- array('title' => ts('Contribution Status'),
+ 'contribution_status_id' => array(
+ 'title' => ts('Contribution Status'),
'operatorType' => CRM_Report_Form::OP_MULTISELECT,
'options' => CRM_Contribute_PseudoConstant::contributionStatus(),
'default' => array(1),
),
'grouping' => 'contri-fields',
),
- 'civicrm_address' =>
- array(
+ 'civicrm_address' => array(
'dao' => 'CRM_Core_DAO_Address',
- 'fields' =>
- array(
+ 'fields' => array(
'street_address' => NULL,
'city' => NULL,
'postal_code' => NULL,
- 'state_province_id' =>
- array('title' => ts('State/Province'),
+ 'state_province_id' => array(
+ 'title' => ts('State/Province'),
),
- 'country_id' =>
- array('title' => ts('Country'),
+ 'country_id' => array(
+ 'title' => ts('Country'),
),
),
'grouping' => 'contact-fields',
),
- 'civicrm_email' =>
- array(
+ 'civicrm_email' => array(
'dao' => 'CRM_Core_DAO_Email',
- 'fields' =>
- array('email' => NULL),
+ 'fields' => array('email' => NULL),
'grouping' => 'contact-fields',
),
);
'title' => 'Campaign',
'default' => 'false',
);
- $this->_columns['civicrm_contribution']['filters']['campaign_id'] = array('title' => ts('Campaign'),
+ $this->_columns['civicrm_contribution']['filters']['campaign_id'] = array(
+ 'title' => ts('Campaign'),
'operatorType' => CRM_Report_Form::OP_MULTISELECT,
'options' => $this->activeCampaigns,
);
parent::__construct();
}
- function preProcess() {
+ public function preProcess() {
parent::preProcess();
}
- function select() {
+ public function select() {
$this->_columnHeaders = $select = array();
foreach ($this->_columns as $tableName => $table) {
if (array_key_exists('fields', $table)) {
$this->_select = "SELECT " . implode(', ', $select) . " ";
}
- function from() {
+ public function from() {
$this->_from = NULL;
$this->_from = "
}
}
- function where() {
+ public function where() {
$clauses = array();
foreach ($this->_columns as $tableName => $table) {
if (array_key_exists('filters', $table)) {
$clause = NULL;
if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) {
$relative = CRM_Utils_Array::value("{$fieldName}_relative", $this->_params);
- $from = CRM_Utils_Array::value("{$fieldName}_from", $this->_params);
- $to = CRM_Utils_Array::value("{$fieldName}_to", $this->_params);
+ $from = CRM_Utils_Array::value("{$fieldName}_from", $this->_params);
+ $to = CRM_Utils_Array::value("{$fieldName}_to", $this->_params);
$clause = $this->dateClause($field['name'], $relative, $from, $to, $field['type']);
}
}
}
- function groupBy() {
+ public function groupBy() {
$this->_groupBy = " GROUP BY {$this->_aliases['civicrm_relationship']}.$this->orgContact, {$this->_aliases['civicrm_relationship']}.$this->otherContact , {$this->_aliases['civicrm_contribution']}.id, {$this->_aliases['civicrm_relationship']}.relationship_type_id ";
}
- function orderBy() {
+ public function orderBy() {
$this->_orderBy = " ORDER BY {$this->_aliases['civicrm_contact_organization']}.organization_name, {$this->_aliases['civicrm_relationship']}.$this->orgContact, {$this->_aliases['civicrm_contact']}.sort_name, {$this->_aliases['civicrm_relationship']}.$this->otherContact";
}
*
* @return array
*/
- function statistics(&$rows) {
+ public function statistics(&$rows) {
$statistics = parent::statistics($rows);
//hack filter display for relationship type
$type = substr($this->_params['relationship_type_id_value'], -3);
foreach ($statistics['filters'] as $id => $value) {
if ($value['title'] == 'Relationship Type' && !empty($id)) {
- $statistics['filters'][$id]['value'] = 'Is equal to ' . $this->relationTypes[$this->relationshipId . '_' . $type];
+ $statistics['filters'][$id]['value'] = 'Is equal to ' .
+ $this->relationTypes[$this->relationshipId . '_' . $type];
}
}
return $statistics;
}
- function postProcess() {
-
+ public function postProcess() {
$this->beginPostProcess();
+ $this->buildACLClause(array($this->_aliases['civicrm_contact'], $this->_aliases['civicrm_contact_organization']));
+ $sql = $this->buildQuery(TRUE);
+ $rows = array();
+ $this->buildRows($sql, $rows);
+ $this->formatDisplay($rows);
+ $this->doTemplateAssignment($rows);
+ $this->endPostProcess($rows);
+ }
+
+ /**
+ * Set variables to be accessed by API and form layer in processing
+ */
+ public function beginPostProcessCommon() {
$getRelationship = $this->_params['relationship_type_id_value'];
$type = substr($getRelationship, -3);
$this->relationshipId = intval((substr($getRelationship, 0, strpos($getRelationship, '_'))));
$this->orgContact = 'contact_id_a';
$this->otherContact = 'contact_id_b';
}
-
- $this->buildACLClause(array($this->_aliases['civicrm_contact'], $this->_aliases['civicrm_contact_organization']));
- $sql = $this->buildQuery(TRUE);
- $rows = array();
-
- $this->buildRows($sql, $rows);
- $this->formatDisplay($rows);
- $this->doTemplateAssignment($rows);
- $this->endPostProcess($rows);
}
- function validRelationships() {
+ public function validRelationships() {
$this->relationTypes = $relationTypes = array();
$params = array('contact_type_b' => 'Organization', 'version' => 3);
}
/**
- * @param $rows
+ * @param array $rows
*/
- function alterDisplay(&$rows) {
+ public function alterDisplay(&$rows) {
// custom code to alter rows
$type = substr($this->_params['relationship_type_id_value'], -3);
}
// convert Organization display name to links
- if (array_key_exists('civicrm_contact_organization_organization_name', $row) && !empty($rows[$rowNum]
-['civicrm_contact_organization_organization_name']) &&
+ if (array_key_exists('civicrm_contact_organization_organization_name', $row) && !empty($rows[$rowNum]['civicrm_contact_organization_organization_name']) &&
array_key_exists('civicrm_contact_organization_id', $row)
) {
$url = CRM_Utils_System::url('civicrm/contact/view',
CRM_Core_Permission::check('access CiviContribute')
) {
$url = CRM_Utils_System::url('civicrm/contact/view/contribution',
- "reset=1&id=" . $row['civicrm_contribution_id'] . "&cid=" . $row['civicrm_contact_id'] . "&action=view&context=contribution&selectedChild=contribute",
+ "reset=1&id=" . $row['civicrm_contribution_id'] . "&cid=" . $row['civicrm_contact_id'] .
+ "&action=view&context=contribution&selectedChild=contribute",
$this->_absoluteUrl
);
$rows[$rowNum]['civicrm_contribution_total_amount_link'] = $url;
}
}
}
-