• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/crmentitydataprovider.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\CrmEntityDataProvider
  • Вызов: CrmEntityDataProvider::getBankDetailId
public function getBankDetailId()
{
	if($this->bankDetailIds === null)
	{
		if($this->isLoaded())
		{
			$bankDetailId = null;
			if(isset($this->data['BANK_DETAIL']) && $this->data['BANK_DETAIL'] instanceof DataProvider)
			{
				$bankDetail = $this->data['BANK_DETAIL'];
				/** @var DataProvider $bankDetail */
				$bankDetailId = $bankDetail->getSource();
			}
			elseif(!empty($this->getOptions()['VALUES']['BANK_DETAIL']))
			{
				$bankDetailId = $this->getOptions()['VALUES']['BANK_DETAIL'];
			}
			else
			{
				$linkData = $this->getLinkData();
				if (is_array($linkData))
				{
					$bankDetailId = $linkData['BANK_DETAIL_ID'];
				}
			}

			$requisiteId = DataProviderManager::getInstance()->getValueFromList($this->getRequisiteId(), true);
			if(!is_array($requisiteId) && $requisiteId > 0)
			{
				$bankDetails = EntityBankDetail::getSingleInstance()->getList([
					'order' => ['SORT' => 'ASC', 'ID' => 'ASC'],
					'filter' => [
						'=ENTITY_TYPE_ID' => \CCrmOwnerType::Requisite,
						'=ENTITY_ID' => $requisiteId
					],
					'select' => ['ID', 'NAME'],
				])->fetchAll();
				if($bankDetails)
				{
					if(count($bankDetails) == 1)
					{
						$this->bankDetailIds = (int)$bankDetails[0]['ID'];
					}
					else
					{
						$this->bankDetailIds = [];
						foreach($bankDetails as $bankDetail)
						{
							$this->bankDetailIds[$bankDetail['ID']] = [
								'VALUE' => $bankDetail['ID'],
								'TITLE' => $bankDetail['NAME'],
								'SELECTED' => false,
							];
							if($bankDetailId && $bankDetailId == $bankDetail['ID'])
							{
								$this->bankDetailIds[$bankDetail['ID']]['SELECTED'] = true;
							}
						}
					}
				}
			}
		}
	}

	return $this->bankDetailIds;
}