/**
  * Get all Relationship Types  from database.
  *
  * The static array group is returned, and if it's
  * called the first time, the <b>RelationshipType DAO</b> is used
  * to get all the relationship types.
  *
  * Note: any database errors will be trapped by the DAO.
  *
  * @param string $valueColumnName db column name/label.
  * @param boolean $reset          reset relationship types if true
  *
  * @access public
  * @static
  *
  * @return array - array reference of all relationship types.
  */
 public static function &relationshipType($valueColumnName = 'label', $reset = FALSE)
 {
     if (!CRM_Utils_Array::value($valueColumnName, self::$relationshipType) || $reset) {
         self::$relationshipType[$valueColumnName] = array();
         //now we have name/label columns CRM-3336
         $column_a_b = "{$valueColumnName}_a_b";
         $column_b_a = "{$valueColumnName}_b_a";
         $relationshipTypeDAO = new CRM_Contact_DAO_RelationshipType();
         $relationshipTypeDAO->selectAdd();
         $relationshipTypeDAO->selectAdd("id, {$column_a_b}, {$column_b_a}, contact_type_a, contact_type_b, contact_sub_type_a, contact_sub_type_b");
         $relationshipTypeDAO->is_active = 1;
         $relationshipTypeDAO->find();
         while ($relationshipTypeDAO->fetch()) {
             self::$relationshipType[$valueColumnName][$relationshipTypeDAO->id] = array('id' => $relationshipTypeDAO->id, $column_a_b => $relationshipTypeDAO->{$column_a_b}, $column_b_a => $relationshipTypeDAO->{$column_b_a}, 'contact_type_a' => "{$relationshipTypeDAO->contact_type_a}", 'contact_type_b' => "{$relationshipTypeDAO->contact_type_b}", 'contact_sub_type_a' => "{$relationshipTypeDAO->contact_sub_type_a}", 'contact_sub_type_b' => "{$relationshipTypeDAO->contact_sub_type_b}");
         }
     }
     return self::$relationshipType[$valueColumnName];
 }
Ejemplo n.º 2
0
 /**
  * Check if the relationship type selected between two contacts is correct.
  *
  * @param int $contact_a
  *   1st contact id.
  * @param int $contact_b
  *   2nd contact id.
  * @param int $relationshipTypeId
  *   Relationship type id.
  *
  * @return bool
  *   true if it is valid relationship else false
  */
 public static function checkRelationshipType($contact_a, $contact_b, $relationshipTypeId)
 {
     $relationshipType = new CRM_Contact_DAO_RelationshipType();
     $relationshipType->id = $relationshipTypeId;
     $relationshipType->selectAdd();
     $relationshipType->selectAdd('contact_type_a, contact_type_b, contact_sub_type_a, contact_sub_type_b');
     if ($relationshipType->find(TRUE)) {
         $contact_type_a = CRM_Contact_BAO_Contact::getContactType($contact_a);
         $contact_type_b = CRM_Contact_BAO_Contact::getContactType($contact_b);
         $contact_sub_type_a = CRM_Contact_BAO_Contact::getContactSubType($contact_a);
         $contact_sub_type_b = CRM_Contact_BAO_Contact::getContactSubType($contact_b);
         if ((!$relationshipType->contact_type_a || $relationshipType->contact_type_a == $contact_type_a) && (!$relationshipType->contact_type_b || $relationshipType->contact_type_b == $contact_type_b) && (!$relationshipType->contact_sub_type_a || in_array($relationshipType->contact_sub_type_a, $contact_sub_type_a)) && (!$relationshipType->contact_sub_type_b || in_array($relationshipType->contact_sub_type_b, $contact_sub_type_b))) {
             return TRUE;
         } else {
             return FALSE;
         }
     }
     return FALSE;
 }
Ejemplo n.º 3
0
 /**
  * Function to check if the relationship type selected between two contacts is correct
  *
  * @param int $contact_a 1st contact id 
  * @param int $contact_b 2nd contact id 
  * @param int $relationshipTypeId relationship type id
  *
  * @return boolean  true if it is valid relationship else false
  * @access public
  * @static
  */
 static function checkRelationshipType($contact_a, $contact_b, $relationshipTypeId)
 {
     $relationshipType = new CRM_Contact_DAO_RelationshipType();
     $relationshipType->id = $relationshipTypeId;
     $relationshipType->selectAdd();
     $relationshipType->selectAdd('contact_type_a, contact_type_b, contact_sub_type_a, contact_sub_type_b');
     if ($relationshipType->find(true)) {
         require_once 'CRM/Contact/BAO/Contact.php';
         $contact_type_a = CRM_Contact_BAO_Contact::getContactType($contact_a);
         $contact_type_b = CRM_Contact_BAO_Contact::getContactType($contact_b);
         $contact_sub_type_a = CRM_Contact_BAO_Contact::getContactSubType($contact_a);
         $contact_sub_type_b = CRM_Contact_BAO_Contact::getContactSubType($contact_b);
         if ((!$relationshipType->contact_type_a || $relationshipType->contact_type_a == $contact_type_a) && (!$relationshipType->contact_type_b || $relationshipType->contact_type_b == $contact_type_b) && (!$relationshipType->contact_sub_type_a || $relationshipType->contact_sub_type_a == $contact_sub_type_a) && (!$relationshipType->contact_sub_type_b || $relationshipType->contact_sub_type_b == $contact_sub_type_b)) {
             return true;
         } else {
             return false;
         }
     }
     return false;
 }