CRM-15495 - Improve entityRef contact_type filter
[civicrm-core.git] / CRM / Contact / BAO / RelationshipType.php
index 58ec7cefd5c5355fc178336900973b20118fa50e..d3b0309fb979dd101224a6cf6d3afc49ae4031dd 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.5                                                |
+ | CiviCRM version 4.6                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
 class CRM_Contact_BAO_RelationshipType extends CRM_Contact_DAO_RelationshipType {
 
   /**
-   * class constructor
+   * Class constructor
    */
-  function __construct() {
+  public function __construct() {
     parent::__construct();
   }
 
   /**
-   * Takes a bunch of params that are needed to match certain criteria and
-   * retrieves the relevant objects. Typically the valid params are only
-   * contact_id. We'll tweak this function to be more full featured over a period
-   * of time. This is the inverse function of create. It also stores all the retrieved
-   * values in the default array
+   * Fetch object based on array of properties
    *
    * @param array $params   (reference ) an assoc array of name/value pairs
    * @param array $defaults (reference ) an assoc array to hold the flattened values
    *
-   * @return object CRM_Contact_BAO_RelationshipType object
-   * @access public
+   * @return CRM_Contact_BAO_RelationshipType object
    * @static
    */
-  static function retrieve(&$params, &$defaults) {
+  public static function retrieve(&$params, &$defaults) {
     $relationshipType = new CRM_Contact_DAO_RelationshipType();
     $relationshipType->copyValues($params);
     if ($relationshipType->find(TRUE)) {
@@ -67,7 +62,7 @@ class CRM_Contact_BAO_RelationshipType extends CRM_Contact_DAO_RelationshipType
   }
 
   /**
-   * update the is_active flag in the db
+   * Update the is_active flag in the db
    *
    * @param int      $id        id of the database record
    * @param boolean  $is_active value we want to set the is_active field
@@ -75,22 +70,21 @@ class CRM_Contact_BAO_RelationshipType extends CRM_Contact_DAO_RelationshipType
    * @return Object             DAO object on sucess, null otherwise
    * @static
    */
-  static function setIsActive($id, $is_active) {
+  public static function setIsActive($id, $is_active) {
     return CRM_Core_DAO::setFieldValue('CRM_Contact_DAO_RelationshipType', $id, 'is_active', $is_active);
   }
 
   /**
-   * Function to add the relationship type in the db
+   * Add the relationship type in the db
    *
    * @param array $params (reference ) an assoc array of name/value pairs
    * @param array $ids    the array that holds all the db ids
    *
-   * @return object CRM_Contact_DAO_RelationshipType
-   * @access public
+   * @return CRM_Contact_DAO_RelationshipType
    * @static
    *
    */
-  static function add(&$params, &$ids) {
+  public static function add(&$params, &$ids) {
     //to change name, CRM-3336
     if (empty($params['label_a_b']) && !empty($params['name_a_b'])) {
       $params['label_a_b'] = $params['name_a_b'];
@@ -126,11 +120,16 @@ class CRM_Contact_BAO_RelationshipType extends CRM_Contact_DAO_RelationshipType
 
     $relationshipType->id = CRM_Utils_Array::value('relationshipType', $ids);
 
-    return $relationshipType->save();
+    $result = $relationshipType->save();
+
+    CRM_Core_PseudoConstant::relationshipType('label', TRUE);
+    CRM_Core_PseudoConstant::relationshipType('name', TRUE);
+    CRM_Case_XMLProcessor::flushStaticCaches();
+    return $result;
   }
 
   /**
-   * Function to delete Relationship Types
+   * Delete Relationship Types
    *
    * @param int $relationshipTypeId
    *
@@ -138,7 +137,7 @@ class CRM_Contact_BAO_RelationshipType extends CRM_Contact_DAO_RelationshipType
    * @return mixed
    * @static
    */
-  static function del($relationshipTypeId) {
+  public static function del($relationshipTypeId) {
     // make sure relationshipTypeId is an integer
     // @todo review this as most delete functions rely on the api & form layer for this
     // or do a find first & throw error if no find
@@ -176,4 +175,3 @@ UPDATE civicrm_membership_type
     return $relationshipType->delete();
   }
 }
-