From a4fd3fd5b7052daddbd2abd4903d4dbad7f41861 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 23 Feb 2022 15:50:05 -0500 Subject: [PATCH] Temporarily switch to relationship::add function --- CRM/Case/XMLProcessor/Process.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/CRM/Case/XMLProcessor/Process.php b/CRM/Case/XMLProcessor/Process.php index 880407d9d6..2e3463d54b 100644 --- a/CRM/Case/XMLProcessor/Process.php +++ b/CRM/Case/XMLProcessor/Process.php @@ -222,10 +222,20 @@ class CRM_Case_XMLProcessor_Process extends CRM_Case_XMLProcessor { ]; } - \Civi\Api4\Relationship::save(FALSE) - ->setRecords($relationshipValues) - ->setMatch(['case_id', 'relationship_type_id', 'contact_id_a', 'contact_id_b']) - ->execute(); + //\Civi\Api4\Relationship::save(FALSE) + // ->setRecords($relationshipValues) + // ->setMatch(['case_id', 'relationship_type_id', 'contact_id_a', 'contact_id_b']) + // ->execute(); + // FIXME: The above api code would be better, but doesn't work + // See discussion in https://github.com/civicrm/civicrm-core/pull/15030 + foreach ($relationshipValues as $params) { + $dao = new CRM_Contact_DAO_Relationship(); + $dao->copyValues($params); + // only create a relationship if it does not exist + if (!$dao->find(TRUE)) { + CRM_Contact_BAO_Relationship::add($params); + } + } return TRUE; } -- 2.25.1