- Модуль: 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;
}