- Модуль: 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
);
}