• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recycling/dealcontroller.php
  • Класс: Bitrix\Crm\Recycling\DealController
  • Вызов: DealController::prepareEntityData
public function prepareEntityData($entityID, array $params = array())
{
	$fields = isset($params['FIELDS']) && is_array($params['FIELDS']) ? $params['FIELDS'] : null;
	if(empty($fields))
	{
		$fields = $this->getEntityFields($entityID);
	}

	if(empty($fields))
	{
		throw new Main\ObjectNotFoundException("Could not find entity: #{$entityID}.");
	}

	$slots = [
		'FIELDS' => array_intersect_key($fields, array_flip(self::getFieldNames())),
	];

	if(isset($fields['LEAD_ID']) && $fields['LEAD_ID'] > 0)
	{
		$slots['PARENT_LEAD_ID'] = (int)$fields['LEAD_ID'];
	}

	$companyID = isset($fields['COMPANY_ID']) ? (int)$fields['COMPANY_ID'] : 0;
	if($companyID > 0)
	{
		$slots['COMPANY_ID'] = $companyID;
	}

	$contactIDs = Crm\Binding\DealContactTable::getDealContactIDs($entityID);
	if(!empty($contactIDs))
	{
		$slots['CONTACT_IDS'] = $contactIDs;
	}

	$quoteIDs = QuoteBinder::getInstance()->getBoundEntityIDs(\CCrmOwnerType::Deal, $entityID);
	if(!empty($quoteIDs))
	{
		$slots['QUOTE_IDS'] = $quoteIDs;
	}

	$invoiceIDs = InvoiceBinder::getInstance()->getBoundEntityIDs(\CCrmOwnerType::Deal, $entityID);
	if(!empty($invoiceIDs))
	{
		$slots['INVOICE_IDS'] = $invoiceIDs;
	}

	$requisiteLinks = Crm\EntityRequisite::getLinks(\CCrmOwnerType::Deal, $entityID);
	if(!empty($requisiteLinks))
	{
		$slots['REQUISITE_LINKS'] = $requisiteLinks;
	}

	$slots = array_merge($slots, $this->prepareActivityData($entityID, $params));

	return array(
		'TITLE' => \CCrmOwnerType::GetCaption(
			\CCrmOwnerType::Deal,
			$entityID,
			false,
			array('FIELDS' => $fields)
		),
		'SLOTS' => $slots
	);
}