• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/entitybankdetail.php
  • Класс: Bitrix\Crm\EntityBankDetail
  • Вызов: EntityBankDetail::add
public function add($fields, $options = array())
{
	unset($fields['ID'], $fields['DATE_MODIFY'], $fields['MODIFY_BY_ID']);
	$fields['DATE_CREATE'] = new \Bitrix\Main\Type\DateTime();
	$fields['CREATED_BY_ID'] = \CCrmSecurityHelper::GetCurrentUserID();

	// rewrite some fields
	$entity = RequisiteTable::getEntity();
	foreach ($entity->getFields() as $field)
	{
		$fieldName = $field->getName();
		if ($field instanceof Entity\BooleanField && array_key_exists($fieldName, $fields))
		{
			if ($fields[$fieldName] !== 'Y' && $fields[$fieldName] !== 'N'
				&& $fields[$fieldName] !== true && $fields[$fieldName] !== false)
			{
				$fields[$fieldName] = $field->getDefaultValue();
			}
		}
	}

	$result = $this->checkRqFieldsBeforeSave(0, $fields);
	if (!$result->isSuccess())
	{
		return $result;
	}

	$result = BankDetailTable::add($fields);
	$id = $result->isSuccess() ? (int)$result->getId() : 0;
	if ($id > 0)
	{
		$entityTypeId =
			isset($fields['ENTITY_TYPE_ID'])
				? (int)$fields['ENTITY_TYPE_ID']
				: CCrmOwnerType::Undefined
		;
		$entityId = isset($fields['ENTITY_ID']) ? (int)$fields['ENTITY_ID'] : 0;
		DuplicateBankDetailCriterion::registerByParent($entityTypeId, $entityId);
		if ($entityTypeId === CCrmOwnerType::Requisite)
		{
			//region Register volatile duplicate criterion fields
			DuplicateVolatileCriterion::register(
				CCrmOwnerType::Requisite,
				$entityId,
				[FieldCategory::BANK_DETAIL]
			);
			//endregion Register volatile duplicate criterion fields
		}
	}

	//region Send event
	if ($id > 0)
	{
		$event = new Main\Event('crm', 'OnAfterBankDetailAdd', array('id' => $id, 'fields' => $fields));
		$event->send();
	}
	//endregion Send event

	return $result;
}