- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/FieldSet/Factory.php
- Класс: Bitrix\Crm\FieldSet\Factory
- Вызов: Factory::save
public function save(Item $item): Main\Result
{
$result = new Main\Result();
if (!CCrmOwnerType::isCorrectEntityTypeId($item->getEntityTypeId()))
{
$result->addError(new Main\Error('Wrong primary entity type ID.'));
return $result;
}
if (!in_array($item->getClientEntityTypeId(), [CCrmOwnerType::Contact, CCrmOwnerType::Company], true))
{
$result->addError(new Main\Error('Wrong client entity type ID.'));
return $result;
}
$data = [
'ENTITY_TYPE_ID' => $item->getEntityTypeId(),
'CLIENT_ENTITY_TYPE_ID' => $item->getClientEntityTypeId(),
'RQ_PRESET_ID' => $item->getRequisitePresetId(),
'FIELDS' => $item->getFields(),
'CODE' => $item->getCode(),
'IS_SYSTEM' => (int)$item->isSystem(),
//'TITLE' => '',
];
if (!$item->getId())
{
$result = Model\FieldSetTable::add($data);
if ($result->isSuccess())
{
$item->setId($result->getId());
}
}
else
{
unset($data['CODE'], $data['IS_SYSTEM']);
$result = Model\FieldSetTable::update($item->getId(), $data);
}
return $result;
}