FieldAttributeManager::checkPhaseCondition

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. FieldAttributeManager
  4. checkPhaseCondition
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/attribute/fieldattributemanager.php
  • Класс: Bitrix\Crm\Attribute\FieldAttributeManager
  • Вызов: FieldAttributeManager::checkPhaseCondition
static function checkPhaseCondition(
	$entityTypeID,
	array $entityData,
	$startPhase,
	$finishPhase,
	array $options = null
)
{
	//If Start Phase and Finish Phase are empty, then field is required always.
	if($startPhase === '' && $finishPhase === '')
	{
		return true;
	}

	if(!is_array($options))
	{
		$options = array();
	}

	if($entityTypeID === CCrmOwnerType::Deal)
	{
		$categoryID = isset($entityData['CATEGORY_ID']) ? (int)$entityData['CATEGORY_ID'] : -1;
		if($categoryID < 0 && isset($options['CATEGORY_ID']))
		{
			$categoryID = $options['CATEGORY_ID'];
		}

		$startStageSort = \CCrmDeal::GetStageSort($startPhase, $categoryID);
		$finishStageSort = \CCrmDeal::GetStageSort($finishPhase, $categoryID);

		$stageID = isset($options['STAGE_ID'])
			? $options['STAGE_ID']
			: (isset($entityData['STAGE_ID']) ? $entityData['STAGE_ID'] : '');
		$stageSort = \CCrmDeal::GetStageSort($stageID, $categoryID);

		return($stageSort >= $startStageSort && $stageSort <= $finishStageSort);
	}
	if($entityTypeID === CCrmOwnerType::Lead)
	{
		$startStatusSort = \CCrmLead::GetStatusSort($startPhase);
		$finishStatusSort = \CCrmLead::GetStatusSort($finishPhase);

		$statusID = isset($options['STATUS_ID'])
			? $options['STATUS_ID']
			: (isset($entityData['STATUS_ID']) ? $entityData['STATUS_ID'] : '');
		$statusSort = \CCrmLead::GetStatusSort($statusID);

		return($statusSort >= $startStatusSort && $statusSort <= $finishStatusSort);
	}
	if($entityTypeID === CCrmOwnerType::Contact)
	{
		// There are no statuses for contacts yet
		return true;
	}
	if($entityTypeID === CCrmOwnerType::Company)
	{
		// There are no statuses for companies yet
		return true;
	}

	return false;
}

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