You are here

function salesforce_mapping_load_multiple in Salesforce Suite 7.3

Loads multiple salesforce_mappings based on a set of matching conditions.

Parameters

array $properties: An array of properties on the {salesforce_mapping} table in the form 'field' => $value.

bool $reset: Whether to reset the internal contact loading cache.

Return value

array An array of salesforce_mapping objects.

12 calls to salesforce_mapping_load_multiple()
SalesforceMappingEntitiesTestCase::testObjectTypeMapCrud in modules/salesforce_mapping/tests/salesforce_mapping.entities.test
Tests API for interacting with salesforce_mapping.
SalesforceMappingEntitiesTestCase::testObjectTypeMapSalesforceMappingLoadMultipleInvalidType in modules/salesforce_mapping/tests/salesforce_mapping.entities.test
Tests API for salesforce_mapping_load_multiple with limited type.
salesforce_mapping_entity_delete in modules/salesforce_mapping/salesforce_mapping.module
Implements hook_entity_delete().
salesforce_mapping_entity_update in modules/salesforce_mapping/salesforce_mapping.module
Implements hook_entity_update().
salesforce_mapping_form_validate in modules/salesforce_mapping/includes/salesforce_mapping.admin.inc
Validate callback for salesforce_mapping_form().

... See full list

File

modules/salesforce_mapping/salesforce_mapping.module, line 306

Code

function salesforce_mapping_load_multiple($properties = array(), $reset = FALSE) {
  $mappings = array();
  $efq = new EntityFieldQuery();
  $efq
    ->entityCondition('entity_type', 'salesforce_mapping');
  $record_type = NULL;
  foreach ($properties as $key => $value) {
    if ($key == 'salesforce_record_type') {
      $record_type = $value;
    }
    else {
      $efq
        ->propertyCondition($key, $value);
    }
  }
  $efq
    ->propertyOrderBy('weight');
  $results = $efq
    ->execute();
  if (!empty($results)) {
    $salesforce_mapping_ids = array_keys($results['salesforce_mapping']);
    if (!empty($salesforce_mapping_ids)) {
      $mappings = entity_load('salesforce_mapping', $salesforce_mapping_ids, array(), $reset);
    }
    if ($record_type) {
      foreach ($mappings as $id => $mapping) {
        if (empty($mapping->salesforce_record_types_allowed[$record_type])) {
          unset($mappings[$id]);
        }
      }
    }
  }
  return $mappings;
}