Skip to content
Snippets Groups Projects
Unverified Commit 82ef31e4 authored by Seamus Lee's avatar Seamus Lee Committed by GitHub
Browse files

Merge pull request #13365 from mattwire/caseformatcustomdata

Format details for case custom data activity in a human readable format
parents f2a37c03 6437dda5
Branches
Tags
No related merge requests found
......@@ -136,7 +136,7 @@ class CRM_Case_Form_CustomData extends CRM_Core_Form {
'subject' => $this->_customTitle . " : change data",
'status_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_status_id', 'Completed'),
'target_contact_id' => $this->_contactID,
'details' => json_encode($this->_defaults),
'details' => $this->formatCustomDataChangesForDetail($params),
'activity_date_time' => date('YmdHis'),
];
$activity = CRM_Activity_BAO_Activity::create($activityParams);
......@@ -150,4 +150,47 @@ class CRM_Case_Form_CustomData extends CRM_Core_Form {
$transaction->commit();
}
/**
* Format the custom data changes as [label]: [old value] => [new value]
*
* @param array $params New custom field values from form
*
* @return string
* @throws \CiviCRM_API3_Exception
*/
public function formatCustomDataChangesForDetail($params) {
$formattedDetails = [];
foreach ($params as $customField => $newCustomValue) {
if (substr($customField, 0, 7) == 'custom_') {
if ($this->_defaults[$customField] == $newCustomValue) {
// Don't show values that did not change
continue;
}
// We need custom field ID from custom_XX_1
list($_, $customFieldId, $_) = explode('_', $customField);
if (!empty($customFieldId) && is_numeric($customFieldId)) {
// Got a custom field ID
$label = civicrm_api3('CustomField', 'getvalue', ['id' => $customFieldId, 'return' => 'label']);
$oldValue = civicrm_api3('CustomValue', 'getdisplayvalue', [
'custom_field_id' => $customFieldId,
'entity_id' => $this->_entityID,
'custom_field_value' => $this->_defaults[$customField],
]);
$oldValue = $oldValue['values'][$customFieldId]['display'];
$newValue = civicrm_api3('CustomValue', 'getdisplayvalue', [
'custom_field_id' => $customFieldId,
'entity_id' => $this->_entityID,
'custom_field_value' => $newCustomValue,
]);
$newValue = $newValue['values'][$customFieldId]['display'];
$formattedDetails[] = $label . ': ' . $oldValue . ' => ' . $newValue;
}
}
}
return implode('<br/>', $formattedDetails);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment