From 97f9a5f3b2a3bd8ac1ac4e18bb27ac00a54ca1ae Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Sun, 29 Jan 2023 12:35:19 +1300 Subject: [PATCH] Do not attempt to format custom value of empty string --- CRM/Core/BAO/CustomField.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/CRM/Core/BAO/CustomField.php b/CRM/Core/BAO/CustomField.php index b84d245257..7f4aed8d55 100644 --- a/CRM/Core/BAO/CustomField.php +++ b/CRM/Core/BAO/CustomField.php @@ -1129,6 +1129,7 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { * @param int|null $entityId * * @return string + * @throws \Brick\Money\Exception\UnknownCurrencyException */ private static function formatDisplayValue($value, $field, $entityId = NULL) { @@ -1269,19 +1270,21 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { break; case 'Text': - if ($field['data_type'] == 'Money' && isset($value)) { + if ($field['data_type'] === 'Money' && isset($value)) { // $value can also be an array(while using IN operator from search builder or api). + $values = []; foreach ((array) $value as $val) { - $disp[] = CRM_Utils_Money::formatLocaleNumericRoundedForDefaultCurrency($val); + $values[] = $val === '' ? '' : CRM_Utils_Money::formatLocaleNumericRoundedForDefaultCurrency($val); } - $display = implode(', ', $disp); + $display = implode(', ', $values); } - elseif ($field['data_type'] == 'Float' && isset($value)) { + elseif ($field['data_type'] === 'Float' && isset($value)) { // $value can also be an array(while using IN operator from search builder or api). + $values = []; foreach ((array) $value as $val) { - $disp[] = CRM_Utils_Number::formatLocaleNumeric($val); + $values[] = $val === '' ? '' : CRM_Utils_Number::formatLocaleNumeric($val); } - $display = implode(', ', $disp); + $display = implode(', ', $values); } break; } -- 2.25.1