You are here

function civicrm_case_activity_reference_field_field_load in CiviCRM Entity 7.2

Implements hook_field_load().

Parameters

$entity_type:

$entities:

$field:

$instances:

$langcode:

$items:

$age:

File

modules/civicrm_case_activity_reference_field/civicrm_case_activity_reference_field.module, line 105
Provide CiviCRM entity reference field type

Code

function civicrm_case_activity_reference_field_field_load($entity_type, $entities, $field, $instances, $langcode, &$items, $age) {
  foreach ($entities as $id => $entity) {
    try {
      $query = db_select('civicrm_case_activity', 'ca');
      $query
        ->fields('ca', array(
        'activity_id',
      ));
      $query
        ->join('civicrm_activity', 'a', 'ca.activity_id = a.id');
      $activities = $query
        ->condition('ca.case_id', $id, '=')
        ->condition('a.is_current_revision', 1, '=')
        ->execute()
        ->fetchAll();
      $result = array();
      if (!empty($activities)) {
        foreach ($activities as $activity) {
          $result[] = $activity->activity_id;
        }
      }
    } catch (Exception $e) {
      $error = $e
        ->getMessage();
      drupal_set_message($error, 'error');
      continue;
    }
    if (!empty($result)) {
      foreach ($result as $delta => $activity_id) {
        $items[$id][$delta]['target_id'] = $activity_id;
      }
    }
  }
}