• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/kanban/helper.php
  • Класс: Bitrix\Crm\Kanban\Helper
  • Вызов: Helper::getPresets
static function getPresets($entity)
{
	static $presets = array();
	$types = self::getTypes();

	if (!array_key_exists($entity, $presets))
	{
		$presets[$entity] = array();
		$uid = \CCrmSecurityHelper::GetCurrentUserID();
		if ($uid)
		{
			if ($uname = \Cuser::getById($uid)->fetch())
			{
				$uname = \CUser::FormatName(\CSite::GetNameFormat(false), $uname);
			}
		}
		// lead
		if ($entity == $types['lead'])
		{
			$defaultFilter = array(
				'SOURCE_ID' => array(),
				'STATUS_ID' => array(),
				'COMMUNICATION_TYPE' => array(),
				'DATE_CREATE' => '',
				'ASSIGNED_BY_ID' => ''
			);
			$presets[$entity]['filter_my_in_work'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_LPR_MY_WORK'),
				'disallow_for_all' => true,
				'fields' => array_merge(
						$defaultFilter,
						array(
							'ASSIGNED_BY_ID_name' => $uname,
							'ASSIGNED_BY_ID' => $uid,
							'STATUS_SEMANTIC_ID' => array(
								\Bitrix\Crm\PhaseSemantics::PROCESS
							)
						)
					)
			);
			$presets[$entity]['filter_in_work'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_LPR_WORK'),
				'default' => true,
				'fields' => array_merge(
					$defaultFilter,
					array(
						'STATUS_SEMANTIC_ID' => array(
							\Bitrix\Crm\PhaseSemantics::PROCESS
						)
					)
				)
			);
			$presets[$entity]['filter_closed'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_LPR_CLOSED'),
				'fields' => array_merge(
					$defaultFilter,
					array(
						'STATUS_SEMANTIC_ID' => array(
							\Bitrix\Crm\PhaseSemantics::SUCCESS,
							\Bitrix\Crm\PhaseSemantics::FAILURE
						)
					)
				)
			);
		}
		// deal
		elseif ($entity == $types['deal'])
		{
			$presets[$entity]['filter_in_work'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_DPR_WORK'),
				'default' => true,
				'fields' => array(
					'STAGE_SEMANTIC_ID' => array(
						\Bitrix\Crm\PhaseSemantics::PROCESS
					)
				)
			);
			$presets[$entity]['filter_my'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_DPR_WORK_MY'),
				'disallow_for_all' => true,
				'fields' => array(
					'ASSIGNED_BY_ID_name' => $uname,
					'ASSIGNED_BY_ID' => $uid,
					'STAGE_SEMANTIC_ID' => array(
						\Bitrix\Crm\PhaseSemantics::PROCESS
					)
				)
			);
			$presets[$entity]['filter_closed'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_DPR_WON'),
				'fields' => array(
					'STAGE_SEMANTIC_ID' => array(
						[\Bitrix\Crm\PhaseSemantics::SUCCESS, \Bitrix\Crm\PhaseSemantics::FAILURE]
					)
				)
			);
		}
		// quote
		elseif ($entity == $types['quote'])
		{
			$processStatusIDs = array();
			foreach (array_keys(\CCrmQuote::getStatuses()) as $statusID)
			{
				if (\CCrmQuote::getSemanticID($statusID) === \Bitrix\Crm\PhaseSemantics::PROCESS)
				{
					$processStatusIDs[] = $statusID;
				}
			}
			$presets[$entity]['filter_new'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_QT_NEW_MSGVER_1'),
				'fields' => array(
					'STATUS_ID' => array(
						'selDRAFT' => 'DRAFT'
					)
				)
			);
			$presets[$entity]['filter_my'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_QT_MY_MSGVER_1'),
				'disallow_for_all' => true,
				'fields' => array(
					'ASSIGNED_BY_ID_name' => $uname,
					'ASSIGNED_BY_ID' => $uid
				)
			);
			$presets[$entity]['filter_my_in_work'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_QT_MY_WORK'),
				'disallow_for_all' => true,
				'default' => true,
				'fields' => array(
					'ASSIGNED_BY_ID_name' => $uname,
					'ASSIGNED_BY_ID' => $uid,
					'STATUS_ID' => $processStatusIDs
				)
			);
		}
		// invoice
		elseif ($entity == $types['invoice'])
		{
			$presets[$entity]['filter_inv1_my'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_INV_MY'),
				'disallow_for_all' => true,
				'default' => true,
				'fields' => array(
					'RESPONSIBLE_ID' => $uid,
					'RESPONSIBLE_ID_name' => $uname,
					'OVERDUE' => '',
					'DATE_PAY_BEFORE' => '',
					'PRICE' => ''
				)
			);
			$presets[$entity]['filter_inv2_overdue'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_INV_OVERDUE'),
				'disallow_for_all' => true,
				'fields' => array(
					'RESPONSIBLE_ID' => $uid,
					'RESPONSIBLE_ID_name' => $uname,
					'OVERDUE' => 'Y',
					'DATE_PAY_BEFORE' => '',
					'PRICE' => ''
				)
			);
		}
		// order
		elseif ($entity == $types['order'])
		{
			$presets[$entity]['filter_in_work'] = [
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_ORDER_PRESET_MY_WORK'),
				'default' => true,
				'fields' => ['STATUS_ID' => Order\OrderStatus::getSemanticProcessStatuses()]
			];
			$presets[$entity]['filter_my'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_ORDER_PRESET_MY'),
				'fields' => array(
					'RESPONSIBLE_ID_name' => $uname,
					'RESPONSIBLE_ID' => $uid,
					'STATUS_ID' => Order\OrderStatus::getSemanticProcessStatuses()
				)
			);
			$presets[$entity]['filter_won'] = array(
				'name' => Loc::getMessage('CRM_KANBAN_HELPER_ORDER_PRESET_WON'),
				'fields' => array('STATUS_ID' =>  array(Order\OrderStatus::getFinalStatus()))
			);
		}
	}

	return $presets[$entity];
}