X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContact%2FImport%2FParser%2FContact.php;h=8399c5fb401d123037f758c9cc49ab5e2ecd3c5a;hb=c64f77cc24c5d08097de85191f8011bbe6ffe2be;hp=bc5c30579728fbd7e01c41430fb7d213913679a7;hpb=3b943db724175ba43f0d606135e5ab7f3f0ed781;p=civicrm-core.git diff --git a/CRM/Contact/Import/Parser/Contact.php b/CRM/Contact/Import/Parser/Contact.php index bc5c305797..8399c5fb40 100644 --- a/CRM/Contact/Import/Parser/Contact.php +++ b/CRM/Contact/Import/Parser/Contact.php @@ -621,6 +621,12 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Contact_Import_Parser { ->setLoadOptions(TRUE) ->execute()->indexBy('name'); foreach ($fields as $fieldName => $fieldSpec) { + if (isset($formatted[$fieldName]) && is_array($formatted[$fieldName])) { + // If we have an array at this stage, it's probably a multi-select + // field that has already been parsed properly into the value that + // should be inserted into the database. + continue; + } if (!empty($formatted[$fieldName]) && empty($fieldSpec['options'][$formatted[$fieldName]])) { $formatted[$fieldName] = array_search($formatted[$fieldName], $fieldSpec['options'], TRUE) ?? $formatted[$fieldName]; @@ -887,7 +893,7 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Contact_Import_Parser { 'contact' => $primaryContactId, ]; - [$valid, $invalid, $duplicate, $saved, $relationshipIds] = CRM_Contact_BAO_Relationship::legacyCreateMultiple($relationParams, $relationIds); + [$valid, $duplicate] = CRM_Contact_BAO_Relationship::legacyCreateMultiple($relationParams, $relationIds); if ($valid || $duplicate) { $relationIds['contactTarget'] = $relContactId; @@ -997,7 +1003,7 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Contact_Import_Parser { } // get array of subtypes - CRM-18708 - if (in_array($csType, ['Individual', 'Organization', 'Household'])) { + if (in_array($csType, CRM_Contact_BAO_ContactType::basicTypes(TRUE), TRUE)) { $csType = self::getSubtypes($params['contact_type']); } @@ -2109,9 +2115,6 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Contact_Import_Parser { $requiredCheck = FALSE; } if ($requiredCheck) { - if (isset($params['id'])) { - $required = ['Individual', 'Household', 'Organization']; - } $required = [ 'Individual' => [ ['first_name', 'last_name'],