Fix fatal when saving import mapping with a relationship but 'Primary' relationship...
authoreileen <emcnaughton@wikimedia.org>
Fri, 23 Aug 2019 03:24:37 +0000 (15:24 +1200)
committereileen <emcnaughton@wikimedia.org>
Fri, 23 Aug 2019 03:24:37 +0000 (15:24 +1200)
This occurs because the correct value to save for location_type_id of Primary is '' but the current code winds up casting to 0
which won't save as it there is a foreign key involved.  Handling was previously added but only to the
(duplicate) code that deals with non-relationship fields

https://github.com/eileenmcnaughton/civicrm-core/blob/cd41fa5b5599b329bd6f54acf0a79dda85477804/CRM/Contact/Import/Form/MapField.php#L724

CRM/Contact/Import/Form/MapField.php

index 8c0ef827acb92e406f6bdb47ecae46cb2a01db8f..809b8837fffc4d8820cb7517df690ca321630c05 100644 (file)
@@ -700,7 +700,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
             elseif (CRM_Utils_Array::value('1', $mapperKeys[$i]) == 'im') {
               $updateMappingFields->im_provider_id = isset($mapperKeys[$i][3]) ? $mapperKeys[$i][3] : NULL;
             }
-            $updateMappingFields->location_type_id = isset($mapperKeys[$i][2]) ? $mapperKeys[$i][2] : NULL;
+            $updateMappingFields->location_type_id = isset($mapperKeys[$i][2]) && is_numeric($mapperKeys[$i][2]) ? $mapperKeys[$i][2] : NULL;
           }
         }
         else {