You are here

function salesforce_mapping_related_entity_fieldmap_push_value in Salesforce Suite 7.3

Value callback for related entity fieldmap type.

Parameters

array $fieldmap: Map of Drupal field to Salesforce field associations.

object $entity_wrapper: Entity wrapper object.

Return value

mixed The value to push.

1 string reference to 'salesforce_mapping_related_entity_fieldmap_push_value'
salesforce_mapping_salesforce_mapping_fieldmap_type in modules/salesforce_mapping/includes/salesforce_mapping.fieldmap_type.inc
Implements hook_salesforce_mapping_fieldmap_type().

File

modules/salesforce_mapping/includes/salesforce_mapping.fieldmap_type.inc, line 134
Data and callbacks for fieldmap types.

Code

function salesforce_mapping_related_entity_fieldmap_push_value($fieldmap, $entity_wrapper) {
  $value = NULL;
  if (property_exists($entity_wrapper->{$fieldmap['drupal_field']['fieldmap_value']}, 'isEntityList')) {
    $related_wrapper = $entity_wrapper->{$fieldmap['drupal_field']['fieldmap_value']}
      ->get(0);
  }
  else {
    $related_wrapper = $entity_wrapper->{$fieldmap['drupal_field']['fieldmap_value']};
  }
  if ($related_entity = $related_wrapper
    ->value()) {
    list($related_entity_id) = entity_extract_ids($related_wrapper
      ->type(), $related_entity);
    $mapping_object = salesforce_mapping_object_load_by_drupal($related_wrapper
      ->type(), $related_entity_id);
    if ($mapping_object) {
      $value = $mapping_object->salesforce_id;
    }
  }
  return $value;
}