• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Kanban/ItemPreparer/Base.php
  • Класс: BitrixCrmMobileKanbanItemPreparerBase
  • Вызов: Base::getClientField
protected function getClientField(array $item, array $params = []): ?Field
{
	$client = $this->getClient($item, $params);
	if (!$client || !empty($client['hidden']))
	{
		return null;
	}

	$isCompanyHidden = true;
	$isContactHidden = true;

	if (!empty($client['company']) && is_array($client['company']))
	{
		$client['company'] = array_filter($client['company'], fn ($item) => empty($item['hiddenInKanbanFields']));
		$isCompanyHidden = count(array_filter($client['company'], fn ($item) => !$item['hidden'] || $item['title'] !== '')) === 0;
	}

	if (!empty($client['contact']) && is_array($client['contact']))
	{
		$client['contact'] = array_filter($client['contact'], fn ($item) => empty($item['hiddenInKanbanFields']));
		$isContactHidden = count(array_filter($client['contact'], fn ($item) => !$item['hidden'] || $item['title'] !== '')) === 0;
	}

	if ($isCompanyHidden && $isContactHidden)
	{
		return null;
	}

	$dtoField = new Field([
		'name' => 'CLIENT',
		'title' => Loc::getMessage('CRMMOBILE_KANBAN_ITEM_PREPARER_BASE_CLIENT'),
		'type' => 'client',
		'value' =>  $client,
		'config' =>  [
			'owner' => [
				'id' => $this->getItemId($item),
			],
			'entityList' => $client,
		],
		'multiple' => false,
	]);
	$this->prepareField($dtoField);

	return $dtoField;
}