• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/report/handler/order/responsiblegrid.php
  • Класс: Bitrix\Crm\Integration\Report\Handler\Order\ResponsibleGrid
  • Вызов: ResponsibleGrid::getTargetUrl
public function getTargetUrl($baseUri, $params = [])
{
	$calculateField = $this->getFormElement('calculate');
	$calculateValue = $calculateField ? $calculateField->getValue() : null;
	$paramsStatuses = (!empty($params['STATUS_ID']) && is_array($params['STATUS_ID'])) ? $params['STATUS_ID'] : null;

	switch ($calculateValue)
	{
		case self::WHAT_WILL_CALCULATE_ORDER_LOSES_COUNT:
		case self::WHAT_WILL_CALCULATE_ORDER_LOSES_SUM:
			$failureStatuses = [];
			$allStatuses = OrderStatus::getListInCrmFormat();
			foreach ($allStatuses as $status)
			{
				$statusId = $status["STATUS_ID"];
				if (
					OrderStatus::getSemanticID($statusId) === PhaseSemantics::FAILURE
					&& (empty($paramsStatuses) || in_array($statusId, $paramsStatuses))
				)
				{
					$failureStatuses[] = $statusId;
				}
			}
			$params['STATUS_ID'] = $failureStatuses;
			break;
		case self::WHAT_WILL_CALCULATE_SUCCESS_ORDER_DATA_FOR_FUNNEL:
		case self::WHAT_WILL_CALCULATE_ORDER_WON_SUM:
		case self::WHAT_WILL_CALCULATE_ORDER_WON_COUNT:
			$finalStatus = OrderStatus::getFinalStatus();
			if (empty($paramsStatuses) || in_array($finalStatus, $paramsStatuses))
			{
				$params['STATUS_ID'] = $finalStatus;
			}
			break;
	}

	return parent::getTargetUrl($baseUri, $params);
}