From 0f7d79e9b6d42ad87f666044e751bfdbf832e419 Mon Sep 17 00:00:00 2001 From: Jon Goldberg Date: Mon, 27 Sep 2021 13:45:30 -0400 Subject: [PATCH] fixes core#2874 - Search Builder on State/Province with Primary and IN --- CRM/Core/BAO/Mapping.php | 2 +- .../primary_multiple_state_province.sql | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 tests/phpunit/CRM/Contact/BAO/SavedSearchDataSets/primary_multiple_state_province.sql diff --git a/CRM/Core/BAO/Mapping.php b/CRM/Core/BAO/Mapping.php index d7b72b9e76..d8358649bb 100644 --- a/CRM/Core/BAO/Mapping.php +++ b/CRM/Core/BAO/Mapping.php @@ -1051,7 +1051,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping { // CRM-19081 Fix legacy StateProvince Field Values. // These derive from smart groups created using search builder under older // CiviCRM versions. - if (!is_numeric($value) && $fldName == 'state_province') { + if ($fldName == 'state_province' && !is_numeric($value) && !is_array($value)) { $value = CRM_Core_PseudoConstant::getKey('CRM_Core_BAO_Address', 'state_province_id', $value); } diff --git a/tests/phpunit/CRM/Contact/BAO/SavedSearchDataSets/primary_multiple_state_province.sql b/tests/phpunit/CRM/Contact/BAO/SavedSearchDataSets/primary_multiple_state_province.sql new file mode 100644 index 0000000000..cce1f48916 --- /dev/null +++ b/tests/phpunit/CRM/Contact/BAO/SavedSearchDataSets/primary_multiple_state_province.sql @@ -0,0 +1,7 @@ +INSERT INTO civicrm_mapping (id,name,description,mapping_type_id) Values +(114, NULL, NULL, NULL); +INSERT INTO `civicrm_mapping_field` (`id`, `mapping_id`, `name`, `contact_type`, `column_number`, `location_type_id`, `phone_type_id`, `im_provider_id`, `relationship_type_id`, `relationship_direction`, `grouping`, `operator`, `value`, `website_type_id`) VALUES +(2846, 114, 'state_province', 'Contact', 0, NULL, NULL, NULL, NULL, NULL, 1, 'IN', '1501,2704', NULL); +INSERT INTO `civicrm_saved_search` (`id`, `form_values`, `mapping_id`, `search_custom_id`) VALUES +(333, 'a:5:{s:6:"mapper";a:1:{i:1;a:1:{i:0;a:3:{i:0;s:7:"Contact";i:1;s:14:"state_province";i:2;s:1:" ";}}}s:8:"operator";a:1:{i:1;a:1:{i:0;s:2:"IN";}}s:5:"value";a:1:{i:1;a:1:{i:0;s:9:"1501,2074";}}s:8:"radio_ts";s:6:"ts_all";s:4:"task";s:0:"";}', '114', NULL); +INSERT INTO `civicrm_group` (`id`, `name`, `title`, `description`, `source`, `saved_search_id`, `is_active`, `visibility`) VALUES (98, 'core_2874', 'Core 2874 test group', NULL, NULL, 333, 1, 'User and User Admin Only'); -- 2.25.1