CRM-15889 fix - Relationship enable/disable through API & the UI - does not take...
authormonishdeb <monish.deb@webaccessglobal.com>
Mon, 16 Feb 2015 14:34:19 +0000 (20:04 +0530)
committermonishdeb <monish.deb@webaccessglobal.com>
Mon, 16 Feb 2015 14:34:19 +0000 (20:04 +0530)
https://issues.civicrm.org/jira/browse/CRM-15889

CRM/Contact/Page/View/Relationship.php
api/v3/Relationship.php

index b93dfa3e1a6b7631b69a71480d39a02883d3caf4..6299d10f90e92a545227a8435f6826cc807acbda 100644 (file)
@@ -214,18 +214,6 @@ class CRM_Contact_Page_View_Relationship extends CRM_Core_Page {
     elseif ($this->_action & (CRM_Core_Action::UPDATE | CRM_Core_Action::ADD | CRM_Core_Action::DELETE)) {
       $this->edit();
     }
-    elseif ($this->_action & CRM_Core_Action::DISABLE) {
-      CRM_Contact_BAO_Relationship::disableEnableRelationship($this->_id, CRM_Core_Action::DISABLE);
-      CRM_Contact_BAO_Relationship::setIsActive($this->_id, 0);
-      $session = CRM_Core_Session::singleton();
-      CRM_Utils_System::redirect($session->popUserContext());
-    }
-    elseif ($this->_action & CRM_Core_Action::ENABLE) {
-      CRM_Contact_BAO_Relationship::disableEnableRelationship($this->_id, CRM_Core_Action::ENABLE);
-      CRM_Contact_BAO_Relationship::setIsActive($this->_id, 1);
-      $session = CRM_Core_Session::singleton();
-      CRM_Utils_System::redirect($session->popUserContext());
-    }
 
     // if this is called from case view, suppress browse relationships form
     else {
index b4e20a2558b3124b65350ee57d1f7dc7db553ff1..fcaed329c45e7df284db1622ed6649b6b83b65ee 100644 (file)
@@ -146,3 +146,17 @@ function _civicrm_api3_handle_relationship_type(&$params) {
     }
   }
 }
+
+function civicrm_api3_relationship_setvalue($params) {
+  require_once 'api/v3/Generic/Setvalue.php';
+  $result = civicrm_api3_generic_setValue(array("entity" => 'Relationship', 'params' => $params));
+
+  if (empty($result['is_error']) && CRM_Utils_String::munge($params['field']) == 'is_active') {
+    $action = CRM_Core_Action::DISABLE;
+    if ($params['value'] == TRUE) {
+      $action = CRM_Core_Action::ENABLE;
+    }
+    CRM_Contact_BAO_Relationship::disableEnableRelationship($params['id'], $action);
+  }
+  return $result;
+}