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