• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/businessvalue.php
  • Класс: BitrixSaleBusinessValue
  • Вызов: BusinessValue::getConsumerCodePersonMapping
static function getConsumerCodePersonMapping()
{
	if (! self::$consumerCodePersonMapping)
	{
		$result = BusinessValueTable::getList(array(
			'select' => array('CODE_KEY', 'CONSUMER_KEY', 'PERSON_TYPE_ID', 'PROVIDER_KEY', 'PROVIDER_VALUE'),
			// !!! if filter is set, than setMapping must evaluate personTypeId's for codes, otherwise it will throw duplicate error!!!
			//'filter' => array('=PERSON_TYPE_ID' => array_merge(array(BusinessValueTable::COMMON_PERSON_TYPE_ID), array_keys(self::getPersonTypes())),
		));

		while ($row = $result->fetch())
		{
			$row['CODE_KEY'] = ToUpper($row['CODE_KEY']);
			// TODO delete mappings for non existent code:consumer:person from db
			// TODO optimize memory usage $consumerCodePersonMapping >> $personConsumerCodeMapping
			self::$consumerCodePersonMapping[$row['CONSUMER_KEY']][$row['CODE_KEY']][$row['PERSON_TYPE_ID']] = array(
				'PROVIDER_KEY'   => $row['PROVIDER_KEY'],
				'PROVIDER_VALUE' => $row['PROVIDER_VALUE'],
			);
		}
	}

	return self::$consumerCodePersonMapping;
}