From 37935ea76da14d11309300a513b821926db28091 Mon Sep 17 00:00:00 2001 From: William Mortada Date: Wed, 12 Oct 2016 16:27:17 +0100 Subject: [PATCH] CRM-19487 Tidy up contact reports to fix contact subtype not displaying correctly --- CRM/Report/Form/Contact/CurrentEmployer.php | 16 +++---- CRM/Report/Form/Contact/Detail.php | 12 ++---- CRM/Report/Form/Contact/Relationship.php | 48 +++++++++++++++------ CRM/Report/Form/Contact/Summary.php | 2 +- 4 files changed, 45 insertions(+), 33 deletions(-) diff --git a/CRM/Report/Form/Contact/CurrentEmployer.php b/CRM/Report/Form/Contact/CurrentEmployer.php index 1585896087..6eae3ce8c9 100644 --- a/CRM/Report/Form/Contact/CurrentEmployer.php +++ b/CRM/Report/Form/Contact/CurrentEmployer.php @@ -352,6 +352,7 @@ FROM civicrm_contact {$this->_aliases['civicrm_contact']} $this->_absoluteUrl, $this->_id, $this->_drilldownReport ); $rows[$rowNum]['civicrm_employer_organization_name_link'] = $url; + $rows[$rowNum]['civicrm_employer_organization_name_hover'] = ts('View Contact Detail Report for this contact'); $entryFound = TRUE; } @@ -371,14 +372,8 @@ FROM civicrm_contact {$this->_aliases['civicrm_contact']} } } - //handle gender - if (array_key_exists('civicrm_contact_gender_id', $row)) { - if ($value = $row['civicrm_contact_gender_id']) { - $gender = CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'gender_id'); - $rows[$rowNum]['civicrm_contact_gender_id'] = $gender[$value]; - } - $entryFound = TRUE; - } + // Handle ID to label conversion for contact fields + $entryFound = $this->alterDisplayContactFields($row, $rows, $rowNum, 'contact/currentEmployer', 'View Contact Detail') ? TRUE : $entryFound; // display birthday in the configured custom format if (array_key_exists('civicrm_contact_birth_date', $row)) { @@ -390,14 +385,15 @@ FROM civicrm_contact {$this->_aliases['civicrm_contact']} } // convert employee name to links - if (array_key_exists('civicrm_contact_display_name', $row) && + if (array_key_exists('civicrm_contact_sort_name', $row) && array_key_exists('civicrm_contact_id', $row) ) { $url = CRM_Report_Utils_Report::getNextUrl('contact/detail', 'reset=1&force=1&id_op=eq&id_value=' . $row['civicrm_contact_id'], $this->_absoluteUrl, $this->_id, $this->_drilldownReport ); - $rows[$rowNum]['civicrm_contact_display_name_link'] = $url; + $rows[$rowNum]['civicrm_contact_sort_name_link'] = $url; + $rows[$rowNum]['civicrm_contact_sort_name_hover'] = ts('View Contact Detail Report for this contact'); $entryFound = TRUE; } diff --git a/CRM/Report/Form/Contact/Detail.php b/CRM/Report/Form/Contact/Detail.php index dc9b766ac0..0b1aa81c24 100644 --- a/CRM/Report/Form/Contact/Detail.php +++ b/CRM/Report/Form/Contact/Detail.php @@ -849,18 +849,12 @@ class CRM_Report_Form_Contact_Detail extends CRM_Report_Form { $this->_absoluteUrl ); $rows[$rowNum]['civicrm_contact_sort_name_link'] = $url; - $rows[$rowNum]['civicrm_contact_sort_name_hover'] = ts('View Contact Summary for this Contact'); + $rows[$rowNum]['civicrm_contact_sort_name_hover'] = ts('View Contact Record'); $entryFound = TRUE; } - //handle gender - if (array_key_exists('civicrm_contact_gender_id', $row)) { - if ($value = $row['civicrm_contact_gender_id']) { - $gender = CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'gender_id'); - $rows[$rowNum]['civicrm_contact_gender_id'] = $gender[$value]; - } - $entryFound = TRUE; - } + // Handle ID to label conversion for contact fields + $entryFound = $this->alterDisplayContactFields($row, $rows, $rowNum, 'contact/detail', 'View Contact Detail') ? TRUE : $entryFound; // display birthday in the configured custom format if (array_key_exists('civicrm_contact_birth_date', $row)) { diff --git a/CRM/Report/Form/Contact/Relationship.php b/CRM/Report/Form/Contact/Relationship.php index c5c5c60abb..0e72df6d1a 100644 --- a/CRM/Report/Form/Contact/Relationship.php +++ b/CRM/Report/Form/Contact/Relationship.php @@ -629,6 +629,39 @@ class CRM_Report_Form_Contact_Relationship extends CRM_Report_Form { foreach ($rows as $rowNum => $row) { + // Handle ID to label conversion for contact fields + $entryFound = $this->alterDisplayContactFields($row, $rows, $rowNum, 'contact/relationship', 'View Relationships') ? TRUE : $entryFound; + + // Handle contact subtype A + if (array_key_exists('civicrm_contact_contact_sub_type_a', $row)) { + if ($value = $row['civicrm_contact_contact_sub_type_a']) { + $rowValues = explode(CRM_Core_DAO::VALUE_SEPARATOR, $value); + $rowLabels = array(); + foreach ($rowValues as $rowValue) { + if ($rowValue) { + $rowLabels[] = CRM_Core_Pseudoconstant::getLabel('CRM_Contact_BAO_Contact', 'contact_sub_type', $rowValue); + } + } + $rows[$rowNum]['civicrm_contact_contact_sub_type_a'] = implode(', ', $rowLabels); + } + $entryFound = TRUE; + } + + // Handle contact subtype B + if (array_key_exists('civicrm_contact_b_contact_sub_type_b', $row)) { + if ($value = $row['civicrm_contact_b_contact_sub_type_b']) { + $rowValues = explode(CRM_Core_DAO::VALUE_SEPARATOR, $value); + $rowLabels = array(); + foreach ($rowValues as $rowValue) { + if ($rowValue) { + $rowLabels[] = CRM_Core_Pseudoconstant::getLabel('CRM_Contact_BAO_Contact', 'contact_sub_type', $rowValue); + } + } + $rows[$rowNum]['civicrm_contact_b_contact_sub_type_b'] = implode(', ', $rowLabels); + } + $entryFound = TRUE; + } + // Handle country. if (array_key_exists('civicrm_address_country_id', $row)) { if ($value = $row['civicrm_address_country_id']) { @@ -655,7 +688,7 @@ class CRM_Report_Form_Contact_Relationship extends CRM_Report_Form { = $rows[$rowNum]['civicrm_contact_sort_name_a'] . ' (' . $rows[$rowNum]['civicrm_contact_id'] . ')'; $rows[$rowNum]['civicrm_contact_sort_name_a_link'] = $url; - $rows[$rowNum]['civicrm_contact_sort_name_a_hover'] = ts("View Contact details for this contact."); + $rows[$rowNum]['civicrm_contact_sort_name_a_hover'] = ts('View Contact Detail Report for this contact'); $entryFound = TRUE; } @@ -670,18 +703,7 @@ class CRM_Report_Form_Contact_Relationship extends CRM_Report_Form { = $rows[$rowNum]['civicrm_contact_b_sort_name_b'] . ' (' . $rows[$rowNum]['civicrm_contact_b_id'] . ')'; $rows[$rowNum]['civicrm_contact_b_sort_name_b_link'] = $url; - $rows[$rowNum]['civicrm_contact_b_sort_name_b_hover'] = ts("View Contact details for this contact."); - $entryFound = TRUE; - } - - if (array_key_exists('civicrm_relationship_relationship_id', $row) && - array_key_exists('civicrm_contact_id', $row) - ) { - $url = "/civicrm/contact/view/rel?reset=1&action=update&rtype=a_b&cid=" . - $row['civicrm_contact_id'] . "&id=" . - $row['civicrm_relationship_relationship_id']; - $rows[$rowNum]['civicrm_relationship_relationship_id_link'] = $url; - $rows[$rowNum]['civicrm_relationship_relationship_id_hover'] = ts("Edit this relationship."); + $rows[$rowNum]['civicrm_contact_b_sort_name_b_hover'] = ts('View Contact Detail Report for this contact'); $entryFound = TRUE; } diff --git a/CRM/Report/Form/Contact/Summary.php b/CRM/Report/Form/Contact/Summary.php index e3cc8bfea1..21c60ba260 100644 --- a/CRM/Report/Form/Contact/Summary.php +++ b/CRM/Report/Form/Contact/Summary.php @@ -255,7 +255,7 @@ class CRM_Report_Form_Contact_Summary extends CRM_Report_Form { $this->_absoluteUrl, $this->_id, $this->_drilldownReport ); $rows[$rowNum]['civicrm_contact_sort_name_link'] = $url; - $rows[$rowNum]['civicrm_contact_sort_name_hover'] = ts("View Constituent Detail Report for this contact."); + $rows[$rowNum]['civicrm_contact_sort_name_hover'] = ts('View Contact Detail Report for this contact'); $entryFound = TRUE; } -- 2.25.1