->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];
'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;
}
// 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']);
}
$requiredCheck = FALSE;
}
if ($requiredCheck) {
- if (isset($params['id'])) {
- $required = ['Individual', 'Household', 'Organization'];
- }
$required = [
'Individual' => [
['first_name', 'last_name'],