- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm/common.php
- Класс: BitrixImOpenLinesCrmCommon
- Вызов: Common::addActivityBindings
static function addActivityBindings($id, $newBindings): Result
{
$result = new Result();
if (!Loader::includeModule('crm'))
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NOT_LOAD_CRM'), Crm::ERROR_IMOL_NOT_LOAD_CRM, __METHOD__));
}
else
{
if($id > 0 && !empty($newBindings) && is_array($newBindings))
{
$bindings = CAllCrmActivity::GetBindings($id);
foreach($bindings as $binding)
{
if(!empty($newBindings[CCrmOwnerType::ResolveName($binding['OWNER_TYPE_ID'])]) &&
$binding['OWNER_ID'] == $newBindings[CCrmOwnerType::ResolveName($binding['OWNER_TYPE_ID'])])
{
unset($newBindings[CCrmOwnerType::ResolveName($binding['OWNER_TYPE_ID'])]);
}
}
if(!empty($newBindings))
{
foreach ($newBindings as $ownerType => $ownerId)
{
$bindings[] = [
'OWNER_ID' => $ownerId,
'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID($ownerType)
];
}
CAllCrmActivity::SaveBindings($id, $bindings, false, false);
}
}
else
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NO_REQUIRED_PARAMETERS'), Crm::ERROR_IMOL_CRM_NO_REQUIRED_PARAMETERS, __METHOD__));
}
}
return $result;
}