- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/recurring/entity/item/dealexist.php
- Класс: Bitrix\Crm\Recurring\Entity\Item\DealExist
- Вызов: DealExist::fillTemplateFields
protected function fillTemplateFields()
{
global $USER_FIELD_MANAGER;
$result = new Main\Result();
$fields = \CCrmDeal::GetByID($this->templateId, false);
if (empty($fields))
{
$result->addError(new Main\Error('Template entity not found'));
return $result;
}
$this->setTemplateFields($fields);
$dealUserType = new \CCrmUserType($USER_FIELD_MANAGER, \CCrmDeal::GetUserFieldEntityID());
$userFields = $dealUserType->GetEntityFields($this->templateId);
foreach ($userFields as $key => $ufField)
{
$this->setTemplateField($key, $ufField['VALUE']);
}
$dealProducts = \CCrmDeal::LoadProductRows([$this->templateId]);
$dealProducts = is_array($dealProducts) ? $dealProducts : [];
$this->setTemplateField('PRODUCT_ROWS', $dealProducts);
$dealContactIds = [];
$contactsRawData = DealContactTable::getList([
'filter' => ['=DEAL_ID' => $this->templateId],
'select' => ['DEAL_ID', 'CONTACT_ID']
]);
while ($contact = $contactsRawData->fetch())
{
$dealContactIds[$contact['DEAL_ID']][] = $contact['CONTACT_ID'];
}
$this->setTemplateField('CONTACT_IDS', $dealContactIds);
$observers = ObserverManager::getEntityObserverIDs(\CCrmOwnerType::Deal, $this->templateId);
if (!empty($observers))
{
$this->setTemplateField('OBSERVER_IDS', $observers);
}
return $result;
}