• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/rest/configuration/entity/status.php
  • Класс: Bitrix\Crm\Integration\Rest\Configuration\Entity\Status
  • Вызов: Status::export
static function export($option)
{
	if(!Helper::checkAccessManifest($option, static::$accessManifest))
	{
		return null;
	}

	$resultCheck = static::checkRequiredParams('EXPORT');
	if (is_array($resultCheck))
	{
		return $resultCheck;
	}

	$step = false;
	if(array_key_exists('STEP', $option))
	{
		$step = $option['STEP'];
	}

	$return = [
		'FILE_NAME' => '',
		'CONTENT' => [],
		'NEXT' => $step
	];
	$typeList = array_values(CCrmStatus::GetEntityTypes());
	if($typeList[$step])
	{
		if(mb_strpos($typeList[$step]['ID'], static::$dealStageStart) !== false)
		{
			$allDeal = DealCategory::getAll(true);
			$allDealName = array_column($allDeal, 'NAME', 'ID');

			if($typeList[$step]['ID'] == static::$dealStageStart)
			{
				$typeList[$step]['NAME'] = $allDealName[0];
			}
			else
			{
				$matches = [];
				if(preg_match('/^'.static::$customDealStagePrefix.'([0-9]+)/', $typeList[$step]['ID'], $matches))
				{
					$id = $matches[1];
					if(!empty($allDealName[$id]))
					{
						$typeList[$step]['NAME'] = $allDealName[$id];
					}
				}
			}
		}

		$return['FILE_NAME'] = $typeList[$step]['ID'];
		$return['CONTENT']['ENTITY'] = $typeList[$step];

		$list = StatusTable::getList([
			'order' => [
				'ID' => 'ASC',
			],
			'filter' => [
				'=ENTITY_ID' => $typeList[$step]['ID'],
			],
		]);
		while($status = $list->fetch())
		{
			$return['CONTENT']['ITEMS'][] = $status;
		}
	}
	else
	{
		$return['NEXT'] = false;
	}

	return $return;
}