- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_company.php
- Класс: \CAllCrmCompany
- Вызов: CAllCrmCompany::CreateRequisite
static function CreateRequisite($ID, $presetID)
{
if(!is_integer($ID))
{
$ID = (int)$ID;
}
if($ID <= 0)
{
throw new Main\ArgumentException('Must be greater than zero', 'ID');
}
if(!is_integer($presetID))
{
$presetID = (int)$presetID;
}
if($presetID <= 0)
{
throw new Main\ArgumentException('Must be greater than zero', 'presetID');
}
$externalID = "COMPANY_{$ID}";
if(Crm\EntityRequisite::getByExternalId($externalID, array('ID')) !== null)
{
//Already exists
return false;
}
$dbResult = self::GetListEx(
[],
array('=ID' => $ID, 'CHECK_PERMISSIONS' => 'N')
);
$entityFields = $dbResult->Fetch();
if(!is_array($entityFields))
{
throw new Main\ObjectNotFoundException("The company with ID '{$ID}' is not found");
}
$presetEntity = new Crm\EntityPreset();
$presetFields = $presetEntity->getById($presetID);
if(!is_array($presetFields))
{
throw new Main\ObjectNotFoundException("The preset with ID '{$presetID}' is not found");
}
$fieldInfos = $presetEntity->settingsGetFields(
is_array($presetFields['SETTINGS']) ? $presetFields['SETTINGS'] : []
);
$title = isset($entityFields['TITLE']) ? $entityFields['TITLE'] : '';
$requisiteFields = [];
foreach($fieldInfos as $fieldInfo)
{
$fieldName = isset($fieldInfo['FIELD_NAME']) ? $fieldInfo['FIELD_NAME'] : '';
if($fieldName === Crm\EntityRequisite::COMPANY_FULL_NAME)
{
if($title !== '')
{
$requisiteFields[Crm\EntityRequisite::COMPANY_FULL_NAME] = $title;
}
}
elseif($fieldName === Crm\EntityRequisite::ADDRESS)
{
$requisiteFields[Crm\EntityRequisite::ADDRESS] = [
EntityAddressType::Primary =>
CompanyAddress::mapEntityFields(
$entityFields,
['TYPE_ID' => EntityAddressType::Primary, 'SKIP_EMPTY' => true]
),
EntityAddressType::Registered =>
CompanyAddress::mapEntityFields(
$entityFields,
['TYPE_ID' => EntityAddressType::Registered, 'SKIP_EMPTY' => true]
)
];
}
}
if(empty($requisiteFields))
{
return false;
}
$requisiteFields['NAME'] = $title !== '' ? $title : $externalID;
$requisiteFields['PRESET_ID'] = $presetID;
$requisiteFields['ACTIVE'] = 'Y';
$requisiteFields['ENTITY_TYPE_ID'] = CCrmOwnerType::Company;
$requisiteFields['ENTITY_ID'] = $ID;
$requisiteFields['XML_ID'] = $externalID;
$requisiteEntity = new Crm\EntityRequisite();
return $requisiteEntity->add($requisiteFields)->isSuccess();
}