- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm/common.php
- Класс: BitrixImOpenLinesCrmCommon
- Вызов: Common::update
static function update($type, $id, $updateFields): bool
{
$result = false;
$entity = null;
$options = [];
if(Loader::includeModule('crm'))
{
if ($type === Crm::ENTITY_LEAD)
{
$entity = new CCrmLead(false);
}
elseif ($type === Crm::ENTITY_COMPANY)
{
$entity = new CCrmCompany(false);
unset(
$updateFields['COMPANY_ID'],
$updateFields['CONTACT_ID'],
$updateFields['NAME'],
$updateFields['LAST_NAME'],
$updateFields['SECOND_NAME'],
$updateFields['SOURCE_DESCRIPTION']
);
}
elseif ($type === Crm::ENTITY_CONTACT)
{
$entity = new CCrmContact(false);
unset(
$updateFields['COMPANY_ID'],
$updateFields['CONTACT_ID']
);
}
elseif ($type === Crm::ENTITY_DEAL)
{
$entity = new CCrmDeal(false);
unset(
$updateFields['COMPANY_ID'],
$updateFields['CONTACT_ID'],
$updateFields['FM'],
$updateFields['NAME'],
$updateFields['LAST_NAME'],
$updateFields['SECOND_NAME']
);
}
if(!empty($updateFields['EDITOR_ID']))
{
$options['CURRENT_USER'] = $updateFields['EDITOR_ID'];
unset($updateFields['EDITOR_ID']);
}
if(
$entity !== null
&& !empty($updateFields)
&& (
!isset($updateFields['FM'])
|| !empty($updateFields['FM'])
)
)
{
$previousFields = $entity::GetByID($id, false) ?: [];
if ($entity->Update($id, $updateFields, true, true, $options))
{
$errors = [];
CCrmBizProcHelper::AutoStartWorkflows(
CCrmOwnerType::ResolveID($type),
$id,
CCrmBizProcEventType::Edit,
$errors
);
//Region automation
if (BitrixCrmAutomationFactory::isAutomationRunnable(CCrmOwnerType::ResolveID($type)))
{
$starter = new BitrixCrmAutomationStarter(CCrmOwnerType::ResolveID($type), $id);
$starter->runOnUpdate($updateFields, $previousFields);
}
//End region
}
$result = true;
}
}
return $result;
}