- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/entity.php
- Класс: Bitrix\Crm\WebForm\Entity
- Вызов: Entity::getSchemesByInvoice
static function getSchemesByInvoice($selectedSchemeId = null, $allowedEntitySchemes = null)
{
$result = [
'HAS_DEAL' => false,
'HAS_DYNAMIC' => false,
'HAS_INVOICE' => false,
'SELECTED_DESCRIPTION' => '',
'BY_INVOICE' => [],
'BY_NON_INVOICE' => [],
];
$schemes = self::getSchemes();
$previousSchemeId = null;
foreach ($schemes as $schemeId => $scheme)
{
if (!$selectedSchemeId)
{
$selectedSchemeId = $schemeId;
}
$scheme['ID'] = $schemeId;
$scheme['SELECTED'] = false;
$scheme['DISABLED'] = (!empty($allowedEntitySchemes) && !in_array($schemeId, $allowedEntitySchemes));
$hasDeal = in_array(\CCrmOwnerType::DealName, $scheme['ENTITIES']);
$hasInvoice = in_array(\CCrmOwnerType::InvoiceName, $scheme['ENTITIES']);
$searchSchemeId = $hasInvoice ? $previousSchemeId : $schemeId;
$section = $hasInvoice ? 'BY_INVOICE' : 'BY_NON_INVOICE';
$result[$section][$searchSchemeId] = $scheme;
$previousSchemeId = $schemeId;
if ($schemeId == $selectedSchemeId)
{
$result['SELECTED_ID'] = $selectedSchemeId;
$result['HAS_DEAL'] = $hasDeal;
$result['HAS_INVOICE'] = $hasInvoice;
$result['HAS_DYNAMIC'] = $scheme['DYNAMIC'];
$result['BY_NON_INVOICE'][$searchSchemeId]['SELECTED'] = true;
$result['SELECTED_DESCRIPTION'] = $scheme['DESCRIPTION'];
}
}
return $result;
}