- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm.php
- Класс: BitrixImOpenLinesCrm
- Вызов: Crm::setOperatorId
public function setOperatorId($id, $autoMode = false): Result
{
$result = new Result();
$result->setResult(false);
$editorId = 0;
if (Loader::includeModule('crm'))
{
$fields = $this->getFields();
$session = $fields->getSession();
if (!empty($session))
{
if (
$session->getConfig('CRM') === 'Y'
&& $session->getConfig('CRM_TRANSFER_CHANGE') === 'Y'
&& $session->getData('CRM') === 'Y'
&& ($activityId = $session->getData('CRM_ACTIVITY_ID'))
)
{
if($autoMode === true)
{
if(!empty($id))
{
$editorId = $id;
}
else
{
$editorId = 1;
}
}
$updateActivityData = ['OPERATOR_ID' => $id];
if(!empty($editorId))
{
$updateActivityData['EDITOR_ID'] = $editorId;
}
$resultUpdateActivity = Activity::update($activityId, $updateActivityData);
if($resultUpdateActivity->isSuccess())
{
$result->setResult(true);
if($session->getData('CRM_CREATE') == 'Y')
{
$crmBindingManager = CrmCommon::getActivityBindings($activityId);
if($crmBindingManager->isSuccess())
{
$binding = $crmBindingManager->getData();
$updateEntityData = ['ASSIGNED_BY_ID' => $id];
if(!empty($editorId))
{
$updateEntityData['EDITOR_ID'] = $editorId;
}
if($session->getData('CRM_CREATE_LEAD') == 'Y' && !empty($binding[CCrmOwnerType::LeadName]))
{
CrmCommon::update(CCrmOwnerType::LeadName, $binding[CCrmOwnerType::LeadName], $updateEntityData);
}
if($session->getData('CRM_CREATE_CONTACT') == 'Y' && !empty($binding[CCrmOwnerType::ContactName]))
{
CrmCommon::update(CCrmOwnerType::ContactName, $binding[CCrmOwnerType::ContactName], $updateEntityData);
}
if($session->getData('CRM_CREATE_COMPANY') == 'Y' && !empty($binding[CCrmOwnerType::CompanyName]))
{
CrmCommon::update(CCrmOwnerType::CompanyName, $binding[CCrmOwnerType::CompanyName], $updateEntityData);
}
if($session->getData('CRM_CREATE_DEAL') == 'Y' && !empty($binding[CCrmOwnerType::DealName]))
{
CrmCommon::update(CCrmOwnerType::DealName, $binding[CCrmOwnerType::DealName], $updateEntityData);
}
}
else
{
$result->addErrors($crmBindingManager->getErrors());
}
}
}
else
{
$result->addErrors($resultUpdateActivity->getErrors());
}
}
}
else
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NO_SESSION'), self::ERROR_IMOL_NO_SESSION, __METHOD__));
}
}
else
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NOT_LOAD_CRM'), self::ERROR_IMOL_NOT_LOAD_CRM, __METHOD__));
}
return $result;
}