- Модуль: salescenter
- Путь к файлу: ~/bitrix/modules/salescenter/lib/integration/crmmanager.php
- Класс: BitrixSalesCenterIntegrationCrmManager
- Вызов: CrmManager::saveTriggerByCode
private function saveTriggerByCode($triggerCode, $entityId, $entityTypeId, $stageId)
{
$target = $this->getAutomationTarget($entityTypeId);
if ($target === null)
{
return 0;
}
$stages = $this->getStageList($entityId, $entityTypeId);
$triggers = $target->getTriggers(array_keys($stages));
$trigger = $this->findTriggerByCode($triggerCode, $triggers);
if ($trigger)
{
if ($trigger['DOCUMENT_STATUS'] === $stageId)
{
return $trigger['ID'];
}
$trigger['DELETED'] = 'Y';
$target->setTriggers([$trigger]);
}
/** @var AutomationTriggerBaseTrigger $triggerClassName */
$triggerClassName = BitrixCrmAutomationFactory::getTriggerByCode($triggerCode);
if ($stageId)
{
$result = $target->setTriggers([
[
'DOCUMENT_STATUS' => $stageId,
'CODE' => $triggerClassName::getCode(),
'NAME' => $triggerClassName::getName()
]
]);
if ($result)
{
return $result[0]['ID'];
}
}
return 0;
}