copyValues($params); if ($contact1 && $contact2) { CRM_Core_DAO::singleValueQuery(" DELETE FROM civicrm_prevnext_cache WHERE (entity_id1 = %1 AND entity_id2 = %2) OR (entity_id1 = %2 AND entity_id2 = %2)", [1 => [$contact1, 'Integer'], 2 => [$contact2, 'Integer']] ); if ($contact2 < $contact1) { // These are expected to be saved lowest first. $dao->contact_id1 = $contact2; $dao->contact_id2 = $contact1; } } $dao->save(); CRM_Utils_Hook::post($hook, 'Exception', $dao->id, $dao); return $dao; } }