CCrmDealRestProxy::innerAdd

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmDealRestProxy
  4. innerAdd
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
  • Класс: \CCrmDealRestProxy
  • Вызов: CCrmDealRestProxy::innerAdd
protected function innerAdd(&$fields, &$errors, array $params = null)
{
	$categoryID = isset($fields['CATEGORY_ID']) ? (int)$fields['CATEGORY_ID'] : 0;
	$fields['CATEGORY_ID'] = $categoryID = max($categoryID, 0);
	if(!CCrmDeal::CheckCreatePermission(\CCrmPerms::GetCurrentUserPermissions(), $categoryID))
	{
		$errors[] = 'Access denied.';
		return false;
	}

	$diskQuotaRestriction = \Bitrix\Crm\Restriction\RestrictionManager::getDiskQuotaRestriction();
	if (!$diskQuotaRestriction->hasPermission())
	{
		$errors[] = $diskQuotaRestriction->getErrorMessage();
		return false;
	}

	$defaultRequisiteLinkParams = Requisite\EntityLink::determineRequisiteLinkBeforeSave(
		CCrmOwnerType::Deal, 0, Requisite\EntityLink::ENTITY_OPERATION_ADD, $fields
	);

	$entity = self::getEntity(false);
	$options = array();
	if(!$this->isRequiredUserFieldCheckEnabled())
	{
		$options['DISABLE_REQUIRED_USER_FIELD_CHECK'] = true;
	}
	if(is_array($params) && isset($params['REGISTER_SONET_EVENT']))
	{
		$options['REGISTER_SONET_EVENT'] = mb_strtoupper($params['REGISTER_SONET_EVENT']) === 'Y';
	}
	$result = $entity->Add($fields, true, $options);
	if($result <= 0)
	{
		$errors[] = $entity->LAST_ERROR;
	}
	else
	{
		Requisite\EntityLink::register(
			CCrmOwnerType::Deal, (int)$result,
			$defaultRequisiteLinkParams['REQUISITE_ID'],
			$defaultRequisiteLinkParams['BANK_DETAIL_ID']
		);

		self::traceEntity(\CCrmOwnerType::Deal, $result, $fields);
		if (self::isBizProcEnabled())
		{
			CCrmBizProcHelper::AutoStartWorkflows(
				CCrmOwnerType::Deal,
				$result,
				CCrmBizProcEventType::Create,
				$errors
			);
		}
		//Region automation
		$starter = new \Bitrix\Crm\Automation\Starter(\CCrmOwnerType::Deal, $result);
		$starter->setContextToRest()->setUserId($this->getCurrentUserID())->runOnAdd();
		//End region
	}

	return $result;
}

Добавить комментарий