You are here

salesforce_mapping.entity.inc in Salesforce Suite 7.3

Contains SalesforceMapping.

File

modules/salesforce_mapping/includes/salesforce_mapping.entity.inc
View source
<?php

/**
 * @file
 * Contains SalesforceMapping.
 */

/**
 * Entity class for Salesforce Mappings
 */
class SalesforceMapping extends Entity {

  // Only one bundle type for now.
  public $type = 'salesforce_mapping';

  /**
   * Constructor for SalesforceMapping.
   *
   * @param array $values
   *   Associated array of values for the fields the entity should start with.
   */
  public function __construct(array $values = array()) {
    parent::__construct($values, 'salesforce_mapping');
  }

  /**
   * Save the entity.
   *
   * @return object
   *   The newly saved version of the entity.
   */
  public function save() {
    if (isset($this->is_new) && $this->is_new) {
      $this->created = REQUEST_TIME;
    }
    return parent::save();
  }

  /**
   * Return an array of Salesforce Field Names included in this mapping.
   *
   * @param array $directions
   *   If given, only include fields mapped in this or these directions.
   *   Possible values are:
   *     SALESFORCE_MAPPING_DIRECTION_SYNC
   *     SALESFORCE_MAPPING_DIRECTION_SF_DRUPAL
   *     SALESFORCE_MAPPING_DIRECTION_DRUPAL_SF
   *   @see salesforce_mapping.module
   * @return array $mapped_fields
   *   Indexes and keys are both Salesforce Field (machine) Name
   */
  public function getMappedFields(array $directions = NULL) {
    $mapped_fields = array();
    foreach ($this->field_mappings as $field_map) {
      if (empty($directions) || in_array($field_map['direction'], $directions)) {

        // Some field map types (Relation) store a collection of SF objects.
        if (is_array($field_map['salesforce_field']) && !isset($field_map['salesforce_field']['name'])) {
          foreach ($field_map['salesforce_field'] as $sf_field) {
            $mapped_fields[$sf_field['name']] = $sf_field['name'];
          }
        }
        else {
          $mapped_fields[$field_map['salesforce_field']['name']] = $field_map['salesforce_field']['name'];
        }
      }
    }
    if (!empty($this
      ->getMappedRecordTypes())) {
      $mapped_fields['RecordTypeId'] = 'RecordTypeId';
    }
    return $mapped_fields;
  }
  public function getMappedRecordTypes() {
    return $this->salesforce_record_type_default == SALESFORCE_MAPPING_DEFAULT_RECORD_TYPE ? array() : array_filter($this->salesforce_record_types_allowed);
  }

  /**
   * Retreive the default URI.
   *
   * @return array
   *   Associated array with the default URI on the 'path' key.
   */
  protected function defaultUri() {
    return array(
      'path' => 'admin/structure/salesforce/mappings/manage/' . $this
        ->identifier(),
    );
  }

}

Classes

Namesort descending Description
SalesforceMapping Entity class for Salesforce Mappings